文章内容
2022/4/8 18:53:23,作 者: 黄兵
Python 如何使用 SSH 上传文件
最近项目上需要将采集到的数据上传到服务器,采集使用的是 Python 爬虫,所以考虑怎么使用 Python 将文件上传到 Ubuntu 服务器。
在 Python 中我们可以使用 Paramiko 库,具体代码示例:
import paramiko @staticmethod def update_files_to_ubuntu_server(): ssh = paramiko.SSHClient() ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy()) ssh.connect("host", username="root", password="pass") sftp = ssh.open_sftp() log_file_path = path.join(os.getcwd(), 'files/test.log') sftp.put(log_file_path, "/var/CDN/test.log") sftp.close() ssh.close()
这里有几点需要注意:
当我们不想使用 known_hosts
文件的时候(也就是提示是否信任该主机),我们直接使用 ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
不会出现这个问题。
询问是否信任该主机示例截图:
sftp.put(sent_file,receive_file)
第一个参数是需要发送的文件,必须是单个文件,不能是目录,第二参数,接收文件也必须具体到文件名,不能是目录,否则会报错:
raise IOError(errno.EACCES, text)`PermissionError: [Errno 13] **Permission denied**`
参考资料:
1、How to copy a file to a remote server in Python using SCP or SSH?
2、python paramiko giving error "Permission denied [Errno 13]" on windows server on using sftp
黄兵个人博客原创。
转载请注明出处:黄兵个人博客 - Python 如何使用 SSH 上传文件
评论列表