Linux下date使用

[root@host1 ~]# date    #显示时间
2017年 06月 01日 星期四 17:02:59 CST

 以指定格式显示时间:

[root@host1 ~]# date +%Y%m%d
20170601
[root@host1 ~]# date +"%Y-%m-%d %H:%M:%S"
2017-06-01 17:53:16

设置时间:

[root@host1 ~]# date -s "19:19:19"
2017年 06月 01日 星期四 19:19:19 CST
[root@host1 ~]# date -s "20170601 10:00:00"
2017年 06月 01日 星期四 10:00:00 CST
[root@host1 ~]# date 0501121217 #后面的格式是:月日时分年,不精确到秒
2017年 05月 01日 星期一 12:12:00 CST
[root@host1 ~]# date -s 13:13:13 #只设置时间,日期不改变
2017年 05月 01日 星期一 13:13:13 CST
[root@host1 ~]# date -s 20171001 #设置日期,但是时间会变成00:00:00
2017年 10月 01日 星期日 00:00:00 CST

当前时间转时间戳:

[root@host1 ~]# date  +%s
1493612123

 指定时间转时间戳:

[root@host1 ~]# date -d '20170601 10:00:00' +%s
1496282400

 时间戳转换为日期时间:

[root@host1 ~]# date -d @1496282400
2017年 06月 01日 星期四 10:00:00 CST

 时间戳转换为日期时间,并指定时间格式:

[root@host1 ~]# date -d @1496282400 +"%Y-%m-%d %H:%M:%S"
2017-06-01 10:00:00

 修改服务器时间(或者使用tzselect命令按照提示选择)

cp /usr/share/zoneinfo/Asia/Shanghai/etc/localtime
cat > /etc/sysconfig/clock << EOF
ZONE="Asia/Shanghai"
UTC=false
ARC=false
EOF

如果不生效则在/etc/profile中添加:

echo "export TZ='CST-8'" >> /etc/profile
source /etc/profile

即时生效一下就全部搞定。

同步网络时间:

[root@host1 ~]# ntpdate -u ntp.api.bz  # ntp.api.bz :NTP服务器(上海)
 Jun :: ntpdate[]: step time server 17.253.72.241 offset -10477854.391594 sec

 [root@host1 ~]# crontab -l

 0 6 * * * /usr/sbin/ntpdate -u 195.13.1.153

写一个计算执行命令或者脚本时间的小脚本:

#!/bin/bash
start=`date +%s`
ntpdate -u ntp.api.bz
end=`date +%s`
diff=$[end - start]
echo "同步时间共用了:$diff seconds."

再写一个优化服务器的小脚本,我们一般删除没用的文件执行的是下面的命令:

find /tmp -name "*.txt" -mtime + -exec rm -rf {} ;

使用这条命令没错,但是如果文件多了,每天都在crontab下跑,那么执行此命令时负载很高,影响服务器性能,因为find很耗费资源

这时我们使用如下命令也可以解决:

#!/bin/sh
cd /tmp
time=`date -d " day ago" "+%b %d"`
ls -l|grep ".txt" |grep "$time"|awk '{print $NF}'|xargs rm -rf

PS:各国NTP服务器列表

[INTERNATIONAL NTP server list.]

区域[zone] 域名[Domain] IP池[IP Pool]
中国[China] cn.ntp.org.cn [58.220.207.226][47.92.108.218]
[202.112.29.82] [202.108.6.95] [120.25.108.11] [182.92.12.11] [115.28.122.198]
中国*[China*] tw.ntp.org.cn [58.220.207.226](节点失效,暂时解析至国内节点)
美国[America] us.ntp.org.cn [24.56.178.140]
新加坡[Singapore] sgp.ntp.org.cn [103.11.143.248]
韩国[korea] kr.ntp.org.cn [211.233.40.78]
德国[Germany] de.ntp.org.cn [131.188.3.220] [131.188.3.223]
日本[Japan] jp.ntp.org.cn [133.100.11.8]

-注:多组IP则为多IP轮询[Group IP was using IP-list polling]。

 

 

 

 

 

上一篇:多线程 GCD队列组


下一篇:分布式定时任务 -- elastic-job