在CentOS上编写一个自动化脚本来使用SFTP(SSH File Transfer Protocol)进行文件传输是一个常见的任务。以下是一个简单的示例脚本,展示了如何使用Python和paramiko
库来实现SFTP自动化。
首先,确保你已经安装了paramiko
库。如果没有安装,可以使用以下命令进行安装:
pip install paramiko
接下来,编写一个Python脚本来实现SFTP自动化。以下是一个示例脚本:
import paramiko
# SFTP服务器信息
hostname = 'your_sftp_server.com'
port = 22
username = 'your_username'
password = 'your_password'
# 要传输的文件路径
local_file_path = '/path/to/local/file.txt'
remote_file_path = '/path/to/remote/file.txt'
# 创建SSH客户端
ssh_client = paramiko.SSHClient()
ssh_client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
try:
# 连接到SFTP服务器
ssh_client.connect(hostname, port, username, password)
# 创建SFTP客户端
sftp = ssh_client.open_sftp()
# 上传文件
sftp.put(local_file_path, remote_file_path)
print(f"File uploaded successfully: {local_file_path} -> {remote_file_path}")
# 下载文件
sftp.get(remote_file_path, local_file_path)
print(f"File downloaded successfully: {remote_file_path} -> {local_file_path}")
# 关闭SFTP客户端
sftp.close()
except Exception as e:
print(f"An error occurred: {e}")
finally:
# 关闭SSH客户端
ssh_client.close()
paramiko
库。paramiko.SSHClient()
创建一个SSH客户端,并设置自动添加主机密钥策略。ssh_client.connect()
方法连接到SFTP服务器。ssh_client.open_sftp()
方法创建一个SFTP客户端。sftp.put()
方法上传本地文件到远程服务器。sftp.get()
方法从远程服务器下载文件到本地。sftp.close()
方法关闭SFTP客户端。通过这种方式,你可以编写一个自动化脚本来实现SFTP文件的上传和下载。根据你的具体需求,你可以进一步扩展和修改这个脚本。