温馨提示×

Linux SFTP如何进行批量操作

小樊
34
2025-11-27 04:54:33
栏目: 智能运维

在Linux中,使用SFTP(Secure File Transfer Protocol)进行批量操作可以通过编写脚本来实现。以下是一个简单的示例,展示了如何使用Bash脚本和SFTP客户端进行批量文件传输。

  1. 首先,创建一个名为sftp_batch.sh的Bash脚本文件:
#!/bin/bash

# SFTP服务器信息
host="your_sftp_server.com"
port="22"
username="your_username"
password="your_password"

# 本地文件和目录
local_dir="/path/to/local/directory"
remote_dir="/path/to/remote/directory"

# 进入SFTP命令模式
sftp -oPort=$port $username@$host <<EOF
# 切换到远程目录
cd $remote_dir

# 遍历本地目录中的所有文件
for file in $local_dir/*
do
  # 获取文件名
  filename=$(basename "$file")

  # 上传文件
  put "$file" "$filename"

  # 如果需要执行其他操作,可以在这里添加
done

# 退出SFTP命令模式
bye
EOF
  1. 为脚本添加可执行权限:
chmod +x sftp_batch.sh
  1. 运行脚本:
./sftp_batch.sh

这个脚本将会连接到SFTP服务器,遍历本地目录中的所有文件,并将它们上传到远程目录。你可以根据需要修改脚本以执行其他批量操作,例如下载文件、删除文件等。

注意:在实际使用中,建议使用SSH密钥认证而不是密码认证,以提高安全性。如果需要使用SSH密钥认证,可以将脚本中的密码部分替换为私钥文件路径,如下所示:

sftp -i /path/to/your/private_key -oPort=$port $username@$host <<EOF
...
EOF

0