
指定一台
主机作为信任主机,这样从这台主机登录其他机器就不需要密码了。设置信任主机: 假设有四台机器:192.168.2.1~192.168.2.4,其中192.168.2.1为信任机,那么在192.168.2.1上运行如下
命令: $.sh-keygen -t rsa //此处一路回车,生成秘钥 $scp .ssh/id_rsa.pub 192.168.2.2:~/ //把秘钥拷贝到其他远程机器 $ssh 192.168.2.2 ‘cat id_rsa.pub >>.ssh/authorized_keys’ //(远程
执行命令)在远程机器上生成认证文件 经过这几步,从192.168.2.1 ssh登陆192.168.2.2时,就不会再需要输入密码了。同样的步骤再执行3、4的极其。 文本文件hostlist可以如下 192.168.2.2 192.168.2.3 192.168.2.4 #!/bin/shdoCommand(){ hosts=`sed -n'/^[^#]/p'hostlist` for host in $hosts do echo "" echo HOST$host ssh $host "$@" done return 0 } if [ $# -lt 1 ] then echo "$0cmd" exit fi do Command "$@" echo "return from doCommand" 执行命令(记得先对doCommand.s h增加执行权限 chmod u+x doCommand.sh) ./doCommand.sh “ls -al /root/” 这样该脚本就会在每台机器上执行”ls -al /root/”这个命令,并返回结果在信任主机上。如果执行没有顺序的话,可以试试这个命令:
for filename in $( ls /opt/weblogic/jstx/bin)do sh "/opt/weblogic/jstx/bin/"$filenamedone
上面的命令默认目录下所有文件都是.sh的,如果有其他格式的可以过滤以后在执行:
for filename in $( ls /opt/weblogic/jstx/bin |grep ".sh")do sh "/opt/weblogic/jstx/bin/"$filenamedone
如果需要开机启动这些脚本,可以将命令写到 /etc/rc.local
或者把命令写到脚本jiaoben.sh,然后sh jiaoben.sh:
#!/bin/bash
for filename in $( ls /opt/weblogic/jstx/bin|grep ".sh")
do
sh "/opt/weblogic/jstx/bin/"$filename
done
exit
评论列表(0条)