由于一些业务需要调用到系统时间进行工作,所以同步系统时间也需要注意,以下是网络同步时间的教程,Linux的时间分为System Clock(系统时间)和Real Time Clock (硬件时间,简称RTC)。
系统时间:指当前Linux Kernel中的时间。
硬件时间:主板上有电池供电的时间。
查看当前服务器时区&列出时区并设置时区(如已是正确时区,请略过):
timedatectl # 查看服务器的时区
timedatectl list-timezones # 查看时区的列表
timedatectl set-timezone Asia/Shanghai # 选择时区
先执行date命令查看是否和系统时间同步,不同步进行下步
2.时间同步的方法有很多,我选择的是ntp进行网络同步,步骤:
hwclock --show 查看硬件时间
ntpdate ntp.api.bz 同步系统时间
hwclock -w 保存到硬件时钟
hwclock --hctosys 从硬件同步系统时间
在data命令查看系统时间是否已经同步
3.为了防止一些云服务器无法把时间保存到硬件时间,重启服务器后时间有打乱,建议把同步命令加入到定时任务(该步骤可以按需要选择操作,同时可以检查是否有异常定时任务)
执行 crontab -e # 添加任务
添加以下内容
30 * * * * ntpdate ntp.api.bz
:wq保存退出
添加任务成功能
每隔30分同步一次时间
如果你不能crontab的格式可以参考下:
时间格式如下:
f1 f2 f3 f4 f5 program
其中 f1 是表示分钟,f2 表示小时,f3 表示一个月份中的第几日,f4 表示月份,f5 表示一个星期中的第几天。program 表示要执行的程序。
当 f1 为 * 时表示每分钟都要执行 program,f2 为 * 时表示每小时都要执行程序,其馀类推
当 f1 为 a-b 时表示从第 a 分钟到第 b 分钟这段时间内要执行,f2 为 a-b 时表示从第 a 到第 b 小时都要执行,其馀类推
当 f1 为 */n 时表示每 n 分钟个时间间隔执行一次,f2 为 */n 表示每 n 小时个时间间隔执行一次,其馀类推
当 f1 为 a, b, c,... 时表示第 a, b, c,... 分钟要执行,f2 为 a, b, c,... 时表示第 a, b, c...个小时要执行,其馀类推
* * * * *
- - - - -
| | | | |
| | | | +----- 星期中星期几 (0 - 7) (星期天 为0)
| | | +---------- 月份 (1 - 12)
| | +--------------- 一个月中的第几天 (1 - 31)
| +-------------------- 小时 (0 - 23)
+------------------------- 分钟 (0 - 59)