Linux入门002 | 看日期、时间换算和定时作业
前言
在Linux世界里,日期与时间不仅是系统运行的脉络,更是众多命令行操作的核心要素。无论是追踪日志、管理备份,还是安排定时任务,对日期和时间的精准操控都是提升工作效率的关键。本期文章将揭示Linux指令中与日期相关的实用技巧和魔法般的组合,助您轻松驾驭时间,让命令行工作如虎添翼。
一、获取当前日期与时间
最基础也最常用的日期时间命令是 date。简单执行 date 即可显示当前系统时间:
In [31]:
代码语言:javascript复制
代码语言:javascript复制!date
代码语言:javascript复制
代码语言:javascript复制Sat 06 Apr 2024 04:48:50 PM UTC
您还可以使用各种格式选项定制输出:
指定格式输出:使用 FORMAT 参数自定义日期时间格式。例如,输出年月日时分秒:
In [4]:
代码语言:javascript复制!date ' %Y-%m-%d %H:%M:%S'
代码语言:javascript复制
2024-04-06 16:32:34
格式代码:
%Y:四位数年份 %m:两位数月份 %d:两位数日期 %H:24小时制小时数 %M:分钟数 %S:秒数
显示UTC时间:加上 -u 参数显示协调世界时(UTC):
In [6]:
代码语言:javascript复制
代码语言:javascript复制!date -u
代码语言:javascript复制
代码语言:javascript复制Sat 06 Apr 2024 04:33:29 PM UTC
二、日期运算与转换
有时,您可能需要计算未来或过去的某个日期,或者将日期转换为不同格式。以下是一些实用工具和方法:
date 的加减运算:使用 date -d 实现日期的加减。例如,获取明天的日期:
In [7]:
代码语言:javascript复制
代码语言:javascript复制!date -d 'tomorrow'
代码语言:javascript复制
Sun 07 Apr 2024 04:33:59 PM UTC
或者计算指定天数后的日期:
In [8]:
代码语言:javascript复制
代码语言:javascript复制!date -d 'now 7 days'
代码语言:javascript复制
代码语言:javascript复制Sat 13 Apr 2024 04:34:20 PM UTC
三、利用日期筛选文件
在处理大量文件时,根据文件的创建、修改或访问日期进行筛选尤为实用。以下是一些常见操作:
查找最近修改的文件:使用 find 命令结合 -mtime、-ctime 或 -atime 选项,按修改时间、状态改变时间或访问时间筛选文件。例如,查找过去24小时内修改过的文件:
In [23]:
代码语言:javascript复制
代码语言:javascript复制!touch 1.txt 2.txt 3.txt
代码语言:javascript复制
In [24]:
代码语言:javascript复制
代码语言:javascript复制!find /home/mw/project -type f -mtime -1
代码语言:javascript复制
代码语言:javascript复制/home/mw/project/1.txt
/home/mw/project/2.txt
/home/mw/project/3.txt
根据日期范围查找文件: 通过组合 -newer 选项与一个参考文件(或日期标记文件)来定位在指定日期之后修改的文件:
In [38]:
代码语言:javascript复制
代码语言:javascript复制!touch -d '2022-04-06 00:49:00' reference_file
代码语言:javascript复制
In [37]:
代码语言:javascript复制
代码语言:javascript复制!find /home/mw/project -type f -newer reference_file
代码语言:javascript复制
代码语言:javascript复制/home/mw/project/1.txt
/home/mw/project/2.txt
/home/mw/project/3.txt
四、调度基于日期的任务
计划任务是Linux管理中的重要一环,cron 是实现定时任务的瑞士军刀。利用 crontab 命令编辑定时任务列表,您可以精确控制任务的执行时间:
In [40]:
代码语言:javascript复制# 打开 crontab 编辑器
代码语言:javascript复制!crontab -e
代码语言:javascript复制# 添加定时任务(每天凌晨3点执行 backup.sh 脚本)
代码语言:javascript复制!0 3 * * * /path/backup.sh
代码语言:javascript复制
代码语言:javascript复制/bin/bash: crontab: command not found
/bin/bash: 0: command not found
此处仅仅作为示例,看起来和鲸镜像并不能设置定时作业
Cron 时间格式: 五个* 分别对应 ┬ ┬ ┬ ┬ ┬ │ │ │ │ │ │ │ │ │ └───── 星期 (0-7,0和7都代表周日) │ │ │ └─────── 月份 (1-12) │ │ └───────── 日期 (1-31) │ └─────────── 小时 (0-23) └───────────── 分钟 (0-59)
小结
以上仅为个人常用指令,如有异议欢迎补充