Redhat crontab定时任务

Redhat crontab定时任务

  • 1.查看cornd服务状态
  • 2.查看当前用户定时任务
  • 3.查看其他用户定时任务方法1
  • 4.查看其他用户定时任务方法2
  • 5.查看系统级定时任务
  • 6.为当前用户新增定时任务
  • 7.为其他用户新增定时任务
  • 8.定时任务各字段含义
  • 9.定时任务安全规则设置

有时候,可能需要在操作系统执行一个定时任务,例如:日志文件压缩归档处理,定时调用某某服务,定时重启某某服务等等。Redhat操作系统自带的crond服务,就时用来实现定时任务的系统服务。

1.查看cornd服务状态

[root@iZj6cj20vqe3q7vt49zoxdZ ~]# systemctl status crond
● crond.service - Command Scheduler
   Loaded: loaded (/usr/lib/systemd/system/crond.service; enabled; vendor preset: enabled)
   Active: active (running) since Thu 2020-05-28 21:24:46 CST; 20min ago
 Main PID: 1273 (crond)
    Tasks: 1 (limit: 2862)
   Memory: 4.7M
   CGroup: /system.slice/crond.service
           └─1273 /usr/sbin/crond -n

May 28 21:42:01 iZj6cj20vqe3q7vt49zoxdZ crond[1273]: 2020-05-28 21:42:01 DMARC failure to load tld list '/usr/share/publicsuffix/public_suffix_list.dat': No such >
May 28 21:42:01 iZj6cj20vqe3q7vt49zoxdZ crond[1273]: 2020-05-28 21:42:01 1jeInJ-0000fQ-VN User 0 set for local_delivery transport is on the never_users list
May 28 21:43:01 iZj6cj20vqe3q7vt49zoxdZ crond[1273]: 2020-05-28 21:43:01 DMARC failure to load tld list '/usr/share/publicsuffix/public_suffix_list.dat': No such >
May 28 21:43:01 iZj6cj20vqe3q7vt49zoxdZ crond[1273]: 2020-05-28 21:43:01 1jeIoH-0000fe-5N User 0 set for local_delivery transport is on the never_users list
May 28 21:43:01 iZj6cj20vqe3q7vt49zoxdZ crond[1273]: 2020-05-28 21:43:01 DMARC failure to load tld list '/usr/share/publicsuffix/public_suffix_list.dat': No such >
May 28 21:43:01 iZj6cj20vqe3q7vt49zoxdZ crond[1273]: 2020-05-28 21:43:01 1jeIoH-0000fj-6Q User 0 set for local_delivery transport is on the never_users list
May 28 21:44:01 iZj6cj20vqe3q7vt49zoxdZ crond[1273]: 2020-05-28 21:44:01 DMARC failure to load tld list '/usr/share/publicsuffix/public_suffix_list.dat': No such >
May 28 21:44:01 iZj6cj20vqe3q7vt49zoxdZ crond[1273]: 2020-05-28 21:44:01 1jeIpF-0000fw-CQ User 0 set for local_delivery transport is on the never_users list
May 28 21:44:01 iZj6cj20vqe3q7vt49zoxdZ crond[1273]: 2020-05-28 21:44:01 DMARC failure to load tld list '/usr/share/publicsuffix/public_suffix_list.dat': No such >
May 28 21:44:01 iZj6cj20vqe3q7vt49zoxdZ crond[1273]: 2020-05-28 21:44:01 1jeIpF-0000g1-DW User 0 set for local_delivery transport is on the never_users list
lines 1-19/19 (END)

2.查看当前用户定时任务

[root@iZj6cj20vqe3q7vt49zoxdZ ~]# crontab -l
*/1 * * * * curl https://lhh.pub >> /apps/curl.log
*/1 * * * * uptime 2 3|awk '{print $12}' >> /apps/uptime.log
[root@iZj6cj20vqe3q7vt49zoxdZ ~]#

3.查看其他用户定时任务方法1

[root@iZj6cj20vqe3q7vt49zoxdZ ~]# crontab -u robin -l
no crontab for robin
[root@iZj6cj20vqe3q7vt49zoxdZ ~]#

使用crontab -u查看其他用户定时任务。

4.查看其他用户定时任务方法2

[root@iZj6cj20vqe3q7vt49zoxdZ ~]# cat /var/spool/cron/robin

*/1 * * * * curl https://lhh.pub >> /apps/curl.log
*/1 * * * * uptime 2 3|awk '{print $12}' >> /apps/uptime.log
[root@iZj6cj20vqe3q7vt49zoxdZ ~]#

通过查看配置文件的方式查看定时任务。

5.查看系统级定时任务


[root@iZj6cj20vqe3q7vt49zoxdZ ~]# cat /etc/crontab
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root

# For details see man 4 crontabs

# 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
# |  |  |  |  |
# *  *  *  *  * user-name  command to be executed

[root@iZj6cj20vqe3q7vt49zoxdZ ~]#

系统级的定时任务我们一般不人工干预,建议只新建用户级定时任务。

6.为当前用户新增定时任务

[root@iZj6cj20vqe3q7vt49zoxdZ ~]# crontab -e
*/1 * * * * curl https://lhh.pub >> /apps/curl.log
*/1 * * * * uptime 2 3|awk '{print $12}' >> /apps/uptime.log
* * * * *  curl https://www.lhh.pub >> /apps/curl.log
crontab: installing new crontab
[root@iZj6cj20vqe3q7vt49zoxdZ ~]#

执行crontab -e相当于编辑定时任务配置文件,新增一行定时任务设置后,就像保存文件一样即可。不加用户参数相当于只为当前用户新增定时任务。

7.为其他用户新增定时任务

[root@iZj6cj20vqe3q7vt49zoxdZ ~]# crontab -u robin -e
no crontab for robin - using an empty one
crontab: installing new crontab
[root@iZj6cj20vqe3q7vt49zoxdZ ~]# crontab -u robin -l
* * * * * uptime >> /apps/uptime2.log
[root@iZj6cj20vqe3q7vt49zoxdZ ~]# cat /var/spool/cron/robin
* * * * * uptime >> /apps/uptime2.log

robin是一个非root用户,新增后马上使用crontab -u robin -l查看配置内容。

8.定时任务各字段含义

第1列分钟0~59

第2列小时0~23(0表示子夜)

第3列日1~31

第4列月1~12

第5列星期0~7(0和7表示星期天)

第6列要运行的命令

介绍一个很好的定时任务规则验证工具,https://tool.lu/crontab/

9.定时任务安全规则设置

当系统中有 /etc/cron.allow 文件时,只有写入此文件的用户可以使用 crontab 命令,没有写入的用户不能使用 crontab 命令。同样,如果有此文件,/etc/cron.deny 文件会被忽略,因为 /etc/cron.allow 文件的优先级更高。
当系统中只有 /etc/cron.deny 文件时,写入此文件的用户不能使用 crontab 命令,没有写入文件的用户可以使用 crontab 命令。CentOS8,在默认情况下,系统只有这个/etc/cron.deny文件

[root@iZj6cj20vqe3q7vt49zoxdZ ~]# cat /etc/cron.deny
[root@iZj6cj20vqe3q7vt49zoxdZ ~]# cat /etc/cron.allow
cat: /etc/cron.allow: No such file or directory
[root@iZj6cj20vqe3q7vt49zoxdZ ~]#

你可能感兴趣的:(Linux)