2017-04-11 5 views
-3

ファイルをリモートで送受信したり、更新プログラムをPython経由でプッシュするにはどうすればよいですか?我々は市場に多数のデバイスを持ち、Windows 10ベースのものです。それらのマシンにファイルを送信し、それらのマシンからファイルを受信するには、どうすればよいでしょうか?私たちはこのタスクにpythonを使用したいと思います。チュートリアルや記事はすばらしいことがあります。リモートでコンピュータ間でファイルを送信する

答えて

1

私はローカルのラップトップからリモートSFTPサーバーにファイルを送信するのにこのスクリプトを書きました。マシンはお互いの公開鍵を持っています:

import pysftp 
import paramiko 


fpaths = ['list/of', 'file/paths'] 

with pysftp.Connection(server, username='loginID') as sftp: 
    with sftp.cd('target/directory'): 
     for fpath in fpaths: 
      print("Sending:", fpath) 

      if not os.path.isdir(fpath): 
       sftp.put(fpath) 
       print("Permissioning", fpath) 
       sftp.chmod(os.path.basename(fpath), 755) 

      else: 
       dirname = os.path.basename(fpath) 
       if not sftp.isdir(dirname): 
        sftp.mkdir(dirname) 
        print("Permissioning", dirname) 
        sftp.chmod(os.path.basename(dirname), 755) 

       sftp.put_r(fpath, dirname) 

       sftp.walktree(dirname, 
           dcallback=lambda dname:print("Permissioning", dname) or sftp.chmod(dname, 755), 
           fcallback=lambda fname:print("Permissioning", fname) or sftp.chmod(fname, 755), 
           ucallback=lambda x:x) 
1

python ftp接続にはftplibパッケージを使用してみてください。 Hereはそのための小さなチュートリアルです。

import ftplib 

ftp = ftplib.FTP("www.python.org") 
ftp.login("anonymous", "ftplib-example-1") 

data = [] 

ftp.dir(data.append) 

ftp.quit() 

for line in data: 
    print "-", line 

コード例上の実行:エルス

$ python ftplib-example-1.py 
- total 34 
- drwxrwxr-x 11 root  4127   512 Sep 14 14:18 . 
- drwxrwxr-x 11 root  4127   512 Sep 14 14:18 .. 
- drwxrwxr-x 2 root  4127   512 Sep 13 15:18 RCS 
- lrwxrwxrwx 1 root  bin   11 Jun 29 14:34 README -> welcome.msg 
- drwxr-xr-x 3 root  wheel  512 May 19 1998 bin 
- drwxr-sr-x 3 root  1400   512 Jun 9 1997 dev 
- drwxrwxr-- 2 root  4127   512 Feb 8 1998 dup 
- drwxr-xr-x 3 root  wheel  512 May 19 1998 etc 
... 

は、あなたがParamikoを使用してSSHで行くことがあります。どちらがあなたに適しているかを使用してください。

import paramiko 
ssh = paramiko.SSHClient() 
ssh.set_missing_host_key_policy(
    paramiko.AutoAddPolicy()) 
ssh.connect('127.0.0.1', username='none', 
    password='lol') 

ftplibのコード参照:The ftplib module

Paramikoコード参照:SSH PROGRAMMING WITH PARAMIKO | COMPLETELY DIFFERENT

関連する問題