Linux入门002 | 看日期、时间换算和定时作业

2024-06-20 19:03:20 浏览数 (2)

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)

小结

以上仅为个人常用指令,如有异议欢迎补充

0 人点赞