在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自動化腳本了。根據你的具體需求,可以進一步擴展和優化腳本功能。