Linux任务管理工具之 Crontab(2)

默认使用 vi 编辑器,如果想要使用 vim 编辑器或者其他编辑器,可以新建环境变量 EDITOR,变量值为你想要使用的编辑器的指令,例如我想要使用 nano 作为编辑器,就可以执行命令 “export EDITOR=nano” 来添加一个环境变量。
如果想要让环境变量永久生效,可以将要执行的命令写入到 “~/.bashrc”中,这样下次启动的时候就会自动配置。

如果想要删除 crontab 文件可以使用 crontab -r 来删除当前用户的 crontab 文件

想要快速查看 crontab 文件可以使用命令 crontab -l

备份 crontab 文件

为了防止文件被意外删除 , 我们可以在建立好了 crontab 任务之后备份一下相关的配置文件,笔者的思路是在复制一次当期的文档并在后面加上 “.backup” 来示意是备份文件,通常只需要执行以下命令(以 root 用户为例)

cp /var/spool/cron/root /var/spool/cron/root.bachup

如果当前用户没有权限的话,可以先将自己的配置文件复制到自己的 HOME 目录下也是可以的

一些简单的示例

每个月的 1 号的 2:30 分重启 Apache 服务

30 2 1 * * systemctl restart httpd

每个星期的星期一的早上1点重启 mariadb

0 1 * * 1 systemctl restart mariadb

更多的示例可以通过搜索轻松得找到,这里就不多说了

注意事项

通常来说,我们建立的 crontab 任务都是保存了之后立即执行的,但是有的时候却无法执行,将命令单独拿出来却可以使用,这个时候就需要检查一下 crontab 文件的环境变量是否正常。cron 不是 shell,在执行的时候是不知道环境变量的,所以在脚本或者说是配置文件中提供必要的环境变量文件以及路径,主要注意以下几点

配置文件中一点涉及路径时,使用绝对路径

任务执行需要用到 Python 或者 Java 又或者其他环境变量的时候,需要通过 source 命令引入环境变量

在某些情况下,手动执行脚本可以使用,但是放在 Crontab 中就无法执行,就很有可能是由于环境变量引起的故障,可以通过在 crontab 中直接引入环境变量。

其他事项

很奇怪的是在我查阅了很多的资料,发现都说在 crontab 的任务执行完毕之后会向当前系统用户发送一封邮件,但是我的 crontab 在进行了2天的任务都没有接收到任何邮件

crontab 的文件刚刚写入不一定会立即执行,执行的延迟大概在2分钟左右,如果重启 crond 服务则立即执行

据说在 crontab 中 % 是有特殊含义的,表示换行的意思。但是在笔者的验证中没有发现这一现象

如果只运行 crontab -r 有可能删除 crontab 目录下的所有用户的 crontab

Linux中利用crontab创建计划任务

Linux中用crontab例行工作安排

Linux crontab不执行问题排查

Ubuntu使用crontab定时任务

Linux计划任务(at batch crontab anacron)

Linux任务计划 (at,crontab)

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/15098.html