- 论坛徽章:
- 2
|
本帖最后由 damcool 于 2014-09-04 18:37 编辑
- #!/bin/bash
- # apply_runway.sh
- # In crontab: * * * * * plane /home/plane/apply_runway.sh
- plane_name=$(hostname)
- retry=10
- first_way=11
- last_way=20
- while [ $retry -gt 0 ] ; do
- ssh plane@control_server.com "mkdir ~/rw_lock && cat ~/runway_list.* && rm -rf ~/rw_lock" > /tmp/flight_runways
- [ $? -ne 0 ] && retry=$((retry - 1)) || retry=-1
- sleep 50
- done
- [ $retry -lt 0 ] && sort -k1,1 -k3,3 /tmp/flight_runways|awk -v p=$plane_name -v fw=$first_way -v lw=$last_way -v t=$(date +"%s") 'BEGIN{w=-1;for (i=$fw;i<=lw;i++) f[i]=0}{f[$1]++;w=(f[$1]<2 && pn==$2)?$1:w;t=(f[$1]<2 && pn==$2)?$3:t}END{for (i=fw;i<=lw && w<0;i++) w=(f[i]<1)?i:w; w=(w<0)?lw:w; print w" "pn" "t}' > /tmp/runway_request
- retry=1
- while [ $retry -gt 0 ] ; do
- ssh plane@control_server.com "mkdir ~/rw_lock"
- [ $? -ne 0 ] && sleep 50 || retry=-1
- done
- scp /tmp/runway_request plane@control_server.com:~/runway_list.$plane_name
- ssh plane@control_server.com "rm -rf ~/rw_lock"
复制代码 |
|