一、环境
1. CentOS 7.9
2. Crontab
Crontab是Linux下的一个执行定时任务的守护进程(daemon),它有一个文件里面维护着所有需要定时执行的任务条目。
二、安装
1. 安装
默认情况下CentOS7已经安装了Crontab:
rpm -qa | grep crontab
2. 服务
Crontab的服务名称是crond
(1) 状态
systemctl status crond
三、配置
1. 配置目录
(1) master
在/etc目录下,有4个/etc/cron.*目录,它们分别是:
目录 | 执行时间 |
/etc/cron.hourly | 每小时的第一分钟 |
/etc/cron.daily | 每天3:05 AM到10.55 PM之间 |
/etc/cron.weekly | 上次执行后第7天的3:25 AM到11:10 PM之间 |
/etc/cron.monthly | 上次执行后一个月的3:45 AM到11:30 PM之间 |
存放于上述4个目录中脚本将会分别按照上表中的执行时间执行。
(2) user
用户级别的配置文件位于/var/spool/cron/目录下。
2. crontab命令
Usage: crontab [options] file crontab [options] crontab -n [hostname] Options: -u [user] define user -e edit user's crontab or create one if it doesn’t already exist -l list user's crontab -r delete user's crontab -i prompt before deleting -n [host] set host in cluster to run users' crontabs -c get host in cluster to run users' crontabs -s selinux context -x [mask] enable debugging
3. crontab配置文件
(1) 使用crontab最简单的方式是运行:
sudo crontab -e
(2) 在打开的配置文件中编辑crontab条目,条目的语法为
{minute} {hour} {day of month} {month} {day of week} [user-name] [command to be executed]
(3) 前五个参数为定时任务执行的时间参数,它们的取值如下:
field allowed values ----- -------------- minute 0-59 hour 0-23 day of month 0-31 month 0-12 (or names, see below) day of week 0-7 (0 or 7 is Sun, or use names)
时间参数可以是*,*代表任意时间,比如
0 1 * * *
代表每天1点执行。
(4) 例子
# Example of job definition: .---------------- minute (0 - 59) | .------------- hour (0 - 23) | | .---------- day of month (1 - 31) | | | .------- month (1 - 12) OR jan,feb,mar,apr ... | | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat | | | | | 0 1 * * * [user-name] [command to be executed]
例1: 每天00:05分执行脚本
5 0 * * * /home/oracle/scan_asm_devices.sh
例2: 每月第一天的17:30分执行命令
30 17 1 * * mail -s "It's 5:30pm"
例3: 每周一的04:05分执行echo命令
5 4 * * mon echo "run at 5 after 4 every monday"
例4:每分钟执行脚本
* * * * * /home/scripts/test.php
4. 访问控制
Crontab有两个配置文件控制可以使用crontab的用户,它们分别是:
/etc/cron.allow 允许文件中的用户使用crontab;
/etc/cron.deny 禁止文件中的用户使用crontab;
默认情况下,仅有空的/etc/cron.deny文件存在,如果两个文件都不存在,则仅允许root用户使用crontab。
如果一个用户同时出现在/etc/cron.allow和/etc/cron.deny中,则/etc/cron.deny将会被忽略。
5. 日志
可以通过以下命令查看crontab的日志:
cat /var/log/cron tail -f /var/log/cron
四、参考
https://www.adminschoice.com/crontab-quick-reference
https://www.thegeekdiary.com/centos-rhel-begginners-guide-to-cron/
http://lampblogs.com/blog/how-to-schedule-cron-jobs-with-crontab-in-centos-7
https://linuxhint.com/a-beginners-guide-to-crontab-on-centos/
标签:CentOS,crontab,month,cron,etc,Crontab,定时,user From: https://www.cnblogs.com/eagle6688/p/17019244.html