Linux环境下定时执行任务详解

Linux 中的计划任务实际上非常简单。
它主要使用crontab工具和系统上预安装的目录。

1 .它在 crontab 中 这个东西是给用户自己的,不需要有人去监控它做周期性的事情。
如果要创建任务,请使用 crontab -e 命令进行编辑。
任务格式有六列,前五列是时间,第六列是命令。

例如,回显“Hello”>> /tmp/hello.log。
这意味着每分钟向日志添加一个“Hello”。
你看,第一列是分钟,第二列是小时,第三列是日期,第四列是月份,第五列是星期,第六列是团队。

如果您想查看任务的运行情况,请使用 crontab -l。
如果要删除它,请使用 crontab -r。
删除后,再查看一下,使用 crontab -l 看看是否真的被删除了。

2 是在系统目录下的 系统还为您创建了几个目录,其中包含一些自动执行的任务脚本。
如果你进入/etc目录,你会看到几个以cron开头的子目录。

与 cron.hourly 一样,此任务每小时运行一次。
cron.daily 是每天运行一次的任务。
cron.weekly,每周运行一次。
cron.monthly,每月运行一次。

如果您想添加自定义任务,只需将您编写的脚本文件放在相应的目录中即可。
例如,如果你想每天运行,则放入/etc/cron.daily/。
请记住,脚本必须具有执行权限,否则将无法运行。
使用 chmod +x script.sh 进行更改。

3 系统提供的任务示例 系统附带的任务通常包括一些维护任务。
与 tmpwatch 一样,它会清理临时文件。
它将扫描 /tmp 和 /var/tmp 目录并删除超过 1 0 天的文件。
Logrotate 表示日志轮转。
默认情况下,它每周更改一次。
总共每月更改四次,这意味着日志会保留一个月。
Logwatch 旨在分析日志、识别当天有问题的日志并向超级用户(root)发送电子邮件。

4 配置文件 /etc/crontab 文件是计划任务的系统级配置文件。
有SHELL、PATH等环境变量,邮件的默认收件人是root。
任务的格式也在这里确定。

5 需要注意什么 注意权限。
用户自己的任务会影响当前用户。
系统任务必须修改/etc/crontab或管理/etc/cron.d/目录。
如果任务未成功完成,请检查日志。
它们通常位于 /var/log/cron 或 /var/log/syslog 中。
如果你想查找与任务执行相关的内容,只需使用 grep CRON /var/log/syslog 即可查看。
最好在脚本中使用绝对路径或在/etc/crontab中设置全局PATH变量,以防止任务在不同环境中运行。

Linux 黑话解释:什么是定时任务 | Linux 中国

坦白讲,Linux cronjob是一个可以按时运行的小帮手。
它在 cron 进程和 crontab 文件的帮助下在幕后工作。

我们先来说说最重要的事情。
cron 进程就像一个微老板。
例如,我们去年运行的一个项目在凌晨 3 点自动备份作业,按时运行并且从不迟到。
另一点是 crontab 文件是一个待办事项列表。
它充满了以表格格式执行的时间规则和命令。
比如我之前测试的touch ~/crontab_test 每分钟都会在主目录中创建一个测试文件。
说实话,这很令人困惑。
第一次使用时很容易输入错误的路径。
还有一个非常重要的细节。
例如,使用 0 3 1 -5 可以在周一至周五的凌晨 3 点实施。
很多人不注意这一点。

一开始我以为~/script.sh会很好,但后来我发现这是一个错误。
我必须使用绝对路径 /home/user/script.sh,否则 cron 进程如果找不到该文件就会生气。

配置备份脚本时,使用~/backup_script将文档目录填充到备份文件中,然后使用03 ~/backup_script在每天凌晨3 点自动运行。
这个技巧在处理3 000级数据时特别有用。

等等,还有一件事。
脚本中经常出现环境变量的问题。
例如,如果路径设置不正确,则无法打开命令,因此最好在脚本开头添加export PATH=/your/path。

建议初学者使用CrontabGuru这个在线工具来学习如何编写时间表达式,这比阅读文档更好。