避免重复同时执行shell

#! /bin/sh


cd /usr/local/bin


if [ -e "/var/run/ntpdate.pid" ];
then
pid=`cat /var/run/ntpdate.pid`
if [ -n "`ps -p $pid | grep \"ntpdate.sh\"`" ]
then
echo "Process ntpdate.sh is running!"
exit
fi
fi


pid=$$
echo "$pid" > /var/run/ntpdate.pid


while :
do
        cat /usr/local/bin/timeserver.list|while read  SERVER
        do
        echo "use $SERVER" >> /root/ntpdate.log
/usr/sbin/ntpdate $SERVER >> /root/ntpdate.log 2>&1  && /sbin/hwclock --systohc >> /root/ntpdate.log 2>&1
CHECK=`tail -1 /root/ntpdate.log|grep sec`
        /sbin/hwclock --systohc >> /root/ntpdate.log 2>&1


        if [ -n "$CHECK" ]
then
 break
fi


done


sleep `expr 3600 \* 3` 
done

你可能感兴趣的:(大数据运维)