- 论坛徽章:
- 0
|
环境:unix
目的:取远程主机目录下的MD5值
前提:在命令行下执行 ssh -l username $ip "find /data/billapp/lishugao -type f -print -exec md5sum -M {} \;| sed '1~2{N;s/\n/ /;}'" 可以正常执行,返回的结果也正常。
但是写到shell里后:
set host_ip 172.20.XX.XX
set username XXXX
set passwd xxxxx
set timeout -1
spawn ssh -l $username $host_ip find /data/billapp/lishugao -type f -print -exec md5sum -M {} \;
expect "assword: "
sleep 0.1
send "$passwd\r"
sleep 0.1
set host_ip 172.20.35.18
set username billapp
set passwd bp!915uvb!
set timeout -1
spawn ssh -l $username $host_ip find /data/billapp/lishugao -type f -print -exec md5sum -M {} \;
expect "assword: "
sleep 0.1
send "$passwd\r"
sleep 0.1
#send "find /data/billapp/lishugao -type f -print -exec md5sum -M {} \\; | sed '1~2{N;s/\\n/ /;}' >/data/billapp/lishugao/md5.md5\r"
send "exit\r"
interact
send "exit\r"
interact
这样的话就不能执行下去,提示-exec不能正常传递给md5sum,求教各位大侠该如何解决这个问题。
另外如注释掉的语句,如果用send来实现的话,如何不写到远程服务器而把MD5值直接保存到本地目录下?
万望指教,拜谢! |
|