模块
paramiko – 用于做远程控制的模块,使用该模块可以对远程服务器进行命令或文件操作,fabric和ansible内部的远程管理就是调用paramiko来现实
基于用户名和密码交互式登录
代码
#!/usr/bin/env python
import paramiko,datetime,os
hostname='203.0.113.12'
username='root'
password='123456'
port=22
local_dir='/files/'
remote_dir='/data/'
try:
t=paramiko.Transport((hostname,port))
t.connect(username=username,password=password)
sftp=paramiko.SFTPClient.from_transport(t)
#files=sftp.listdir(dir_path)
files=sftp.listdir(remote_dir)
for f in files:
print('')
print('#########################################')
print('Beginning to download file from %s %s ' % (hostname,datetime.datetime.now()))
print('Downloading file:',os.path.join(remote_dir,f))
sftp.get(os.path.join(remote_dir,f),os.path.join(local_dir,f))#下载
#sftp.put(os.path.join(local_dir,f),os.path.join(remote_dir,f))#上传
print('Download file success %s ' % datetime.datetime.now())
print('')
print('##########################################')
t.close()
except Exception:
print("connect error!")