记ubuntu下三种修改crontab定时任务的方式及其坑点
这几天在折腾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
文件的内容来用,因为其不是标准格式,其包含用户名(这是坑点)
本文地址:https://blog.csdn.net/weixin_44176696/article/details/107337723