最近新搞了几台机器,需要在几台机器之间同步文件,主文件会放到master上,几台slave会去master上同步文件,手动同步会死人的,所以暂时考虑使用expect+rsync同步文件,设定到crontab来执行。
expect简介:
expect脚本语言是tcl语言的扩展,主要用来解决工具无法自助交互的问题,常见的有ssh,scp,rsync等。
expect实例:
#!/usr/bin/expectset timeout 30spawn /usr/bin/rsync -rlptvz user@x.x.x.x:/home/video/ /home/video/expect -re "password"send "myPasswd\r"expect eof
expect问题:1. 手动执行ok,crontab中执行失败
原因:expect脚本末尾是interactive,如果这样请把最后一行更换为expect eof
2. expect到的字符串不会自动send
原因:检查 expect 后面的引号是不是单引号, expect ‘password’ 换成 expect “password”,原因暂没查
3. 怎么安装expect
办法:centos使用yum install expect安装,ubuntu使用apt-get install expect安装
手动安装请参考,未验证:http://www.cnblogs.com/evilloop/archive/2011/09/23/2185950.html
转载请注明:莫名奇妙の钱小样 » Linux expect命令入门
穷则思变,差则思勤!没有比人更高的山没有比脚更长的路。