- 论坛徽章:
- 15
|
本帖最后由 rdcwayx 于 2013-10-16 13:14 编辑
我的思路是:
先建个列表:- $ cat server.list
- moon_web 192.168.0.48 ben
- moon_web 192.168.0.49 ben
- moon_web 192.168.0.51 before
- moon_web 192.168.0.52 pagservice
- moon_web 192.168.0.53 pay
- moon_web 192.168.0.54 ment
- moon_web 192.168.0.55 before
- moon_web 192.168.0.56 pagerservice
- moon_web 192.168.0.57 pay
- moon_web 192.168.0.58 ment
复制代码 再简化程序:- #!/bin/bash
- #create xxx
- # Usage: $0 IP1 IP2 IP3 ...
- btime=`date -d "-1 day" +%y-%m-%d`
- atime=`date -d "-1 day" +%Y-%m-%d`
- ctime=`date +%Y%m%d`
- dtime=`date -d "-1 day" +%Y%m%d`
- list=$* # 将脚本后面的参数引入, 也就是服务器IP 列表
- #rsync www server
- for server in $list
- do
- grep " $server " server.list |while read user IP key X # 将 server.list 按照IP过滤后,分配给三个变量: user, IP, key。 X 用来避免干扰,如果文件后有多余的字符。
- do
- id=${IP##*.} # 取出 IP 地址 的最后一个字段,比如48, 或者49, 因为后面的目录名里含这个。
- rsync -vzrtopgl --progress --password-file=/etc/rsyncd.passwd ${user}@${IP}::${key}log/catalina_log.$btime /opt/log/${id}_${key}/${key}/ # 这个就是对各个变量的引入。 理解了上面的代码,这个就好理解了。
- done
- done
复制代码 运行的时候,只要跟上IP地址即可- test.sh 192.168.0.48 192.168.0.49
复制代码 |
|