如题,要远程备份文件,将一台机器上的文件copy到另一台机器上,我自然而然就想到了scp,但是由于文件很大,运行不是后台运行的,copy一段时候后,与主机连接中断,于是想到expect与scp结合。脚步如下
但是这个要是在后台运行(通过at & corn)的话,也不好使,google一下说是后台运行没有终端这一说法,于是无法读取passwd,自然而然程序就停滞在那里了。
解决的方法是建一个key trust。
搞定! ^_^
#!/usr/bin/expect -f #combine scp and expect to bakcup files spawn scp -r user@hostname:/source_director/ target_directory expect "user@hostname's password:" exec sleep 1 send "passwd\n" |
解决的方法是建一个key trust。
ssh-keygen -t dsa 把id_dsa.pub放到远程$HOME/.ssh/authorized_keys里 scp id_dsa.pu user@远程host:/$HOME/.ssh/authorized_key #这样的话,可以输入命令后就不用输入密码了 nohup scp -r user@hostname:/source_director/ target_directory & |
搞定! ^_^
没有评论:
发表评论