linux下调整时区与时间的方法详解

发布时间:2019-11-22编辑:脚本学堂
本文介绍下,在linux中调整时区与时间的方法,包括用crontab进行定时更新的方法,有需要的朋友参考下吧。
二、在linux上同步时间
1.建立一个文件date.cron   (/usr/local/bin)
vi date.cron加入下面要运行的命令和要定期执行的时间,每隔一分钟
 

复制代码 代码示例:
*/1 * * * * /usr/sbin/ntpdate 172.16.100.26

2.使用crontab命令来安装这个文件,使之成为该用户的crontab文件。键入:
 

复制代码 代码示例:
crontab date.cron

3.使用命令:
crontab -l (查看安排的作业序列)可以看到刚才的作业
可以用date命令查看时间是否同步了
 
一个服务器是时间的准确非常重要,但是往往由于各种原因服务器的时间会出现不准确的情况。
linux对这种情况也比较重要,有一个专门的服务用来进行服务器时间的同步。

ntpdata用来和授时中心连接进行时间的同步。
用法:ntpdate 授时中心域名

常见的授时中心列表如下:
 

复制代码 代码示例:
微软公司授时主机(美国)
time.windows.com
台警大授时中心(台湾)
asia.pool.ntp.org
中科院授时中心(西安)
210.72.145.44
网通授时中心(北京)
219.158.14.130

有了这个服务,只要把它加入crontab即可实现自动的时间同步。

crotab的用法:
 

复制代码 代码示例:
crontab -u
#设定某个用户的cron服务,一般root用户在执行这个命令的时候需要此参数
crontab -l
#列出某个用户cron服务的详细内容
crontab -r
#删除某个用户的cron服务
crontab -e
#/编辑某个用户的cron服务

crontab内的基本编辑格式如下
 

* * * * * command
分 时 日 月 周 命令
第1列表示分钟1~59 每分钟用*或者 */1表示
第2列表示小时1~23(0表示0点)
第3列表示日期1~31
第4列表示月份1~12
第5列标识号星期0~6(0表示星期天)
第6列要运行的命令

crontab文件的一些例子:
 

复制代码 代码示例:
30 21 * * * /etc/init.d/smb restart
上面的例子表示每晚的21:30重启smb 。
45 4 1,10,22 * * /etc/init.d/smb restart
上面的例子表示每月1、10、22日的4 : 45重启smb 。
10 1 * * 6,0 /etc/init.d/smb restart
上面的例子表示每周六、周日的1 : 10重启smb 。
0,30 18-23 * * * /etc/init.d/smb restart
上面的例子表示在每天18 : 00至23 : 00之间每隔30分钟重启smb 。
0 23 * * 6 /etc/init.d/smb restart
上面的例子表示每星期六的11 : 00 pm重启smb 。
* */1 * * * /etc/init.d/smb restart
每一小时重启smb
* 23-7/1 * * * /etc/init.d/smb restart
晚上11点到早上7点之间,每隔一小时重启smb
0 11 4 * mon-wed /etc/init.d/smb restart
每月的4号与每周一到周三的11点重启smb
0 4 1 jan * /etc/init.d/smb restart
一月一号的4点重启smb
 

有了以上的基础知识,要实现的任务就非常简单了:
我们编辑crontab给其添加一个任务实现每天中午12点连接授时中心进行时间同步。
 

复制代码 代码示例:
#crontab -e
输入 0 12 * * * ntpdate asia.pool.ntp.org >> /var/log/ntpdate.log

保存退出

系统每天12:00就会自动去asia.pool.ntp.org 同步时间,并将同步的日志放到/var/log/ntpdate.log
当然这个自动授时需要服务可以连上网络才行,如果你的服务器不能上网怎么办(oh,my god 不能上网的服务器)。这就得手动修改时间了,当然就无法自动同步了,只能
手动同步了。
 

复制代码 代码示例:

date -s 可以进行时间设置

将系统时间设定成2010年9月16日:
#date -s 09/16/10

将系统时间设定成上午10点12分0秒:
#date -s 10:12:00

注意:linux时间的不准往往是由于系统启动时候会从CMOS获得时间,当cmos时间不准时候,修改后马上重启系统,时间就又会不准了。为了保持系统时间与CMOS时间的一致
性,Linux每隔一段时间会将系统时间写入CMOS。由于该同步是每隔一段时间(大约是11分钟)进行的,在我们执行date -s后,如果马上重起机器,修改时间就有可能没有被
写入CMOS,这就是问题的原因。

可以使用强制往CMOS写入时间保持设定时间有效。
 

复制代码 代码示例:
clock -w

这个命令强制把系统时间写入CMOS。

您可能感兴趣的文章:
linux下修改时间的方法分享
linux 时间与时区修改方法
linux 时间同步的两种方法
修改linux时间和日期的命令date、clock
linux 下手动修改时间的方法
修改Linux时间与时区的方法
linux下更改时间的方法
linux下修改时间与时区的方法
Linux 修改时间的方法
linux 查看设置时区和时间
Linux或Unix修改系统时间的方法