您的位置:首页 > 运维架构 > Linux

linux下的SFTP的automatic自动运行script脚本

2014-03-05 23:13 204 查看
UPDATE:2014.9.12,找到了ftp的-n参数一口血吐在键盘上。。

ftp -n<<EOF
open 192.168.1.151
user username passwd
ls
EOF


自从做完windows下的账号巡检自动上传脚本后,开始研究linux下的自动上传脚本。
UPDATE:2014.3.10.已验证,使用密钥最好,/article/4510682.html

附简单shell脚本:

#!/bin/sh
sftp 192.168.1.151 <<EOF
cd /home
get 1.txt
bye
EOF


-------------------------旧版分割线------------------------------------------------------
只能突出一个吐血
#吐糟部分
//ftp端口被封,而且linux服务器上不一定装了ftp。
//生产环境服务器数量很多,只能从服务器端上传至日志服务器(使用的freesshd搭建sftp服务器,感觉还不错)。
//服务器数量多及版本很杂,不能随便安装包。


重点在于“自动”两个字。即非交互式密码认证。
自动化的方式有很多,鉴于本人是菜鸟,什么python,c,ruby之类的都不会。%>_<%。。。
根据现有batch经验,还是从自动化的ftp入手。
ftp被禁掉了。。
还有与ssh共存的sftp,而且公司统一都用ssh登陆linux服务器,所以服务器上一般都装有sftp。
ftp有s参数,自动读取文本内容,执行文件中的命令。
恩,研究了一下sftp也有-b参数,运行batchfile。
擦!!然后就卡在这里了,-b参数赫然写到只能运行cmd命令而不能进行密码自动认证,想要避免输入密码就必须要使用ssh的publickey秘钥认证啊!!



经过了多次度娘和谷歌的查找,现想到方法如下:
1、安装lftp,网上已经有大量lftp结合sftp进行自动密码认证的脚本
附:
lftp -u $USERNAME,$PASSWORD sftp://$HOST <<EOF
cd $SFTPBACKUP
put $BACKUP/$DataBakName
bye
EOF
2、set up private key,密钥自动登录,但批量的使用和安全问题还需考虑。
3、expect工具。
4、sftp服务器端不知道可不可做匿名登录,还在研究。。
5、其实不嫌难看的话,使用mount -t cifs 挂载windows共享目录的方式,然后直接cp命令拷贝过去也不错。但是需要安装cifs的一个包。
感觉1和2最靠谱。。
本文出自 “DanielQu” 博客,请务必保留此出处http://qujunorz.blog.51cto.com/6378776/1368931
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: