linux通过ntpdate网络校时
目前 Linux 系统上面有两个时间喔,一个是 Linux
系统,另一个则是 BIOS 时间(真正的硬件记录的时间)! 我们可以使用 date 这个指令来手动修正目前主机的时间,不过, date
这个指令仅修正 Linux 时间而已,我们还需要以 hwclock 这个指令来将 BIOS
时间也更新才行! hwclock [-rw]
-r:查看现有BIOS时间
-w:将现在的linux系统时间写入BIOS中 当我们进行完 Linux 时间的校时后,还需要以 hwclock -w 来更新 BIOS 的时间,因为每次开机的时候,系统会重新由
BIOS 将时间读出来,所以, BIOS
才是重要的时间依据。 1.
开机的时候自动网络校时:
vi /etc/rc.d/rc.local
/usr/sbin/ntpdate -u 192.168.0.2 192.168.0.3
192.168.0.4; /sbin/hwclock
-w 2.
设定计划任务
crontab -e
10 5 * * * root ntpdate 192.168.0.2 ;hwclock -w
这样每天5:10自动进行网络校时
ntpdate命令: 通过轮询指定的确定正确时间的 NTP 服务器,
ntpdate 命令设置本地日期和时间。它从指定的每个服务器获得了一些样本,并应用标准
NTP 时钟过滤器和选择算法来选择最好的样本。此 ntpdate 命令使用以下方法进行时间调整:
* 如果它确定时钟偏差超过 0.5 秒,它通过调用 settimeofday
子例程设置时钟时间。在引导时间,这是一个首选的方法。
* 如果它确定时钟偏差小于 0.5 秒,它通过调用 adjtime
子例程和偏移量来调整时钟时间。此方法倾向于用牺牲一些稳定性来保持漂移时钟更加准确。
当不是通过运行一个守护程序而是从 cron 命令有规则的运行 ntpdate
命令时,每一小时或两小时执行一次可以保证足够的走时精度,从而避免调整时钟。 48 */1 * * * /usr/sbin/ntpdate -u 172.16.58.40 172.16.58.14
172.23.32.142 172.24.18.141 172.24.147.11
1 1 * * * /sbin/hwclock
-w 注意事项:
1. 使用很多服务器可以大幅度改善 ntpdate
命令的可靠性与精度。尽管能使用单一服务器,但您能通过提供至少三个或四个服务器以获得更好的性能。
2. 如果一个类似 xntpd 守护程序的 NTP 服务器守护程序正在同一主机上运行,命令将拒绝 ntpdate
设置日期。
3. 你必须有 root
权限才能在主机上运行这个命令。 注意, ntpdate 的准确性和可靠性取决于服务器的数量、每次运行它时的轮询数以及运行之间的时间间隔。ntpdate
根据需要可以手动运行来设置主机时钟,也可以从主机启动脚本中运行,在引导时设置时钟。某些情况下,它可用于在启动NTP 守护程序xntpd
之前对时钟进行初始设置。也可以从cron 脚本中运行ntpdate 。但是务必要注意,包含人为产生的cron 脚本的ntpdate
不能替代NTP 守护程序,后者使用高级算法,在尽量减少使用资源的同时,尽量提高准确性和可靠性。最后,由于ntpdate
不会像xntpd 一样控制主机时钟频率,因此使用ntpdate 的准确性很有限。
ntpdate linux时间同步命令
名称
ntpdate – 通过NTP 设置日期和时间
概要
ntpdate [ -Bbdpqsuv ] [ -a key# ] [ -e authdelay ] [ -k keyfile
]
[ -o version ] [ -p samples ] [ -t timeout ] server[ … ]
说明
ntpdate 通过轮询指定为服务器参数的网络时间协议(NTP) 服务器来设置本地日期和时间,从而确定正确的时
间。它必须以根用户身份在本地主机上运行。从每个指定的服务器中可获取大量的示例,并且还应用了NTP 时钟
过滤器和选择算法的子集,以选择最佳的算法。请注意, ntpdate
的准确性和可靠性取决于服务器的数量、每次运行它时的轮询数以及运行之间的时间间隔。
ntpdate 根据需要可以手动运行来设置主机时钟,也可以从主机启动脚本中运行,在引导时设置时钟。某些情况
下,它可用于在启动NTP 守护程序xntpd 之前对时钟进行初始设置。
也可以从cron 脚本中运行ntpdate 。但是务必要注意,包含人为产生的cron 脚本的ntpdate 不能替代NTP
守护程序,后者使用高级算法,在尽量减少使用资源的同时,尽量提高准确性和可靠性。最后,由于ntpdate 不会像xntpd
一样控制主机时钟频率,因此使用ntpdate 的准确性很有限。
时间调整可以由ntpdate 通过以下两种方式之一来进行。如果ntpdate 确定时钟误差超过0.5
秒,它将通过调用clock_settime (请参阅clocks(2) )系统例行程序来步进时间。如果误差小于0.5
秒,它将通过调用adjtime (请参阅adjtime(2)
)系统例行程序来微调时间。后面一种技术具有较低损坏性,在误差较小时更为准确,并且在ntpdate 由cron (请参阅cron(1M)
)每一小时或两小时运行一次时运转非常良好。
如果NTP 服务器守护程序(如xntpd )在同一台主机上运行, ntpdate
将拒绝设置日期。作为运行守护程序的备用方法定期从cron 运行ntpdate
时,如果每一个小时或两个小时执行一次,将产生足够精确的计时,以避免步进时钟。
命令行选项
ntpdate 支持下列选项:
-a 启用身份验证功能并指定要用于身份验证的密钥标识符。密钥和密钥标识符必须在客户端密钥文
件和服务器密钥文件中都匹配。缺省设置是禁用身份验证功能。
-B 强制始终使用adjtime 系统调用来微调时间(即使测量到的偏移量大于+-128 毫秒)。缺省设置
是在偏移量大于+-128 毫秒时使用clock_settime 系统调用步进时间。请注意,如果偏移量比
+-128 毫秒大得多,则可能需要较长的时间(数小时)来将时钟微调到正确的值。在此期间,不
应使用主机来同步化客户端。
-b 强制使用clock_settime 系统调用来步进时间,而不是使用adjtime 系统调用来微调时间(缺省
值)。如果在引导时从启动文件中调用,则应使用该选项。
-d 启用调试模式,在该模式下ntpdate 将经历所有步骤,而不仅仅是调整本地时钟。另外还将输出
可用于一般性调试的信息。
-e authdelay 将执行身份验证功能的处理延迟指定为值authdelay (以秒及其分数为单位;有关详细信息,请
参阅xntpd(1M) )。虽然指定一个值可以在速度很慢的CPU 上提高走时精度,但是该数通常都
非常小,以至在大多数情况下都可以将其忽略。
-k keyfile 将身份验证密钥文件的路径指定为字符串keyfile 。缺省值为/etc/ntp.keys
。该文件应该采用
xntpd 中所述的格式。
-o version 将外发数据包的NTP 版本指定为整数版本(可以是1 或2)。缺省值是3。它允许将ntpdate
与早期NTP 版本一起使用。
-p samples 将要从每个服务器中获取的示例数指定为整数示例,其值的范围是1 到8(包括这两个数)。缺
省值为4。
-q 输出偏移量测量结果、服务器层次以及延迟测量结果,但不调整本地时钟。它类似于-d 选项,
后者提供更为详细的调试信息。
-s 将日志记录输出从标准输出(缺省)转移到系统syslog (请参阅syslog(3C) )工具。它主要是
为便于使用cron 脚本而设计。
-t timeout 将等待服务器响应的最长时间指定为超时值,以秒及其分数为单位。该值将四舍五入成0.2 秒的
倍数。缺省值是1 秒,该值适用于轮询局域网。
-u 指示ntpdate 将无特权的端口用于外发的数据包。在防火墙后,如果阻塞向特权端口的传入流
量,并且您希望与防火墙后的主机进行同步,则该选项极为有用。请注意, -d 选项始终使用无
特权的端口。
-v 输出NTP 版本号和偏移量测量信息。
文件
/etc/ntp.keys 包含ntpdate 使用的加密密钥。