linux怎样自动校正时间?
通过ntp服务,自动获取网络时间并同步
定时校正服务器时间
# yum install –y ntp //安装ntp服务
# crontab -e //打开linux定时计划任务
0 23 /usr/sbin/ntpdate 2107214544 //加入这一行信息
以上命令设置好后存盘。
# /sbin/service crond reload //重载linux计划任务
重载计划任务配置
您的机器将在每天的23:00根据中国国家授时中心的NTP服务器时间自动校准时间。
你应该在安装 linux时就配置好网络设置 如果你那时候没有设置,就进入到root用户在终端下输入netconfig 回车,进入界面,应该可以看到你熟悉的内容,基本英文你应该懂吧设置好之后,然后在终端里输入ping (一般就是你学校里的代理服务器),如果你看到有很快的回应,那就表示你的网络已经通了如果没有回应,那你就看一下你的设置有没有错误,还有网线是不是两头插好了 再者就是浏览器的设置了如果你英文基本不懂,那你学linux必定会困难重重,因为大量的帮助文档都是英文的如果你懂英文,就看一下浏览器的帮助文档,其中有proxy(代理)的设置如果你不懂,我告诉你,在Konqueror浏览器下在设置下选配置选项,出来一个窗口,就选择代理中的手工设置,输入你的代理IP和端口号,点击应用,确定,就可以上网了如果你用别的浏览器,具体的设置也是类似的,比如moliza浏览器在编辑里的表现选项中可以进行代理的配置
至少需要两台linux服务器,其中一台是NTP Server, 另一台是NTP client
Linux NTP配置详解 (Network Time Protocol)
LINUX绝大多数的发行版本都已经自带了NTP程序,只须按以下配置即可。
相关配置文件
/etc/ntpconf
NTP服务的主要配置文件,所有的更改全部在这里。
/usr/share/zoneinfo
由 tzdata 所提供,规定了各主要时区的时间设定文件,例如中国的时区设置文件是/usr/share/zoneinfo/Asia/Chongqing。
/etc/sysconfig/clock
Linux的主要时区设定文件。每次启动后Linux操作系统会自动读取这个文件来设定系统预设要显示的时间。如这个文件内容为”ZONE=Asia/Chongqing”,则表示Linux操作系统的时间设定使用/usr/share/zoneinfo/Asia/Chongqing这个文件。
/etc/localtime
本地系统的时间设定文件,如果clock文件中规定了使用的时间设定文件为/usr/share/zoneinfo/Asia/Chongqing,Linux操作系统就会将Chongqing那个文件复制一份为/etc/localtime,所以系统的时间显示就会以Chongqing那个时间设定文件为准。
相关的命令
/bin/date
这个我们最经常使用了,更改及输出日期与时间命令。
/sbin/hwclock
使用hwclock才能将修改过后的时间写入BIOS 。
/usr/sbin/ntpd
NTP服务的守护进程,配置文件为/etc/ntpconf 。
/usr/sbin/ntpdate
用来连接NTP服务器命令,比如ntpdate 192168651 。
/usr/sbin/ntpq
NTP查询命令。
设置NTP服务器
就如前边说的NTP配置文档只有一个 /etc/ntpconf,看看我的ntpconf
#红字的是我添加的,其它为默认!
grep -Ev '^$|^#' /etc/ntpconf
restrict default kod nomodify notrap nopeer noquery
restrict -6 default kod nomodify notrap nopeer noquery
restrict 13110713100 //允许该NTP服务器进入
restrict 11480811 //没有任何何参数的话,这表示『该 IP或网段不受任何限制』
restrict 2021181199
restrict 127001
restrict -6 ::1
restrict 19216800 mask 25525500 nomodify //该网段可以进行校时
restrict 0000 mask 0000 notrust //拒绝没有认证的用户端
server time-nwnistgov prefer //prefer 该服务器优先
server 0rhelpoolntporg
server 1rhelpoolntporg
server 2rhelpoolntporg
fudge 12712710 stratum 10
driftfile /var/lib/ntp/drift
keys /etc/ntp/keys
别忘了启动NTP服务器
/etc/initd/ntp start
客户端测试
对了客户端只需要是用ntpdate命令即可,192168651 为ntp 服务器ip 地址,就这么就简单!
相关命令
ntpstat //列出我们的NTP 服务器是否与上层连接。
synchronised to NTP server (13110713100) at stratum 2
time correct to within 461 ms
polling server every 64 s
ntpq -p //列出目前我们的NTP服务器 与上层NTP服务器 的状态, 代表目前正在使用的上层 NTP服务器
remote refid st t when poll reach delay offset jitter
==============================================================================
13110713100 ACTS 1 u 30 64 67 237165 1539 20382
2021181199 20211231197 2 u 33 64 63 163526 91844 10208
上边只是简单设置,没有考虑安全方面如认证等等,如需更详细请参考这里。
权限管理使用 restrict 公式如下:
restrict IP mask [参数] / restrict 19216800 mask 25525500 nomodify
其中参数主要有底下这些:
ignore:拒绝所有类型的NTP的连线;
nomodfiy:用户端不能使用NTPC与ntpq这两支程式来修改伺服器的时间参数,但使用者端仍可透过这部主机来进行网路校时的;
noquery:用户端不能够使用ntpq,NTPC等指令来查询发表伺服器,等于不提供的NTP的网路校时幂;
notrap:不提供陷阱这个远端事件邮箱(远程事件日志)的功能。
notrust:拒绝没有认证的用户端。
可以在那台能上公网的linux机器上安装ntpd服务,然后在那台不能上公网的linux机器上安装ntpd客户端。
在crontab计划任务里设置每隔一定时间自动运行:
ntpdate (能上公网的机器IP)
这样就可以实现自动校时了
1 与一个已知的时间服务器同步
2 配置网络时间协议(ntp)
1 让linux自动同步时间
vi /etc/crontab
加上一句:
00 0 1 root rdate -s timenistgov
timenistgov 是一个时间服务器
2 时间服务器配置(192168101)
1) # rpm -ivh ntp-412-4EL31i386rpm
2) # vi /etc/ntpconf
注释一行
restrict default ignore
加入一行
restrict 192168100 mask 2552552550 notrust nomodify notrap
3) # vi /etc/ntp/step-tickers
加入一行
poolntporg
这样每次ntpd启动时,会自动连接该国际标准时间服务器;
4) # service ntpd start
5) # netstat -an |grep 123
确保该端口以udp方式开放
时间客户端配置(192168102)
1) # ntpdate 192168102
应该显示同步成功
2) # crond -e
加入
0-59/10 /usr/sbin/ntpdate 192168101
表示每隔10分钟同步一次时间
0条评论