在Linux开发之中,有一些常用的功能可能都会用shell来开发,同时,这些脚本可能需要在一定时间内重复执行,这些就需要用到
linux 的 crontab 定时任务了。
首先是检查你的电脑是否安装了crontab这个工具(注意,这个是一个工具来的哦)
输入命令 crontabl -l 是查看定时任务列表
service crond status 是查看工具是否正在运行,而我的电脑是装了的,所以会返回
如果你的电脑没有装的话,那么你就需要先安装一下了,具体命令是
yum install vixie-cron
yum install crontabs
注意需要能连接外网
service crontab start(启动)
service crontab stop(停止)
service crontab restart(重启)
一般都是启动的,就像我上面那样
重要文件,保证执行的信息的文件一般在
/var/log/cron 这个文件中
配置文件及介绍文件在 /etc/crontab 这个文件中
然后是通过命令来创建一个定时任务
crontab -e
打开定时任务的文件然后输入
#每隔一分钟就把当前时间写入到 /tmp/log.txt 文件中
*/1 * * * * date >> /tmp/log.txt
然后保证文件,然后再用命令查看 tail -f /tmp/log.txt
发现每隔一分钟就会写入当前时间到文件中(当然必须保证crontab是启动中的)
其实在打入命令 crontab -e 实际上编辑的文件就是在 var/spool/cron/root 下面的文件 root代表用户名
ll /etc/cron.d 这里面还有一些默认会加载的定时执行任务,一般就不要去改了吧,还是用我们原始的方法改吧
都是 crond 服务提交的,删除就是输入刚刚的命令 crontab -e 把你的文件删除即可
crontab 表达式 * * * * *
总共有5个位置,分别表示
分钟 -- 取值 (0-59)
小时 -- 取值(0-23)
日期 -- 取值 (1-31)
月份 -- 取值 (1-12)
星期 --取值 (0-7) 0或7表示星期天
一些案例
1-59/2 * * * * 这个比较好玩,代表的意思是从每个小时的第一分钟起,每隔两分钟执行一遍,也就是 1, 3, 5。。分钟
而上面的
*/2 * * * * 表示从0分钟起,每隔2分钟执行一遍 0,2, 4 。。。。分钟
因为*是所有取值的意思,而分钟的取值就是 0-59
恩,暂时只更新这些,多谢大家