crontab 用法
最近有点懒,好多东西用到了以为能记住,就没写下来。再用到发现又想不起来了。
crontab是用来定期执行程序的命令
##命令用法
crontab [ -u user ] file
其实这个相当于你把本应该写在 /var/spool/cron/[user] 里面的任务,单独写在一个file里面,然后,运行这个命令会吧文件里面的东西添加进去。等于直接编辑 /var/spool/cron/[user]这个文件。
当然,更简单的方法,crontab -e 将会编辑当前用户的计划任务。
##文件的写法
可参考 /etc/crontab
1 | # /etc/crontab: system-wide crontab |
由上面的说明我们可以看出来,计划任务的常规写法是
1 |
|
###进阶写法
1 | @reboot Run once, at startup. |
示例
1 | 0 1-12/2 * * * /usr/bin/backup #每天的0点 2点 4点 6点 8点 10点 12点进行运行一次 /usr/bin/backup |
##说明
*/n 时表示每 n 个对应单位时间间隔执行一次,
a-b 时表示a-b对应单位时间内都要执行,
##特别注意
crontab 和写 service 文件时一样
很多时候环境变量并未加载,所以可能无法识别一些命令,所以需要自己用 export 导入环境变量,文件路径也需要全部使用绝对路径.。
例如,你在需要启动一个java项目的时候,很可能就不存在jre或jdk的路径的环境变量,所以此时,在运行java项目之前,你需要
1 | export JAVA_HOME=/opt/jdk_path |
然后再运行JAVA项目
##其他说明
在任务执行之后,系统会给用户发送电子邮件,通知你任务已经执行。如果你不想收到这样的邮件(我猜你并不想频繁收到邮件通知)可在命令后添加 > /dev/null 2>&1 将输出重定向就好了。
如果你的命令或脚本有输出并且你想吧输出记录到文件,那么可以这样写
1 | 0 5 * * * /bin/ls >> /root/ls.log 2>&1 |
所有输出都会被记录在 /root/ls.log 文件里面
##完
好了,自动任务就配置好了。
唉,吆去学校了,好紧张。最近做这个花了太多时间。没有准备数学考试
Author: 哒琳
Permalink: http://blog.jieis.cn/2020/82b10887-bcba-4689-8bb8-35a7180a4df9.html
Comments