屌絲公司:設置服務器的時區、時間及時間同步

查看當前時區

[root@svr-dsdb01 ~]# date -R
Wed, 01 Sep 2021 09:37:21 +0800

 

設置時區

[root@svr-dsdb01 ~]# timedatectl set-timezone Asia/Shanghai

 

有兩種方式都可以實現從時間同步服務器同步時間的目的。

1、使用ntpdate命令,配合crontab定時執行時間同步。

2、使用ntpd服務。網上說這種更好,但屌絲公司嘛,不用這種也可以理解。

 

下面講一下第1種的實現方法。

ntpdate命令的使用比較簡單

[root@svr-dsdb01 ~]# ntpdate 172.7.0.146
[root@svr-dsdb01 ~]# ntpdate time.ntp.org

crontab要稍微複雜一點

先看一下配置文件的格式:

5 * * * * ls 指定每小時的第5分鐘執行一次ls命令
30 5 * * * ls 指定每天的 5:30 執行ls命令
30 7 8 * * ls 指定每月8號的7:30分執行ls命令
30 5 8 6 * ls 指定每年的6月8日5:30執行ls命令
30 6 * * 0 ls 指定每星期日的6:30執行ls命令[注:0表示星期天,1表示星期1,以此類推,也可以用英文來表示,sun表示星期天,mon表示星期一等。]
30 3 10,20 * * ls 每月10號及20號的3:30執行ls命令[注:“,”用來連接多個不連續的時段]
25 8-11 * * * ls 每天8-11點的第25分鐘執行ls命令[注:“-”用來連接連續的時段]
*/15 * * * * ls 每15分鐘執行一次ls命令 [即每個小時的第0 15 30 45 60分鐘執行ls命令 ]
30 6 */10 * * ls 每個月中,每隔10天6:30執行一次ls命令[即每月的1、1121、31日是的6:30執行一次ls命令。]

 

 

 
 特殊字符  含義
 *(星號)  代表任何時刻都接受的意思。舉例來說,0 12 * * * command 日、月、周都是*,就代表着不論何月、何日的禮拜幾的12:00都執行後續命令的意思。
 ,(逗號)  代表分隔時段的意思。舉例來說,如果要執行的工作是3:00與6:00時,就會是:0 3,6 * * * command時間還是有五列,不過第二列是 3,6 ,代表3與6都適用
 -(減號)  代表一段時間範圍內,舉例來說,8點到12點之間的每小時的20分都進行一項工作:20 8-12 * * * command仔細看到第二列變成8-12.代表 8,9,10,11,12 都適用的意思
 /x(斜線)  代表每隔x【單位】的意思,例如每五分鐘進行一次,則:*/5 * * * * command用*與/5來搭配,也可以寫成0-59/5,意思相同

 

現在開始設置服務器的時間同步:

 查看當前的定時任務

[root@svr-dsdb01 ~]# crontab -l
*/3 * * * * flock -xn /var/log/pg_iscsi_monitor.lock -c '/root/script/pg_iscsi_monitor.sh >/dev/null 2>&1'
*/3 * * * * flock -xn /var/log/pps_iscsi_monitor.lock -c '/root/script/pps_iscsi_monitor.sh >/dev/null 2>&1'

編輯定時任務,增加一條時間同步命令

[root@svr-dsdb01 ~]# crontab -e

進入了vi編輯器,在最後增加如下一行,注意最後-w後面要留一個空格

*/30 * * * * /usr/sbin/ntpdate 172.7.0.146 && /sbin/hwclock -w 

以上一行表示,每隔30分鐘從授時服務器同步一次時間,並將系統時間同步到硬件時間(BIOS)

hwclock命令

hwclock -s 將硬件時間同步到系統時間
hwclock -w 將系統時間同步到硬件時間
hwclock -v 查看版本

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章