|
有没有什么方法同时执行两个或两个以上的命令呢?
假设:前提:和所有的主机间建立了ssh信任关系,且不需要密码
1、远程shutdown10台主机的apache服务
2、停止apache的时间需要60秒
3、要shutdown掉apache才能进行文件上传动作(超过30秒)
4、上传完文件后启动apache,且启动apache的时间为60秒
我现在想同时停止两台主机的apache并在停止后上传文件,文件传完后再把apache起来(注意顺序)
主机列表是:web1 web2 web3 ..... web10
停止apache ssh web1 /opt/apache2/bin/apachectl stop
上传文件 scp -q *.php web1:/opt/www/phpdoc/
启动apache ssh web1 /opt/apache2/bin/apachectl stop
谁能帮偶实现
偶现在的shell初步的代码为
- $enable -n pwd
- $pwd
- /home/admin
- $cat host_list
- web1 web2
- web3 web4
- web5 web6
- web7 web8
- web9 web10
- $cat mypost.sh
- #!/bin/bash
- hile read line ;do
- for DES_HOST in $line ;do
- echo -e "\033[32;1m========================== $DES_HOST \
- ==========================\033[0m";
- ssh $DES_HOST /opt/apache2/bin/apachectl stop>/dev/null 2>&1
- done
- seq 60 |tac |\
- awk '{printf "\r%s%d%s","Just shutdown the Apache server, please wait for a minute...",$0,"...";\
- system("sleep 1")}'
- for DES_HOST in $line ;do
- scp -q *.php $DES_HOST:/opt/www/phpdoc/
- ssh $DES_HOST /opt/apache2/bin/apachectl start
- done
- done < /home/admin/host-list
复制代码
但是我发觉for语句不行,哎,有人给出其它思路吗?在下感激不尽
:confused: |
|