一个用于同步CentOS镜像的脚本

因为在同步时需要使用代理,可能因为代理而导致在第一次同步CentOS镜像时,或每当CentOS发布新的版本时,同步的进程总是继线退出。为了解决这个问题,写了如下一个脚本:

[user@host ~]$ cat mon_centos.sh
#!/bin/bash
export RSYNC_PROXY="xxx.xxx.xxx.xxx:3128"
while true
do
  counter=`ps ax | grep rsync |grep centos |grep -v grep | wc -l`
  pro_id=`ps ax | grep rsync |grep centos |grep -v grep | awk '{print $1}'`
  case $counter in
    0)
        echo "counter=$counter"
        /usr/bin/rsync -rlptvHz --partial --exclude ".~tmp~/" --exclude ".*" rsync://mirror.chpc.utah.edu/pub/centos/ /disk4/mirror/centos
        ;;
    2)
        echo "counter=$counter"
        sleep 60
        ;;
    *)
        echo "counter=$counter"
        sleep 60
        ;;
  esac
  sleep 60
done

这个脚本或反而获取当前运行rsync进程的数量,当同步进程数量为0时,重新启动同步进程,否则sleep 60秒之后重新检测。