有多台主机,要求在其中的任何一台上可以同时操纵这几台主机同时执行这条命令!这里以三台主机为例:
脚本文件如下:
#!/bin/bash
if [ "$#" -lt 2 ]
then
echo "you must specify two parameter!! usage: ./ido.sh hostlistfile linuxcommand "
echo $#
exit 1
fi
for i in `cat $1`
do
echo -----$i-----
ssh $i $2;
echo -ne '\E[34m'"--------------------------------"; tput sgr0
echo ""
done
把上述脚本写入/share/sbin/1.sh文件中!
在/share/sbin/目录下面创建一个文件hostlist把要控制的主机名字写进去:
[root@mgt01 sbin]# vim hostlist
mgt01
c0101
c0102
~
写完之后我们来执行一下脚本命令!
[root@mgt01 sbin]# sh 1.sh hostlist date
-----mgt01-----
Thu Mar 10 10:54:30 CST 2016
--------------------------------
-----c0101-----
Thu Mar 10 10:54:29 CST 2016
--------------------------------
-----c0102-----
Thu Mar 10 10:54:30 CST 2016
--------------------------
脚本文件中那个ssh $i $2;用到了ssh无密码访问的知http://zidingyi.blog.51cto.com/10735263/1749512,还有就是每一个主机都可以这样操作,用到nfs共享!有什么不对的,需要改进的请指正!
脚本文件如下:
#!/bin/bash
if [ "$#" -lt 2 ]
then
echo "you must specify two parameter!! usage: ./ido.sh hostlistfile linuxcommand "
echo $#
exit 1
fi
for i in `cat $1`
do
echo -----$i-----
ssh $i $2;
echo -ne '\E[34m'"--------------------------------"; tput sgr0
echo ""
done
把上述脚本写入/share/sbin/1.sh文件中!
在/share/sbin/目录下面创建一个文件hostlist把要控制的主机名字写进去:
[root@mgt01 sbin]# vim hostlist
mgt01
c0101
c0102
~
写完之后我们来执行一下脚本命令!
[root@mgt01 sbin]# sh 1.sh hostlist date
-----mgt01-----
Thu Mar 10 10:54:30 CST 2016
--------------------------------
-----c0101-----
Thu Mar 10 10:54:29 CST 2016
--------------------------------
-----c0102-----
Thu Mar 10 10:54:30 CST 2016
--------------------------
脚本文件中那个ssh $i $2;用到了ssh无密码访问的知http://zidingyi.blog.51cto.com/10735263/1749512,还有就是每一个主机都可以这样操作,用到nfs共享!有什么不对的,需要改进的请指正!
0
用python 的fabric模块实现
from fabric.api import run, env, execute
env.hosts = ['root@IP','root@IP']
def task():
run('date')
if __name__=="__main__":
execute(task)$ python test.py
[root@ip] Executing task 'task'
[root@ip] run: date
[root@ip] out: Wed Mar 16 23:18:38 EDT 2016
[root@ip] out:
[root@ip] Executing task 'task'
[root@ip] run: date
[root@ip] out: Thu Mar 17 11:18:40 CST 2016
[root@ip] out:
from fabric.api import run, env, execute
env.hosts = ['root@IP','root@IP']
def task():
run('date')
if __name__=="__main__":
execute(task)$ python test.py
[root@ip] Executing task 'task'
[root@ip] run: date
[root@ip] out: Wed Mar 16 23:18:38 EDT 2016
[root@ip] out:
[root@ip] Executing task 'task'
[root@ip] run: date
[root@ip] out: Thu Mar 17 11:18:40 CST 2016
[root@ip] out:
0
嗯!谢谢,python我正在看,一起交流··
cxiaodian 发表于 2016-3-17 11:20
用python 的fabric模块实现
from fabric.api import run, env, execute
env.hosts = ['root@IP','root@IP ...
嗯!谢谢,python我正在看,一起交流··
编辑回复