什么是crontab?介绍引用自百度百科。
crontab命令常见于Unix和类Unix的操作系统之中,用于设置周期性被执行的指令。该命令从标准输入设备读取指令,并将其存放于“crontab”文件中,以供之后读取和执行。该词来源于希腊语 chronos(χρνο),原意是时间。通常,crontab储存的指令被守护进程激活, crond常常在后台运行,每一分钟检查是否有预定的作业需要执行。这类作业一般称为cron jobs。
crontab可以用来实现linux下的定时任务,这里记录crontab在ubuntu上的配置使用以及简单测试。
1.开启日志服务器rsyslog对crontab的支持
打开终端,输入:
cd /etc/rsyslog.d/
ls
列出了两个文件:
20-ufw.conf 50-default.conf
我们要对50-default.conf
这个文件进行修改:
vim 50-default.conf
在vim中找到 cron.* 所在行,取消该行的注释,如下第10行:
# Default rules for rsyslog.
#
# For more information see rsyslog.conf(5) and /etc/rsyslog.conf
#
# First some standard log files. Log by facility.
#
auth,authpriv.* /var/log/auth.log
*.*;auth,authpriv.none -/var/log/syslog
cron.* /var/log/cron.log
#daemon.* -/var/log/daemon.log
kern.* -/var/log/kern.log
#lpr.* -/var/log/lpr.log
mail.* -/var/log/mail.log
#user.* -/var/log/user.log
2.杀掉cron进程,再重启cron服务
先查看进程id:
rm /var/run/crond.pid
ps -A | grep cron
杀掉对应id:
kill 进程ID
重启cron服务:
cron restart
3.简单测试
做一个简单的测试,在终端中输入:
crontab -e
可以对cron任务进行编辑,我们添加一个简单的任务,在文件末尾加上如下内容:
*/2 * * * * date >> ~/time.log
然后保存,退出。
这个任务将每两分钟向~/time.log
文件中输入一次当前时间。观察该任务是否正常执行,借以判断当前crontab是否可用。