如果想定时进行时间校准,可以使用crond服务来定时执行。
编辑
/etc/crontab
文件
加入下面一行:
30
8
root
/usr/sbin/ntpdate
19216801;
/sbin/hwclock
-w
#19216801是NTP服务器的IP地址
然后重启crond服务
service
crond
restart
这样,每天
8:30
Linux
系统就会自动的进行网络时间校准。
二、WINDOWS
需要打开windows
time服务和RPC的二个服务
如果在打开windows
time
服务,时报
错误1058,进行下面 *** 作
1运行
cmd
进入命令行,然后键入
w32tm
/register
进行注册
正确的响应为:W32Time
成功注册。
2如果上一步正确,用
net
start
"windows
time"
或
net
start
w32time
启动服务。应该是locale没选对,ntp一般用的是gmt,中国的时区是+8。
时区文件一般是/etc/localtime。其他的时区文件在/usr/share/zoneinfo内。
换时区只要用/usr/share/zoneinfo内的时区文件覆盖掉/etc/localtime就可以。
比如使用中国时区,如此 *** 作即可:
cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
或者用命令:
tzselect
按照提示选择序号并回车即可。
验证时区可以用:
date -R
Thu, 16 Aug 2012 15:37:51 +0800Linux自带了ntp服务 -- /etc/initd/ntpd,这个服务不仅可以设置让本机和某台/某些机器做时间同步,他本身还可以扮演一个time server的角色,让其他机器和他同步时间。一个局域网中只需要一个ntp服务器,其他均为ntp客户端。
选择ntp服务器的原则:
该服务器可以上网:可以与标准internet的服务器进行同步时间。
web服务器:
数据库服务器:
启动ntpd服务:
选择yast
点击“系统”-->
"系统服务(运行级别)"
选择"ntp"
,点击左下方的“启用”,
再点击“确定”
点击“确定”
选择’是’。
ntp服务端配置完成。
配置ntp客户端
使用crontab命令,定时执行与服务端同步命令。
ssh
root用户登陆,执行命令:
linux-udly:~
#
crontab
–e
输入以下内容
0
/1
/usr/sbin/sntp
-p
no
-r
192168150152
(对应的ntp服务器ip地址)Linux下glibc提供了我们事先编译好的许多timezone文件, 他们就放在/usr/share/zoneinfo这个目录下,这里基本涵盖了大部分的国家和城市
# ls -F /usr/share/zoneinfo/
Africa/ Chile/ Factory Iceland Mexico/ posix/ Universal
America/ CST6CDT GB Indian/ Mideast/ posixrules US/
Antarctica/ Cuba GB-Eire Iran MST PRC UTC
Arctic/ EET GMT iso3166tab MST7MDT PST8PDT WET
Asia/ Egypt GMT0 Israel Navajo right/ W-SU
Atlantic/ Eire GMT-0 Jamaica NZ ROC zonetab
Australia/ EST GMT+0 Japan NZ-CHAT ROK Zulu
Brazil/ EST5EDT Greenwich Kwajalein Pacific/ Singapore
Canada/ Etc/ Hongkong Libya Poland Turkey
CET Europe/ HST MET Portugal UCT
在这里面我们就可以找到自己所在城市的time zone文件 那么如果我们想查看对于每个time zone当前的时间我们可以用zdump命令
# zdump Hongkong
Hongkong Fri Jul 6 06:13:57 2007 HKT
那么我们又怎么来告诉系统我们所在time zone是哪个呢 方法有很多,这里举出两种 第一个就是修改/etc/localtime这个文件,这个文件定义了我么所在的local time zone 我们可以在/usr/share/zoneinfo下找到我们的time zone文件然后拷贝去到/etc/localtimezone(或者做个symbolic link) 假设我们现在的time zone是BST(也就是英国的夏令时间,UTC+1)
# date
Thu Jul 5 23:33:40 BST 2007
我们想把time zone换成上海所在的时区就可以这么做
# ln -sf /usr/share/zoneinfo/posix/Asia/Shanghai /etc/localtime
# date
Fri Jul 6 06:35:52 CST 2007
这样时区就改过来了(注意时间也做了相应的调整) 第二种方法也就设置TZ环境变量的值 许多程序和命令都会用到这个变量的值 TZ的值可以有多种格式,最简单的设置方法就是使用tzselect命令
# tzselect
TZ='America/Los_Angeles';export TZ
tzselect会让你选择所在的国家和城市(我省略了这些步骤),最后输出相应的TZ变量的值那么如果你设置了TZ的值之后时区就又会发生变化
# date
Thu Jul 5 15:48:11 PDT 2007
通过这两个例子我们也可以发现TZ变量的值会override /etc/localtime 也就是说当TZ变量没有定义的时候系统才使用/etc/localtime来确定time zone 所以你想永久修改time zone的话那么可以把TZ变量的设置写入/etc/profile里 好了现在我们知道怎么设置时区了,下面我们就来看看如何设置Linux的时间吧 3 Real Time Clock(RTC) and System Clock 说道设置时间这里还要明确另外一个概念就是在一台计算机上我们有两个时钟:一个称之为硬件时间时钟(RTC),还有一个称之为系统时钟(System Clock) 硬件时钟是指嵌在主板上的特殊的电路, 它的存在就是平时我们关机之后还可以计算时间的原因 系统时钟就是 *** 作系统的kernel所用来计算时间的时钟 它从1970年1月1日00:00:00 UTC时间到目前为止秒数总和的值 在Linux下系统时间在开机的时候会和硬件时间同步(synchronization),之后也就各自独立运行了 那么既然两个时钟独自运行,那么时间久了必然就会产生误差了,下面我们来看一个例子
# date
Fri Jul 6 00:27:13 BST 2007
# hwclock --show
Fri 06 Jul 2007 12:27:17 AM BST -0968931 seconds
通过hwclock --show命令我们可以查看机器上的硬件时间(always in local time zone), 我们可以看到它和系统时间还是有一定的误差的, 那么我们就需要把他们同步 如果我们想要把硬件时间设置成系统时间我们可以运行以下命令
# hwclock --hctosys
反之,我们也可以把系统时间设置成硬件时间
# hwclock --systohc
那么如果想设置硬件时间我们可以开机的时候在BIOS里设定也可以用hwclock命令
# hwclock --set --date="mm/dd/yy hh:mm:ss"
如果想要修改系统时间那么用date命令就最简单了
# date -s "dd/mm/yyyy hh:mm:ss"
现在我们知道了如何设置系统和硬件的时间 但问题是如果这两个时间都不准确了怎么办 那么我们就需要在互联网上找到一个可以提供我们准确时间的服务器然后通过一种协议来同步我们的系统时间,那么这个协议就是NTP了 注意接下去我们所要说的同步就都是指系统时间和网络服务器之间的同步了 4 设置NTP Server前的准备 其实这个标题应该改为设置"NTP Relay Server"前的准备更加合适 因为不论我们的计算机配置多好运行时间久了都会产生误差,所以不足以给互联网上的其他服务器做NTP Server 真正能够精确地测算时间的还是原子钟 但由于原子钟十分的昂贵,只有少部分组织拥有, 他们连接到计算机之后就成了一台真正的NTP Server 而我们所要做的就是连接到这些服务器上同步我们系统的时间,然后把我们自己的服务器做成NTP Relay Server再给互联网或者是局域网内的用户提供同步服务 好了,前面讲了一大堆理论,现在我们来动手实践一下吧 架设一个NTP Relay Server其实非常简单,我们先把需要的RPM包装上
# rpm -ivh ntp-422p1-5el5rpm
那么第一步我们就要找到在互联网上给我们提供同步服务的NTP Server >
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)