centos

SFTP在CentOS上的自动化脚本编写

小樊
39
2025-04-28 21:02:18
栏目: 智能运维

在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()

解释

  1. 导入库:导入paramiko库。
  2. 配置信息:设置SFTP服务器的地址、端口、用户名和密码,以及本地和远程文件的路径。
  3. 创建SSH客户端:使用paramiko.SSHClient()创建一个SSH客户端,并设置自动添加主机密钥策略。
  4. 连接到SFTP服务器:使用ssh_client.connect()方法连接到SFTP服务器。
  5. 创建SFTP客户端:使用ssh_client.open_sftp()方法创建一个SFTP客户端。
  6. 上传文件:使用sftp.put()方法上传本地文件到远程服务器。
  7. 下载文件:使用sftp.get()方法从远程服务器下载文件到本地。
  8. 关闭SFTP客户端:使用sftp.close()方法关闭SFTP客户端。
  9. 异常处理:捕获并打印任何可能发生的异常。
  10. 关闭SSH客户端:确保在任何情况下都关闭SSH客户端。

注意事项

通过这种方式,你可以编写一个自动化脚本来实现SFTP文件的上传和下载。根据你的具体需求,你可以进一步扩展和修改这个脚本。

0
看了该问题的人还看了