把一台服务器的数据通过sftp复制到另一台服务器上脚本
时间: 2024-10-15 16:12:07 浏览: 26
windows脚本SFTP上传文件至备份服务器方案
5星 · 资源好评率100%
在Linux环境下,你可以使用`expect`或者`paramiko`这样的库编写一个脚本来通过SSH(Secure File Transfer Protocol)协议,特别是其加密版本SFTP(Secure FTP),将数据从一台服务器复制到另一台服务器。这里是一个基本的Python `paramiko`库示例,假设你知道源文件路径`src_path`和目标文件路径`dest_path`:
```python
import paramiko
# 创建SSH客户端
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
# 连接到源服务器
source_host = 'source_server_ip'
source_user = 'your_username'
source_password = 'your_password'
ssh.connect(source_host, username=source_user, password=source_password)
# 创建SFTP会话
sftp = ssh.open_sftp()
# 从源服务器上传文件
try:
sftp.put(src_path, dest_path)
print(f"文件 {src_path} 已成功复制到 {dest_path}")
except Exception as e:
print(f"复制文件时出错: {str(e)}")
# 关闭SFTP连接
sftp.close()
# 断开SSH连接
ssh.close()
```
如果你想要使用命令行脚本,可以创建一个shell脚本,如bash或sh,使用`scp`命令代替,例如:
```bash
#!/bin/bash
# 源和目标地址
src="source_server:/path/to/src"
dst="destination_server:/path/to/dest"
# 使用scp命令
scp $src user@destination_server:$dst
echo "文件已成功复制到 $dst"
```
记得替换上述脚本中的`source_server`, `destination_server`, `your_username`, 和`your_password`为实际的值。
阅读全文