centos

centos sftp如何实现自动化脚本

小樊
34
2025-04-16 18:15:38
栏目: 智能运维
Centos服务器限时活动,0元免费领! 查看>>

在CentOS上实现SFTP自动化脚本,可以通过多种方式来完成。以下是几种常见的方法:

方法一:使用sshpassexpect

  1. 安装sshpass

    sudo yum install sshpass -y
    
  2. 创建一个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
    
  3. 赋予执行权限

    chmod +x sftp_auto.sh
    
  4. 运行脚本

    ./sftp_auto.sh your_host your_user your_password /remote/directory /local/directory
    

方法二:使用ssh密钥认证

  1. 生成SSH密钥对

    ssh-keygen -t rsa
    
  2. 将公钥复制到远程服务器

    ssh-copy-id your_user@your_host
    
  3. 创建一个自动化脚本: 创建一个名为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
  1. 运行脚本
    ./sftp_auto.sh
    

方法三:使用lftp

  1. 安装lftp

    sudo yum install lftp -y
    
  2. 创建一个自动化脚本: 创建一个名为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'
    
  3. 赋予执行权限

    chmod +x sftp_auto.sh
    
  4. 运行脚本

    ./sftp_auto.sh
    

注意事项

通过以上方法,你可以在CentOS上实现SFTP自动化脚本,提高文件传输的效率。

亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>

相关推荐:centos sftp如何使用脚本自动化

0
看了该问题的人还看了