侧边栏壁纸
博主头像
WY博主等级

已枉少年

  • 累计撰写 22 篇文章
  • 累计创建 3 个标签
  • 累计收到 0 条评论
标签搜索

Linux cron命令(From Linuxprobe)

WY
WY
2022-05-05 / 0 评论 / 0 点赞 / 22 阅读 / 1,965 字
温馨提示:
本文最后更新于 2022-05-05,若内容或图片失效,请留言反馈。部分素材来自网络,若不小心影响到您的利益,请联系我们删除。

Cron 是一个用于自动执行预定命令的守护进程。学习如何使用 cron 需要一些学习理解和实验,但很快我就使用 cron 来关闭我们的电子邮件服务器,将数据备份到压缩的 tar 文件中,然后在凌晨 3 点重新启动电子邮件服务。

cron 作业的命令存储在 Linux 系统上的 crontab 文件中,该文件通常位于 /etc/crontab 中。使用 $ crontab -l 显示 crontab 文件的内容。

使用$ crontab -e 编辑 crontab 文件。

linuxmi@linuxmi /home/linuxmi/www.linuxmi.com
⚡ crontab -e
使用 Linux cron 命令安排任务使用 Linux cron 命令安排任务

如果您以后改变主意,该如何选择另一个编辑器?要使用的命令是select-editor。

linuxmi@linuxmi /home/linuxmi/www.linuxmi.com
⚡ select-editor
使用 Linux cron 命令安排任务使用 Linux cron 命令安排任务

某些系统默认使用Vi 编辑器进行 cron 编辑。您可以使用环境变量覆盖此设置:

$ EDITOR=nano crontab -e
这允许您使用nano 编辑器来编辑您的个人 crontab(如果你还没有,则会自动为您创建一个)。

在插入整数值之前,所有 crontab 命令都有用星号表示的参数。第一个表示分钟,然后是小时、月中的某天、一年中的某月,最后是一周中的某天。

注释前面有一个哈希。Cron 会忽略注释,因此它们是一种很好的方式,可以让您自己记下命令的作用及其重要性。

一个 cron 作业示例
假设您想在每周三凌晨 1 点使用 clamscan 扫描您的主目录中的病毒和恶意软件。您还想在每周五上午 5 点备份您的主目录。使用 cron 和 crontab 文件可确保每周进行系统维护,无论您是否记得运行这些实用程序。

使用您自己的用户名而不是我的用户名“linuxmi”编辑您的 crontab 文件以包含以下内容:

扫描我的主目录是否有病毒

0 1 * * 3 clamscan -ir /home/linuxmi/

备份主目录

0 5 * * 5 tar -zcf /var/backups/home.tgz /home/linuxmi/
使用 Linux cron 命令安排任务使用 Linux cron 命令安排任务

如果您使用的是 nano 编辑器,请使用Ctrl+O将文件写出并使用Ctrl+X退出编辑器来保存您的工作。

提示如下,说明成功保存了。

crontab: installing new crontab

使用 Linux cron 命令安排任务使用 Linux cron 命令安排任务

编辑文件后,使用crontab -l列出您的 cron 文件的内容,以确保它已正确保存。

您可以为系统所需的任何作业创建 crontab 作业。这充分利用了 cron 守护进程。

使用crontab -r删除目前的时程表

使用 Linux cron 命令安排任务使用 Linux cron 命令安排任务

从 Linux 命令行调度
cron 最难的部分是为那些领先的星号提供正确的值,但这已经不是什么秘密了。

时间格式如下:

t1 t2 t3 t4 t5 program
其中 t1 是表示分钟,t2 表示小时,t3 表示一个月份中的第几日,t4 表示月份,t5 表示一个星期中的第几天。program 表示要执行的程序。
当 t1 为 * 时表示每分钟都要执行 program,t2 为 * 时表示每小时都要执行程序,其余类推
当 t1 为 a-b 时表示从第 a 分钟到第 b 分钟这段时间内要执行,t2 为 a-b 时表示从第 a 到第 b 小时都要执行,其余类推
当 t1 为 */n 时表示每 n 分钟个时间间隔执行一次,t2 为 */n 表示每 n 小时个时间间隔执行一次,其余类推
当 t1 为 a, b, c,… 时表示第 a, b, c,… 分钟要执行,t2 为 a, b, c,… 时表示第 a, b, c…个小时要执行,其余类推



| | | | |
| | | | ±---- 星期中星期几 (0 - 6) (星期天 为0)
| | | ±--------- 月份 (1 - 12)
| | ±-------------- 一个月中的第几天 (1 - 31)
| ±------------------- 小时 (0 - 23)
±------------------------ 分钟 (0 - 59)
使用者也可以将所有的设定先存放在文件中,用 crontab file 的方式来设定执行时间。

此外,大多数现代 cron 系统都具有常用值的快捷方式,包括:

@hourly : 每小时运行一次 (0 * * * *)
@daily: 每天运行一次 (0 0 * * *)
@weekly: 每周运行一次 (0 0 * * 0)
@monthly: 每月运行一次 (0 0 1 * *)
@reboot: 重启后运行一次
还有 cron 的替代方案,包括anacron用于您希望定期运行但不根据特定计划运行的作业,以及用于一次性作业的at 命令。

Cron 是一个有用的任务调度系统,使用起来就像编辑文本一样简单。试试看吧!

0

评论区