Chinaunix首页 | 论坛 | 博客
  • 博客访问: 65455
  • 博文数量: 28
  • 博客积分: 230
  • 博客等级: 二等列兵
  • 技术积分: 260
  • 用 户 组: 普通用户
  • 注册时间: 2009-12-01 09:44
文章分类

全部博文(28)

文章存档

2016年(1)

2015年(2)

2014年(11)

2013年(7)

2012年(7)

我的朋友

分类: LINUX

2014-04-08 11:24:12



上次提到过,那么可不可以利用expect自动登录到远程主机执行命令后返回到本地机器呢?当然可以。

例如目前我们有一个脚本myscript.sh要复制到192.168.1.11 ~ 192.l68.1.20这10台机器执行一次后,放入crontab内每小时执行,参考代码如下:



点击(此处)折叠或打开

  1. #!/usr/bin/expect
  2. for {set ip 11} {$ip <= 20} {incr ip} { # 假设有10台机器
  3. # 复制脚本到各台机器上
  4. spawn scp -P58422 /root/bin/myscript.sh "root@192.168.1.$ip:/root/bin/myscript.sh"
  5. expect "*password:"
  6. send "123456\r"
  7. send "exit\r"
  8. # 在各台机器上执行命令
  9. spawn ssh -p58422 -t -o StrictHostKeyChecking=no "root@192.168.1.$ip"
  10. expect "*password:"
  11. send "123456\r"
  12. expect "*]#"
  13. send "/root/bin/myscript.sh\r" # 执行脚本
  14. expect "*]#"
  15. send "echo \"01 */1 * * * root /root/bin/myscript.sh\" >> /etc/crontab \r" # 放入crontab内
  16. expect "*]#"
  17. send "service crond reload \r" # 重启crond服务
  18. send "exit\r"
  19. }


阅读(1189) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~