Reference resources:
Mail usage (use mail to view the execution of scheduled tasks)
centos system forbids normal users to use crontab command
Regular user-defined crontab scheduled tasks:
For example, oracle user defines a timing task: print the current directory every minute
[oracle@node2 ~]$ crontab -e
*/1 * * * * /bin/ls -al > /tmp/ls.log
How to judge whether a scheduled task has been executed?
First, the crond service needs to be running
[oracle@node2 ~]$ service crond status Redirecting to /bin/systemctl status crond.service ● crond.service - Command Scheduler Loaded: loaded (/usr/lib/systemd/system/crond.service; enabled; vendor preset: enabled) Active: active (running) since Sun 2018-07-15 08:27:38 EDT; 2min 43s ago Main PID: 6189 (crond) CGroup: /system.slice/crond.service └─6189 /usr/sbin/crond -n [oracle@node2 ~]$
1. Use the mail command under the root user
[root@node2 ~]# mail Heirloom Mail version 12.5 7/5/10. Type ? for help. "/var/spool/mail/root": 801 messages 9 new 94 unread N795 (Cron Daemon) Sun Jul 15 08:25 35/932 "Cron <root@node2> /bin/ls" N796 (Cron Daemon) Sun Jul 15 08:26 35/932 "Cron <root@node2> /bin/ls" N797 (Cron Daemon) Sun Jul 15 08:27 35/932 "Cron <root@node2> /bin/ls" N798 (Cron Daemon) Sun Jul 15 08:28 35/932 "Cron <root@node2> /bin/ls" N799 (Cron Daemon) Sun Jul 15 08:29 35/932 "Cron <root@node2> /bin/ls" N800 (Cron Daemon) Sun Jul 15 08:30 35/932 "Cron <root@node2> /bin/ls" & file "/var/spool/mail/root": 801 messages 9 new 94 unread & h >N793 (Cron Daemon) Sun Jul 15 08:23 35/932 "Cron <root@node2> /bin/ls" N794 (Cron Daemon) Sun Jul 15 08:24 35/932 "Cron <root@node2> /bin/ls" N795 (Cron Daemon) Sun Jul 15 08:25 35/932 "Cron <root@node2> /bin/ls" N796 (Cron Daemon) Sun Jul 15 08:26 35/932 "Cron <root@node2> /bin/ls" N797 (Cron Daemon) Sun Jul 15 08:27 35/932 "Cron <root@node2> /bin/ls" N798 (Cron Daemon) Sun Jul 15 08:28 35/932 "Cron <root@node2> /bin/ls" N799 (Cron Daemon) Sun Jul 15 08:29 35/932 "Cron <root@node2> /bin/ls" N800 (Cron Daemon) Sun Jul 15 08:30 35/932 "Cron <root@node2> /bin/ls" &800 Message 800: From [email protected] Sun Jul 15 08:30:01 2018 Return-Path: <[email protected]> X-Original-To: root Delivered-To: [email protected] From: "(Cron Daemon)" <[email protected]> To: [email protected] Subject: Cron <root@node2> /bin/ls Content-Type: text/plain; charset=UTF-8 Auto-Submitted: auto-generated Precedence: bulk X-Cron-Env: <XDG_SESSION_ID=278> X-Cron-Env: <XDG_RUNTIME_DIR=/run/user/0> X-Cron-Env: <LANG=en_US.UTF-8> X-Cron-Env: <SHELL=/bin/sh> X-Cron-Env: <HOME=/root> X-Cron-Env: <PATH=/usr/bin:/bin> X-Cron-Env: <LOGNAME=root> X-Cron-Env: <USER=root> Date: Sun, 15 Jul 2018 08:30:01 -0400 (EDT) Status: R \ anaconda-ks.cfg Desktop Documents Downloads initial-setup-ks.cfg Music Pictures Public Templates Videos
In the mil interactive environment, the total number of current mails and other information are displayed through the file command
View recent messages through head
Enter a number to view the details of this message
2. View the log: tail -n 10 /var/log/cron
[root@node2 ~]# tail -n 10 /var/log/cron Jul 15 08:31:01 node2 CROND[6297]: (root) CMD (/bin/ls) Jul 15 08:31:01 node2 CROND[6298]: (oracle) CMD (/bin/ls -al > /tmp/ls.log ) Jul 15 08:32:01 node2 CROND[6321]: (oracle) CMD (/bin/ls -al > /tmp/ls.log ) Jul 15 08:32:01 node2 CROND[6322]: (root) CMD (/bin/ls) Jul 15 08:33:02 node2 CROND[6342]: (root) CMD (/bin/ls) Jul 15 08:33:02 node2 CROND[6343]: (oracle) CMD (/bin/ls -al > /tmp/ls.log ) Jul 15 08:34:01 node2 CROND[6362]: (root) CMD (/bin/ls) Jul 15 08:34:01 node2 CROND[6363]: (oracle) CMD (/bin/ls -al > /tmp/ls.log ) Jul 15 08:35:01 node2 CROND[6382]: (oracle) CMD (/bin/ls -al > /tmp/ls.log ) Jul 15 08:35:01 node2 CROND[6383]: (root) CMD (/bin/ls) [root@node2 ~]#
The log file records the scheduled task execution of all users
3. Use mail to view under ordinary users (users who perform scheduled tasks should be specified in the scheduled tasks, otherwise even the scheduled tasks defined under oracle users may not receive mail)
[oracle@node2 ~]$ crontab -l */1 * * * * oracle /bin/ls -al > /tmp/ls.log [oracle@node2 ~]$
[oracle@node2 ~]$ mail Heirloom Mail version 12.5 7/5/10. Type ? for help. "/var/spool/mail/oracle": 6 messages 1 unread 1 (Cron Daemon) Mon Mar 5 14:10 52/2476 "Cron <oracle@localhost> ls -al" 2 (Cron Daemon) Sun Jul 15 06:10 57/2777 "Cron <oracle@node2> /bin/ls -al" 3 (Cron Daemon) Sun Jul 15 06:11 57/2777 "Cron <oracle@node2> /bin/ls -al" 4 (Cron Daemon) Sun Jul 15 06:12 57/2778 "Cron <oracle@node2> /bin/ls -al" 5 (Cron Daemon) Sun Jul 15 06:13 57/2778 "Cron <oracle@node2> /bin/ls -al" >U 6 (Cron Daemon) Sun Jul 15 08:38 26/929 "Cron <oracle@node2> oracle /bin/ls -al > /tmp/ls.log" &
You cannot directly view the / var/log/cron file under normal users
[oracle@node2 ~]$ tail -n 10 /var/log/cron tail: cannot open '/var/log/cron' for reading: Permission denied You have new mail in /var/spool/mail/oracle [oracle@node2 ~]$
There is another way to write timing tasks in the / etc/crontab file, but if you write them in centos7 and execute them in the file, an error will be reported
[oracle@node2 ~]$ 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 [oracle@node2 ~]$