免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12
最近访问板块 发新帖
楼主: 南非珍珠
打印 上一主题 下一主题

请教一个循环命令 [复制链接]

论坛徽章:
0
11 [报告]
发表于 2009-04-10 15:51 |只看该作者
比较笨的办法 把你的list scp到你要改的所有服务器中 然后再进行变量的替换~

论坛徽章:
9
2015亚冠之阿尔纳斯尔
日期:2015-09-10 16:21:162015亚冠之塔什干火车头
日期:2015-07-01 16:23:022015年亚洲杯之巴勒斯坦
日期:2015-04-20 17:19:46子鼠
日期:2014-11-13 09:51:26未羊
日期:2014-08-28 18:13:36技术图书徽章
日期:2014-02-21 09:30:15酉鸡
日期:2014-01-14 11:12:49天蝎座
日期:2013-12-09 17:56:53平安夜徽章
日期:2015-12-26 00:06:30
12 [报告]
发表于 2009-04-10 16:00 |只看该作者
#!/bin/sh
while read ip1 ip2
do
ssh root@$ip1 "sed -i '/HWADDR/aIPADDR='$ip2 \/etc\/sysconfig\/network-scripts\/ifcfg-eth1"
done<list

论坛徽章:
0
13 [报告]
发表于 2009-04-10 16:28 |只看该作者
先写一个交换式的脚本:

  1. [root@maxxm awk]# more changeip
  2. #!/usr/bin/expect
  3. set timeout 1
  4. set ip1 [lindex $argv 0]
  5. set ip2 [lindex $argv 1]
  6. spawn ssh $ip1
  7. expect {
  8. "no)?"
  9.         {send "yes\n"
  10.         sleep 1
  11.         expect "password: "
  12.         send "yourpassword\n"}            #主机的密码
  13. "password: "
  14.         {send -- "yourpassword\n"}        #主机的密码
  15. }
  16. expect "]# "
  17. send -- "ifconfig eth1 $ip2\n"     #这里写你想要写的命令即可
  18. expect "]# "
  19. send "exit\n"
  20. expect eof
  21. exit
复制代码

再来一个执行循环的主程序:

  1. [root@maxxm awk]# more test.sh
  2. #!/bin/bash
  3. SSH="/usr/bin/ssh"
  4. cat list | while read ip1 ip2
  5. do
  6.         ./changeip $ip1 $ip2
  7. done
复制代码

论坛徽章:
0
14 [报告]
发表于 2009-04-10 16:40 |只看该作者
…………………………

[ 本帖最后由 南非珍珠 于 2009-4-10 16:41 编辑 ]

论坛徽章:
0
15 [报告]
发表于 2009-04-10 16:40 |只看该作者

回复 #14 南非珍珠 的帖子

对,把命令行改成sed命令即可,如果要修改文件的话记得加上-i参数

论坛徽章:
0
16 [报告]
发表于 2009-04-10 16:42 |只看该作者
原帖由 eeeef 于 2009-4-10 16:40 发表
对,把命令行改成sed命令即可,如果要修改文件的话记得加上-i参数



谢谢

论坛徽章:
0
17 [报告]
发表于 2009-04-10 16:52 |只看该作者

回复 #16 南非珍珠 的帖子

你的sed命令我没看明白。举个例子,如果你想要修改ONBOOT=YES中的YES改为$IP2。


  1. [root@maxcm ~]# ip2=1.1.1.1
  2. [root@maxcm ~]# more /etc/sysconfig/network-scripts/ifcfg-eth1
  3. DEVICE=eth1
  4. BOOTPROTO=dhcp
  5. HWADDR=00:17:A4:77:00:2E
  6. ONBOOT=yes
  7. TYPE=Ethernet
  8. [root@maxcm ~]# sed -i "/ONBOOT/{s/.*/ONBOOT=$ip2/}" /etc/sysconfig/network-scripts/ifcfg-eth1
  9. [root@maxcm ~]# more /etc/sysconfig/network-scripts/ifcfg-eth1
  10. DEVICE=eth1
  11. BOOTPROTO=dhcp
  12. HWADDR=00:17:A4:77:00:2E
  13. ONBOOT=1.1.1.1
  14. TYPE=Ethernet
复制代码

论坛徽章:
0
18 [报告]
发表于 2009-04-10 20:18 |只看该作者
说实话,小弟还不曾明白lz的用意。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP