Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/354.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 从一台服务器到另一台服务器的文件传输_Python_Unix_Airflow - Fatal编程技术网

Python 从一台服务器到另一台服务器的文件传输

Python 从一台服务器到另一台服务器的文件传输,python,unix,airflow,Python,Unix,Airflow,我在server1中有一个文件(file.txt),路径(/home/a/file1.txt)中的userid为“username1”,希望将此文件传输到其他服务器“server2”,userid为“username2”,并希望将该文件放置在路径(/home/B/)中。我写了下面的代码,但它并没有按预期工作。我哪里出错了 import airflow from airflow import DAG from airflow.operators.bash_operator import BashO

我在server1中有一个文件(file.txt),路径(/home/a/file1.txt)中的userid为“username1”,希望将此文件传输到其他服务器“server2”,userid为“username2”,并希望将该文件放置在路径(/home/B/)中。我写了下面的代码,但它并没有按预期工作。我哪里出错了

import airflow
from airflow import DAG
from airflow.operators.bash_operator import BashOperator
from datetime import datetime, timedelta
from airflow.contrib.operators.ssh_operator import SSHOperator
from airflow.contrib.hooks.ssh_hook import SSHHook
from airflow.contrib.sensors.sftp_sensor import SFTPSensor

default_args = {
         'owner': 'john',
         'depends_on_past': False,
         'email': [''],
         'email_on_failure': False,
         'email_on_retry': False,
         'retries': 0,
         'retry_delay': timedelta(minutes=5)
       }

  dag = DAG(
    'file transfer',
    default_args = default_args,
    description='A file transfer',
    schedule_interval=None)

 bash_file_transfer = """
  cp server1@username1:/home/A/file1.txt server2@username2:/home/B/  
  """

t1 = SSHOperator(
        ssh_conn_id='server1_conn'
        task_id='connected_to_server1'
        dag=dag
        )

t2 = SFTPOperator(
        sftp_conn_id='server2_conn'
        task_id='transfer file from server1 to server2'
        command=bash_file_transfer,
        dag=dag
        )

t1 >> t2

我认为你的错误在
bash\u文件传输
声明上。应该是
scp
,而不是
cp

如果我也有scp,它会抛出一个错误