Linux添加cron任务
linux cron服务只支持到分钟级别,要想实现秒级的定时任务,需要结合其他脚本实现
查看服务状态
注:第一次使用crond网上有人说需要安装crond服务!可以通过命令 rpm -qa|grep cron 查看是否安装了该服务!
1. 查看cron的状态,设为开机启动
$ systemctl status crond (查看状态)
$ systemctl enable crond (设为开机启动)
$ systemctl start crond (启动crond服务)
编辑任务
crontab -u 用户名 -e (编辑用户的定时任务,指定的执行的用户,默认为当前执行命令的用户)
crontab -e 默认使用当前用户
编辑完成以后,会在/var/spool/cron下生成用户名的文件,里面保存了配置的定时任务
编辑保存的命令同vim
保存以后即生效,无需重启crond服务
除了这样编辑外,还可以直接写到crond的主配置文件内,默认执行者为root。
vim /etc/crontab (直接在最下面添加你的任务命令即可)
时间格式
------------------------# crontab基本格式
# +---------------- minute 分钟(0 - 59)
# | +------------- hour 小时(0 - 23)
# | | +---------- day 日期(1 - 31)
# | | | +------- month 月份(1 - 12)
# | | | | +---- week 星期(0 - 7) (星期天=0 or 7)
# | | | | |
# * * * * * 要运行的命令
[分] [时] [日] [月] [周] [需要执行的命令]
*/30 * * * * /usr/local/mycommand (每天,每30分钟执行一次 mycommand命令)
常用命令
crontab -l #查看当前用户的定时任务
crontab -r #删除用户的定时任务
#查看定时任务执行日志
cat /var/log/cron
如何实现秒级执行
1.每十秒执行一次
crontab -e中输入以下内容:
* * * * * cd echo "hello"`date +%H:%M:%S` >> /home/test.log
* * * * * sleep 10; echo "hello"`date +%H:%M:%S` >> /home/test.log
* * * * * sleep 20; echo "hello"`date +%H:%M:%S` >> /home/test.log
* * * * * sleep 30; echo "hello"`date +%H:%M:%S` >> /home/test.log
* * * * * sleep 40; echo "hello"`date +%H:%M:%S` >> /home/test.log
* * * * * sleep 50; echo "hello"`date +%H:%M:%S` >> /home/test.log
2.每秒执行一次
crontab -e中执行该脚本
* * * * * /home/lecent.sh
或者
* * * * * sh && /home/lecent.sh
#lecent.sh如下:
#!/bin/bash
step=1 #间隔的秒数,不能大于60
for (( i = 0; i < 60; i=(i+step) )); do
echo "hello"`date +%H:%M:%S` >> /home/test.log
sleep $step
done
exit 0