在公司白天都需要工作,为了不影响占用公司同事及服务器流量,我将使用sftp+at自动定时一次上传下载数据,这样就非常方便了,也想过用crontab之后还是使用at方便。
1.服务端和客户端安装openssh
#yum -y install openssh
2.客户端安装at和lftp
#yum -y install at
3.客户端编写sftpauto.sh脚本
#vi sftpauto.sh
HOST=192.168.19.128 //服务端IP以及下面用户和密码
USER=root
PASS=clickcoo
echo "Starting to sftp ...."
lftp -u ${USER},${PASS} sftp://${HOST}<<EOF
cd /data/res/ //指定服务端需要下载文件的目录
mget *.tar //这里可以改成mput上传,使用lftp登录再通过按table键查看所有命令
bye
EOF
echo "ok,bye!"
#chmod +x sftpauto.sh //可执行
4.客户端使用at定时一次执行
#date // 查看当前时间
Tue Dec 16 18:28:03 CST 2015
#at -f /root/sftpauto.sh 18:30 today
以下是例子
#at -f /root/sftpauto.sh 18:30 tomorrow //明天执行
#at -f /root/sftpauto.sh 4pm + 3 days //三天后下午4点执行
#at -f /root/sftpauto.sh 10am Jul 31 //在7月31日上午10点执行
#at -l 查看等待执行的命令
注意:mget只下载文件或mput只上传文件,无法下载或上传文件夹/目录。