在CentOS上实现SFTP自动化脚本,可以通过多种方式来完成。以下是几种常见的方法:
sshpass
和expect
安装sshpass
:
sudo yum install sshpass -y
创建一个expect
脚本:
创建一个名为sftp_auto.sh
的文件,并添加以下内容:
#!/usr/bin/expect -f
set timeout -1
set host [lindex $argv 0]
set user [lindex $argv 1]
set password [lindex $argv 2]
set remote_dir [lindex $argv 3]
set local_dir [lindex $argv 4]
spawn sftp $user@$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"
interact
赋予执行权限:
chmod +x sftp_auto.sh
运行脚本:
./sftp_auto.sh your_host your_user your_password /remote/directory /local/directory
ssh
密钥认证生成SSH密钥对:
ssh-keygen -t rsa
将公钥复制到远程服务器:
ssh-copy-id your_user@your_host
创建一个自动化脚本:
创建一个名为sftp_auto.sh
的文件,并添加以下内容:
#!/bin/bash
HOST="your_host"
USER="your_user"
REMOTE_DIR="/remote/directory"
LOCAL_DIR="/local/directory"
sftp $USER@$HOST <<EOF
cd $REMOTE_DIR
lcd $LOCAL_DIR
mput *
bye
EOF
4. **赋予执行权限**:
```bash
chmod +x sftp_auto.sh
./sftp_auto.sh
lftp
安装lftp
:
sudo yum install lftp -y
创建一个自动化脚本:
创建一个名为sftp_auto.sh
的文件,并添加以下内容:
#!/bin/bash
HOST="your_host"
USER="your_user"
PASSWORD="your_password"
REMOTE_DIR="/remote/directory"
LOCAL_DIR="/local/directory"
lftp -e 'open sftp://$USER:$PASSWORD@$HOST; cd $REMOTE_DIR; lcd $LOCAL_DIR; mput *; quit'
赋予执行权限:
chmod +x sftp_auto.sh
运行脚本:
./sftp_auto.sh
sshpass
和expect
方法时,密码会以明文形式存储在脚本中,存在安全风险。通过以上方法,你可以在CentOS上实现SFTP自动化脚本,提高文件传输的效率。
亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>
相关推荐:centos sftp如何使用脚本自动化