1、安装expect
首先安装tcl(下载地址:
http://nchc.dl.sourceforge.net/sourceforge/tcl/tcl8.4.11-src.tar.gz
)
解压
tar -zxvf tcl8.4.11-src.tar.gz
cd tcl8.4.11/unix/
./configure
make && make install
安装expect(下载地址:
http://sourceforge.net/projects/expect/files/Expect/5.45/expect5.45.tar.gz/download
)
tar -zxvf expect5.45.tar.gz
cd expect5.45
./configure –with-tclinclude=/tmp/tcl8.4.11/generic –with-tclconfig=/usr/local/lib/
make && make install
检查安装情况
[root@node1 expect5.45]# expect
expect1.1>
expect1.1>
安装完成.
2、写一个可以远程备份的脚本
vi scp.exp
#!/usr/local/bin/expect -f
spawn scp -r /opt/test / root@192.168.11.67:/home/
set timeout 10
expect {
“yes/no” {send “yes\r”;exp_continue}
}
expect “root@192.168.11.67’s password:”
exec sleep 1
send “123\n” #密码
interact
在crontab -e中加入定时任务
0 23 * * * /tmp/scp.exp #每天23点执行任务
如果出现报错:/bin/sh: /tmp/scp.exp: /usr/bin/expect: bad interpreter: No such file or directory
将脚本中的头文件
#!/usr/bin/expect 改成
#!/usr/local/bin/expect