ubuntu 计划任务:cron

1. 前言

限于作者能力水平,本文可能存在谬误,因此而给读者带来的损失,作者不做任何承诺。_

2. 什么是 cron ?

Windows 系统下的计划任务工具,可以让用户指定在特定的条件下(如某个指定时间),执行指定的任务。cron 就是 Ubuntu 下的计划任务工具。

3. cron 工作原理

cron 搜寻目录

/var/spool/cron/crontabs
/etc/cron.d/xxx

然后加载目录下文件,以每分钟为周期,通过检验文件的 modtimeinotify 通知,确认是否要执行该任务,因此在修改计划任务文件后,不需要重启 cron 服务。

计划任务的输出可以 MAILTO 或 通过 -s 选项发送到 syslog

目录 /var/spool/cron/crontabs 下的为每用户的任务。

4. 编辑用户特定的任务

crontab -e

在弹出的编辑界面编辑:

* * * * * echo "Hello, World!" >> /tmp/cron-test.txt

假设当前用户名为 test , 则在目录 /var/spool/cron/crontabs 下生成文件 /var/spool/cron/crontabs/test , 其内容为:

# DO NOT EDIT THIS FILE - edit the master and reinstall.
# ......
* * * * * echo "Hello, World!" >> /tmp/cron-test.txt

过几分钟后,会看到系统生成了文件 /tmp/cron-test.txt,其内容为:

Hello, World!
Hello, World!
Hello, World!
Hello, World!
Hello, World!
Hello, World!
Hello, World!
Hello, World!
......

5. 实例

我是个实用主义者,如果花时间去学习一样的东西,不是为了实际应用,我认为是不值得的,毕竟人的时间精力有限,也没有比时间更宝贵的东西了。

有时候,我们的服务器会因为某些意外原因而宕机(譬如停电),然后再也无法启动,此时如果数据硬盘损坏,就能造成损失。因为,我们公司的代码服务器上,通过 cron 设定了计划任务,用于定期将代码备份到远程的数据备份服务器上,避免这种意外带来的数据丢失。

6. cron 服务相关目录和文件

/etc/cron.d/
/var/spool/cron
/etc/cron.allow
/etc/cron.deny

/usr/sbin/cron -f

/etc/init.d/cron -- cron service {start, restart, stop} 脚本

/etc/crontab -- system-wide crontab

/etc/cron.d
/etc/cron.hourly
/etc/cron.daily
/etc/cron.weekly
/etc/cron.monthly

7. cron 的更多使用方法

man cron
man crontab
posted @ 2025-04-08 09:05  JiMoKuangXiangQu  阅读(22)  评论(0)    收藏  举报