共计 781 个字符,预计需要花费 2 分钟才能阅读完成。
开始研究 Linux 下的自动上传脚本。
UPDATE:2014.3.10. 已验证,使用密钥最好,http://www.linuxidc.com/Linux/2014-03/97976.htm。
只能突出一个吐血 {
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 最靠谱。。