标签:shell 嵌套 expect之 for循环嵌套 expect 实现 文件远程复制 linux
最近在搞zabbix,公司又新上了六台服务器。再部署zabbix客户端的时候,宝宝真是怒了。大爷的总是这么重复劳动也是不行呀。但是作为战五渣,还能有什么拌饭呢?想起来去年写过一篇expect的blog,于是来了灵感。大神请不要喷我。于是我决定玩下有点技术小难度的东西,远程自动同步。客户端软件。于是我就重温了一下expect。刚开始感觉挺难得,写了几个脚本后。感觉也就这样吧,没啥技术难度。刚写第一个脚本成功的时候激动的不要不要的。真是脸没见过世面的样子,哈哈!好记性不如写博客,于是就写了这篇blog ,就这。下面上菜。
#!/bin/bash
P="maomaochong"
for i in `echo 114` #因为我在自己电脑上测试所以这样写,多台可以写成`seq 100 114` 表示一个范围
do
/usr/bin/expect <<-EOF
spawn scp -r /usr/local/zabbix-agent.tar.gz zgabe@192.168.1.${i}:/home/zgabe/
expect {
"yes/no" { send "yes\r" } #\r:表示确定
}
expect {
"password:" { send "$P\r" }
}
expect "*$" #普通用户是$,root用户是#
send "exit\r"
expect eof
EOF #expect语句结束
done #shell的for循环结束。
再次过程中可以用 shell -n 脚本文件名 测试脚本语法是否存在错误
shell -x 脚本名字 查看执行过程,如果脚本有报错。会直接显示出来。每一步都很详细。方便排查错误
本文出自 “沙漠骆驼” 博客,请务必保留此出处http://maomaochong.blog.51cto.com/9260445/1812460
shell 嵌套 expect之 for循环嵌套 expect实现文件远程复制
标签:shell 嵌套 expect之 for循环嵌套 expect 实现 文件远程复制 linux
原文地址:http://maomaochong.blog.51cto.com/9260445/1812460