如何实现SFTP自动上传下载?

Bash

1 前言

一个问题,一篇文章,一出故事。
笔者最近需要实现sftp自动上传下载,于是整理此文。
以下是笔者的自动上传下载脚本的测试环境,如果你有需要请参阅,

如何基于配置SFTP集成AD域?

2 最佳实践

2.1 创建脚本

vim ~/scripts/autoSftp.exp

创建如下脚本,

#!/usr/bin/expect

set sftpHost "sftp.cmdschool.org"
set sftpPort "989"
set sftpUser "cmdschool.org\\will"
set sftpPasswd "will@passwd"

spawn /usr/bin/sftp -P ${sftpPort} ${sftpUser}@${sftpHost}

expect {
    "Are you sure you want to continue connecting" {
        send "yes\r"
        exp_continue
    }
    "Password:" {
        send "${sftpPasswd}\r"
    }
}

expect "sftp>"
send "cd /myhome\r"
expect "sftp>"
send "lcd /etc\r"
expect "sftp>"
send "put redhat-release\r"
expect "sftp>"
send "lcd ~\r"
expect "sftp>"
send "get redhat-release\r"
expect "sftp>"
send "bye\r"

另外,你可能还需要安装如下软件包,

yum install -y expect

2.2 执行脚本

expect ~/scripts/autoSftp.exp
没有评论

发表回复

Bash
如何Telnet自动登录路由器执行命令?

1 前言 一个问题,一篇文章,一出故事。 最近在笔者需要一个脚本自动从路由读取一些信息,因此整理本章 …

Bash
如何防止Base Shell脚本重复执行?

1 前言 一个问题,一篇文章,一出故事。 笔者最近发现脚本因为重复执行而损耗服务器性能,因此解决此问 …

Bash
如何实现Base Shell的数值百分比计算?

1 前言 一个问题,一篇文章,一出故事。 最近笔者需要通过Base Shell实现一个计算Quota …