1、设置系统时间

 
  
  1. date -s //设置当前时间,只有root权限才能设置,其他只能查看。 
  2. date -s 20080523 //设置成20080523,这样会把具体时间设置成空00:00:00 
  3. date -s 01:01:01 //设置具体时间,不会对日期做更改 
  4. date -s “01:01:01 2008-05-23″ //这样可以设置全部时间 
  5. date -s “01:01:01 20080523″ //这样可以设置全部时间 
  6. date -s “2008-05-23 01:01:01″ //这样可以设置全部时间 
  7. date -s “20080523 01:01:01″ //这样可以设置全部时间 

2、查看硬件时间

 
   
  1. # hwclock 
设置硬件时间
 
 
   
  1. # hwclock --set --date="07/07/06 10:19" (月/日/年 时:分:秒) 

3、硬件时间和系统时间的同步

重新启动系统,硬件时间会读取系统时间,实现同步,但是在不重新启动的时候,需要用hwclock命令实现同步。
硬件时钟与系统时钟同步:
 
 
   
  1. # hwclock --hctosys(hc代表硬件时间,sys代表系统时间) 
系统时钟和硬件时钟同步:(让系统的时间同步到硬件时钟)
 
 
   
  1. # hwclock –-systohc  

4、使用ntpdate 来同步时间

如果没有该命令,安装以下包:
 
 
  
  1. rpm -ivh ntp-4.2.2p1-9.el5.centos.2.1.i386.rpm  
国家授时中心地址:210.72.145.44
使用ntpdate 210.72.145.44 来同步时间,同步完成后clock -w写入CMOS,如果使用了iptables作为防火墙,添加以下语句就可以更新
 
 
  
  1. iptables -A INPUT -p tcp --sport 123 -s 210.72.145.44 -j ACCEPT 
  2. iptables -A OUTPUT -p tcp --dport 123 -d 210.72.145.44 -j ACCEPT   
  3.   
  4. iptables -A OUTPUT -p udp --dport 123 -d 210.72.145.44 -j ACCEPT   
  5. iptables -A INPUT -p udp --sport 123 -s 210.72.145.44 -j ACCEPT   

5.使用脚本来定时同步时间

使用crontab 来执行以下脚本,每周5 23:30同步一次时间
30 23 * * 5  /root/ntpdate.sh
 
 
  
  1. #!/bin/bash 
  2.  
  3. export PATH=/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/java/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/loc 
  4. al/mysql5/bin:/root/bin 
  5.  
  6. LOG="/tmp/ntpdate.log" 
  7. for((i=0; i<5; i++)) 
  8. do 
  9.     ntpdate 210.72.145.44 &>/dev/null 
  10.     if [ $? == 0 ];then 
  11.        clock -w 
  12.        echo "$(date +%Y-%m-%d_%T) ==>update time successful!" >>$LOG 
  13.        echo "" >>$LOG 
  14.        exit 0 
  15.     else 
  16.        echo "$(date +%Y-%m-%d_%T) ==>update time occur error!" >>$LOG 
  17.        echo "" >>$LOG 
  18.     fi   
  19. done