Linux时间的操作的常见命令
date命令使用方式 :
date [-u] [-d datestr] [-s datestr] [--utc] [--universal] [--date=datestr] [--set=datestr] [--help] [--version] [+FORMAT] [MMDDhhmm[[CC]YY][.ss]]
1.date :查看当前时间,结果如下:
[root@gafa ~]# date
2020年 10月 23日 星期五 13:35:49 CST
2.date ‘+%Y%M%D’ 按照格式显示当前日期,结果如下:
[root@gafa ~]# date "+%Y-%m-%d %H:%M:%S"
2020-10-23 13:36:20
3.date -s “xxx xx:xx:xx” 设置系统时间
[root@gafa ~]# date -s "20201023 13:37:00"
2020年 10月 23日 星期五 13:37:00 CST
linux的时间同步
下面我们来看一下我们在复杂环境下怎么把多台linux设置统一的正确环境:
时间同步命令:utpdate 时间服务器ip
ntpdate -u xx.xx.xx.xx 结果如下:
[root@gafa ~]# ntpdate -u ntp.api.bz
23 Oct 16:27:44 ntpdate[2695]: adjust time server 114.118.7.163 offset 0.000074 sec
[root@gafa ~]# date
2020年 10月 23日 星期五 16:28:06 CST
ps:若不加上-u参数, 会出现以下提示:no server suitable for synchronization found
-u:从man ntpdate中可以看出-u参数可以越过防火墙与主机同步;
ntp常用服务器:
中国国家授时中心 | 210.72.145.44 |
---|---|
NTP服务器(上海) | ntp.api.bz |
美国 | time.nist.gov |
复旦 | ntp.fudan.edu.cn |
微软公司授时主机(美国) | time.windows.com |
北京邮电大学 | s1a.time.edu.cn |
清华大学 | s1b.time.edu.cn |
北京大学 | s1c.time.edu.cn |
台警大授时中心(台湾) | asia.pool.ntp.org |
时区操作
查看时区:
1.date “+%Z”
[root@gafa ~]# date "+%Z"
CST
设置时区:
复制相应的时区文件,替换系统默认时区 文件链接法
[root@gafa ~]# cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
将系统时间写入到硬件(bios)
命令:hwclock
[root@gafa ~]# hwclock
2020年10月23日 星期五 16时29分33秒 -0.444517 秒
将系统时间写入硬件时间
hwclock –systohc
将硬件时间写入系统时间
hwclock –hctosys
将当前时间写入BIOS 避免重启后失效
hwclock -w
定时任务
添加到crontab任务
[root@gafa ~]# crontab -e
0 5 * * * /usr/sbin/ntpdate -u ntp.api.bz #5点时间同步
0 12 * * * /usr/sbin/ntpdate 192.168.0.1
同步两台机器的时间(如果服务器是内网不能联网,就同步那个时间准的有的路由就自带时间同步,可以直接同步)
每天的12点整,同步一次时间。ntp服务器为192.168.0.1。
或者将下列脚本添加到/etc/cron.hourly/,这样就每小时会执行一次同步:
#!/bin/bash
#
#Id: sync-clock,v 1.6 2009/12/23 15:41:29 jmates Exp
#
#Use ntpdate to get rough clock sync with department of Genome Sciences
#time server.
NTPDATE=/usr/sbin/ntpdate
SERVER="192.168.0.1 "
#if running from cron (no tty available), sleep a bit to space
#out update requests to avoid slamming a server at a particular time
if ! test -t 0; then
MYRAND=RANDOM
MYRAND={MYRAND:=$}
if [MYRAND -gt 9 ]; then
sleep `echo MYRAND | sed 's/.*(..)/1/' | sed 's/^0//'`
fi
fi
NTPDATE -suSERVER
#update hardware clock on Linux (RedHat?) systems
if [ -f /sbin/hwclock ]; then
/sbin/hwclock --systohc
fi