用户登录
用户注册

分享至

记ubuntu下三种修改crontab定时任务的方式及其坑点

  • 作者: 枫叶绕城
  • 来源: 51数据库
  • 2022-05-07

这几天在折腾Ubuntu的时间定时任务,使用crontab这个软件可以轻易实现定时任务,上一次也讲到【python每小时爬取自己博客信息并且更新到个人网页】也是用crontab来执行定时任务的。

crontab有几种不同的方式实现定时任务,但是其中有坑,经过反复查资料,总结一下遇到的坑。

最原始的修改方式(不推荐)

通过修改以下的文件来达到修改定时任务的方式。

etc/crontab

我们也可以用cat ../../etc/crontab查看这个文件,发现里面有如下格式的命令

分钟 小时 日 月 星期 用户 命令


直接添加条目必然能够达到修改定时命令的效果,但是这么做不好,而且分钟 小时 日 月 星期 用户 命令不是标准的crontab命令格式,这使得这些命令不能被移植,而且在大批量处理的时候,也会出现问题。

crontab命令执行目录

命令的默认目录是在用户的根目录,通过

cd ~ && pwd

可以查看根目录,像我装的ubuntu,根目录就是/home/ubuntu,所以写命令的时候要注意路径的转换

crontab标准命令格式

分钟 小时 日 月 星期 命令

注意:不用声明用户,这和修改crontab文件(即上述修改方法1)时的配置方法不一样,不需要加上用户。

这里就是比较坑的点,因为直接复制crontab文件里面的命令,是行不通的,因为其带上了用户,而实际上,标准的命令格式里面根本就不用声明执行命令的用户。

crontab -e 编辑定时任务

通过命令crontab -e可以编辑定时任务

这里我们选择nano编辑器,我们添加一条任务,每分钟执行一次,就是定时给test.txt输出当前路径

ctrl+o保存,crtl+x退出。

通过crontab -l可以查看当前任务,然后我们查看test.txt中的内容,可以看到每分钟都被写入一次

crontab -u 导入定时任务

通过命令

crontab -u 文件名

可以快速从指定文件导入定时任务,注意定时任务必须是标准格式的。这意味着我们不能直接copy etc/crontab 文件的内容来用,因为其不是标准格式,其包含用户名(这是坑点)

软件
前端设计
程序设计
Java相关