Shell脚本——时间同步

Posted twc829

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Shell脚本——时间同步相关的知识,希望对你有一定的参考价值。

在Linux系统中,为避免主机时间因长时间运作下导致的时间偏差,需进行时间同步synchronize;

一、系统时间与硬件时间

一台计算机有两个时钟,一是硬件时间时钟(RTC,Real Time Clock,又实时时钟),二是系统时钟(System Clock);

1 概念

硬件时钟是嵌在主板上的特殊电路,平时关机后还可计算时间;

系统时钟是操作系统的kernel用以计算时间的时钟;


2 工作原理

在Linux系统下,系统时间在开机时会和硬件时间同步,随后各自独立运行;

默认情况下,系统时间和硬件时间不会自动同步;

硬件时间运行依靠Bios电池,系统时间运行依靠CPU tick,这也是系统时间长时间运行会产生时间偏差的原因;


3 查看时间

系统时间通过date命令查看,硬件时间通过clock或hwclock命令查看;





二、设置系统时间与硬件时间

1 设置系统时间

date -s "20170522 14:29:25" #或
date -s "2017-05-22 14:29:25" # 或
date -s "14:29:25 20170522" # 或
date -s "14:29:25 2017-05-22" # 或


2 设置硬件时间

hwclock --set --date="2017-05-22 14:29:25"; # 或
clock --set --date "2017-05-22 14:29:25";




三、系统时间和硬件时间同步

1 把系统时间设置成硬件时间

hwclock --systohc


2 把硬件时间设置成系统时间

hwclock --hctosys




四、时间同步设置

1 网络时间协议NTP(Network Time Protocol)

是互联网中时间同步的标准互联网协议;

用于将计算机时间同步到某些时间标准;


2 同步时间

同步时间,需要一个精确的NTP server,可在NTP官网http://www.pool.ntp.org查找离自己最近的NTP server;

同步时间,使用ntpd或ntpdate命令;

(1)ntpd命令不仅是时间同步服务器,还可当作客户端与标准时间服务器进行同步时间,且平滑同步,一点点校正时间;

(2)ntpdate命令是立即同步,直接调整时间;

在生产环境中,慎用ntpdate命令;

ntpd 2.cn.pool.ntp.org


3 定时同步

可在/stc/crontab文件中添加如下内容,使系统每隔十分钟同步一次;

*/10 * * * * ntpdate 1>/dev/null 2>&1


以上是关于Shell脚本——时间同步的主要内容,如果未能解决你的问题,请参考以下文章

linux文件远程传输客户端shell脚本与分布式客户机时间同步脚本

Shell脚本实战——DNS主从同步脚本实例

安利:分享一个rsync同步shell脚本

安利:分享一个rsync同步shell脚本

Shell + Datax 动态传递时间参数模式

从 iOS UIAutomation 发出同步 HTTP GET 请求或在 JavaScript 中调用 shell 脚本