阅读量:4
以下是在CentOS上实现SFTP脚本自动化操作的指南:
一、准备工作
确保系统已安装openssh-client,若未安装可使用命令sudo yum install openssh-client -y进行安装。
二、使用SSH密钥认证(推荐)
- 生成密钥对:在客户端执行
ssh-keygen -t rsa,按提示生成私钥和公钥。 - 复制公钥到服务器:使用
ssh-copy-id username@server_ip将公钥复制到远程服务器的~/.ssh/authorized_keys文件中。 - 编写脚本:创建如
sftp_transfer.sh的脚本,内容如下:
#!/bin/bash
HOST='your_host'
PORT='22'
USERNAME='your_username'
PRIVATE_KEY='~/.ssh/id_rsa'
REMOTE_DIR='/remote/directory'
LOCAL_DIR='/local/directory'
sftp -oPort=$PORT -i $PRIVATE_KEY $USERNAME@$HOST <<EOF
cd $REMOTE_DIR
lcd $LOCAL_DIR
mput *
bye
EOF
- 赋予执行权限并运行:执行
chmod +x sftp_transfer.sh,然后运行./sftp_transfer.sh。
三、使用expect工具(需安装)
- 安装expect:执行
sudo yum install expect -y。 - 编写脚本:创建脚本并添加如下内容:
#!/usr/bin/expect -f
set timeout 20
set host "your_host"
set username "your_username"
set password "your_password"
set local_dir "/local/directory"
set remote_dir "/remote/directory"
spawn sftp $username@$host
expect "password:"
send "$password\r"
expect "sftp>"
send "cd $remote_dir\r"
expect "sftp>"
send "lcd $local_dir\r"
expect "sftp>"
send "mput *\r"
expect "sftp>"
send "bye\r"
expect eof
- 赋予执行权限并运行:执行
chmod +x script_name.sh,然后运行./script_name.sh。
四、使用lftp工具
- 安装lftp:执行
sudo yum install lftp -y。 - 编写脚本:创建脚本并添加如下内容:
#!/bin/bash
HOST='your_host'
PORT='22'
USERNAME='your_username'
PASSWORD='your_password'
REMOTE_DIR='/remote/directory'
LOCAL_DIR='/local/directory'
lftp -e "open sftp://$USERNAME:$PASSWORD@$HOST:$PORT; cd $REMOTE_DIR; lcd $LOCAL_DIR; mput *; quit;"
- 赋予执行权限并运行:执行
chmod +x script_name.sh,然后运行./script_name.sh。
以上就是关于“centos sftp脚本自动化操作指南”的相关介绍,筋斗云是国内较早的云主机应用的服务商,拥有10余年行业经验,提供丰富的云服务器、租用服务器等相关产品服务。云服务器资源弹性伸缩,主机vCPU、内存性能强悍、超高I/O速度、故障秒级恢复;电子化备案,提交快速,专业团队7×24小时服务支持!
简单好用、高性价比云服务器租用链接:https://www.jindouyun.cn/product/cvm