在CentOS系统中,编写一个SFTP自动化脚本可以帮助你自动上传、下载或管理远程服务器上的文件。以下是一个简单的示例,展示如何使用Python和paramiko
库来实现SFTP自动化。
首先,确保你已经安装了Python和paramiko
库。如果没有安装,可以使用以下命令进行安装:
sudo yum install python3
pip3 install paramiko
创建一个Python脚本文件,例如sftp_automation.py
,并添加以下内容:
import paramiko
# SFTP连接信息
hostname = 'your_remote_host'
port = 22
username = 'your_username'
password = 'your_password'
# 远程文件路径和本地文件路径
remote_file_path = '/path/to/remote/file.txt'
local_file_path = '/path/to/local/file.txt'
# 创建SSH客户端
ssh_client = paramiko.SSHClient()
ssh_client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
try:
# 连接到远程服务器
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()
保存脚本文件后,在终端中运行以下命令来执行脚本:
python3 sftp_automation.py
cron
作业来实现。例如,每天凌晨2点运行脚本:0 2 * * * /usr/bin/python3 /path/to/sftp_automation.py
将上述命令添加到你的crontab
文件中:
crontab -e
然后粘贴命令并保存退出。
通过以上步骤,你就可以在CentOS系统上编写并运行一个简单的SFTP自动化脚本了。根据你的具体需求,可以进一步扩展和优化脚本功能。