文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

强大且可靠,使用 Linux cron 命令安排任务

2024-12-02 03:15

关注

在我 Linux 之旅的早期,我开始欣赏操作系统的众多命令行实用程序以及它们简化常规任务的方式。例如,在我的 Windows 服务器上备份应用程序经常需要昂贵的附加软件包。相比之下,该tar命令使备份 Linux 相对容易,而且功能强大且可靠。

然而,在备份电子邮件系统时,我面临着另一个挑战。由于人们正在使用该系统,因此无法在工作日或傍晚进行备份。备份必须在午夜之后进行,并且必须可靠。我习惯了 Windows 任务管理器,但在 Linux 上我要用什么呢?那时我才学会了 cron。

使用 cron 在 Linux 上安排任务

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

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

linuxmi@linuxmi /home/linuxmi/www.linuxmi.com                              
select-editor

某些系统默认使用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/

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

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

crontab: installing new crontab

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

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

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

从 Linux 命令行调度

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

时间格式如下:

t1 t2 t3 t4 t5 program
*    *    *    *    *
- - - - -
| | | | |
| | | | +----- 星期中星期几 (0 - 6) (星期天 为0)
| | | +---------- 月份 (1 - 12)
| | +--------------- 一个月中的第几天 (1 - 31)
| +-------------------- 小时 (0 - 23)
+------------------------- 分钟 (0 - 59)

使用者也可以将所有的设定先存放在文件中,用 crontab file 的方式来设定执行时间。

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

还有 cron 的替代方案,包括anacron用于您希望定期运行但不根据特定计划运行的作业,以及用于一次性作业的at 命令。

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

来源:Linux公社内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯