Linux系统时间调整与获取

admin
2025-05-19 / 0 评论 / 23 阅读 / 正在检测是否收录...


在Linux系统中时间是个很重要的存在,大量的脚本或者定时任务都非常依赖系统时间,另外很多应用特别是高可用集群、数据库同步等都需要调用系统时间,如果时间有偏差很可能应用或同步不可用


系统时区调整


系统时间调整

手动调整:


NTP服务自动校准:


系统时间获取

date / timedatectl 获取系统当前时间时区等信息


1:获取今天的日期

date +'%Y-%m-%d'

time=`date +"%Y-%m-%d %H:%M:%S"`


2:获取昨天的日期

date -d "yesterday" +%Y-%m-%d

date -d "1 days ago" +%Y-%m-%d

dname1="$(date -d -1day +%Y%m%d)"


3:获取前天的时间

date -d "2 days ago" +%Y-%m-%d

date -d -2day +%Y%m%d


4:获取具体日期的前几天

date -d"15 day ago 2017-04-16" +%Y-%m-%d 


5:获取明天

明天 dname1="$(date -d 1day +%Y%m%d)"

后天 dname1="$(date -d 2day +%Y%m%d)"

大后天 dname1="$(date -d 3day +%Y%m%d)"


6:获取10分钟之前 10小时之前

获取一分钟之前
time=`date -d "1 minute ago" +"%Y-%m-%d %H:%M:%S"`

获取一小时之前
time=`date -d "1 hour ago" +"%Y-%m-%d %H:%M:%S"`

获取一天前时间
time=`date -d "1 day ago" +"%Y-%m-%d %H:%M:%S"`


7:获取一个时间段日志

cat access.log.2022-08-26 | grep -E "(Aug 26 09 |Aug 26 10)" 精确到小时

sed -n "/2022-09-21 16:00/,/2022-09-21 16:30/p"

sed -n '/Aug 26 10:05/,/Aug 26 10:30/p' access.log.2022-08-26 精确到分钟和秒

sed -n '/26 10:05/,/26 10:30/p' access.log.2022-08-26 精准匹配时间需要带日期

sed -n "/2022\/09\/29 16:00/,/2022\/09\/29 16:20/p" /www/wwwlogs/nginx_api_error.log


8: 月日前面不加0

-m -d 
date +'%Y-%-m-%-d' (实际是2025-05-08 去0 显示为2025-5-8) 


9:获取英文月份

march=$((date +%B) | cut -b 1-3) 截取前面3个字母 Sep 九月



0

评论 (0)

取消