2014年5月24日 星期六

Linux環境下,更新本機時間的shell

更新本機時間的shell,隨機選取時間伺服器
#!/bin/bash
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin
servs=(tock.stdtime.gov.tw watch.stdtime.gov.tw time.stdtime.gov.tw clock.stdtime.gov.tw tick.stdtime.gov.tw)
declare -i number=$RANDOM*${#servs[*]}/32767
ntpdate -s ${servs[$number]}  #更新本机時間
hwclock -w  #寫入bios

更新本機時間的shell,但會先ping時間伺服器是否正常連線,時間伺服器若有所回應,才更新。反之,會改選擇下一個時間伺服器更新。
#!/bin/bash
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
server=(ntp.ntu.edu.tw time.stdtime.gov.tw clock.stdtime.gov.tw watch.stdtime.gov.tw)
i=0
until [ "$uptime" == "y" ]
do
ping -c 1 -w 1 ${server[$i]} &> /dev/null && result=1 || result=0
if [ "$result" == 1 ]; then
    ntpdate -s ${server[$i]}
    hwclock -w
    uptime="y"
  else
    uptime="n"
    i=$(($i+1))
  fi
done

沒有留言:

張貼留言