Mar*_*ark 4 python ssh scp paramiko python-2.7
我正在使用Python Paramiko和scp在远程计算机上执行某些操作.我工作的一些机器要求文件在其系统上本地可用.在这种情况下,我正在使用Paramiko和scp来复制文件.例如:
from paramiko import SSHClient
from scp import SCPClient
ssh = SSHClient()
ssh.load_system_host_keys()
ssh.connect('192.168.100.1')
scp = SCPClient(ssh.get_transport())
scp.put('localfile', 'remote file')
scp.close()
ssh.close()
Run Code Online (Sandbox Code Playgroud)
我的问题是,在尝试使用scp之前,如何查看远程计算机上是否存在"localfile"?
我想尽可能尝试使用Python命令,即不是bash
tde*_*ney 14
请改用paramiko的SFTP客户端.此示例程序在复制之前检查是否存在.
#!/usr/bin/env python
import paramiko
import getpass
# make a local test file
open('deleteme.txt', 'w').write('you really should delete this]n')
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
try:
ssh.connect('localhost', username=getpass.getuser(),
password=getpass.getpass('password: '))
sftp = ssh.open_sftp()
sftp.chdir("/tmp/")
try:
print(sftp.stat('/tmp/deleteme.txt'))
print('file exists')
except IOError:
print('copying file')
sftp.put('deleteme.txt', '/tmp/deleteme.txt')
ssh.close()
except paramiko.SSHException:
print("Connection Error")
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
14964 次 |
| 最近记录: |