千家信息网

linux中普通用户的定时任务详解

发表于:2025-01-24 作者:千家信息网编辑
千家信息网最后更新 2025年01月24日,前言普通用户定义crontab定时任务:比如oracle用户定义一个定时任务:每分钟打印当前目录[oracle@node2 ~]$ crontab -e*/1 * * * * /bin/ls -al
千家信息网最后更新 2025年01月24日linux中普通用户的定时任务详解

前言

普通用户定义crontab定时任务:比如oracle用户定义一个定时任务:每分钟打印当前目录

[oracle@node2 ~]$ crontab -e

*/1 * * * * /bin/ls -al > /tmp/ls.log

如何判断定时任务有没有执行?首先crond服务要处于运行状态

[oracle@node2 ~]$ service crond statusRedirecting to /bin/systemctl status crond.service● crond.service - Command SchedulerLoaded: 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 agoMain PID: 6189 (crond)CGroup: /system.slice/crond.service└─6189 /usr/sbin/crond -n[oracle@node2 ~]$

1.在root用户下使用mail命令

[root@node2 ~]# mailHeirloom Mail version 12.5 7/5/10. Type ? for help."/var/spool/mail/root": 801 messages 9 new 94 unreadN795 (Cron Daemon) Sun Jul 15 08:25 35/932 "Cron  /bin/ls"N796 (Cron Daemon) Sun Jul 15 08:26 35/932 "Cron  /bin/ls"N797 (Cron Daemon) Sun Jul 15 08:27 35/932 "Cron  /bin/ls"N798 (Cron Daemon) Sun Jul 15 08:28 35/932 "Cron  /bin/ls"N799 (Cron Daemon) Sun Jul 15 08:29 35/932 "Cron  /bin/ls"N800 (Cron Daemon) Sun Jul 15 08:30 35/932 "Cron  /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  /bin/ls"N794 (Cron Daemon) Sun Jul 15 08:24 35/932 "Cron  /bin/ls"N795 (Cron Daemon) Sun Jul 15 08:25 35/932 "Cron  /bin/ls"N796 (Cron Daemon) Sun Jul 15 08:26 35/932 "Cron  /bin/ls"N797 (Cron Daemon) Sun Jul 15 08:27 35/932 "Cron  /bin/ls"N798 (Cron Daemon) Sun Jul 15 08:28 35/932 "Cron  /bin/ls"N799 (Cron Daemon) Sun Jul 15 08:29 35/932 "Cron  /bin/ls"N800 (Cron Daemon) Sun Jul 15 08:30 35/932 "Cron  /bin/ls"&800Message 800:From root@node2.matengbing.com Sun Jul 15 08:30:01 2018Return-Path: X-Original-To: rootDelivered-To: root@node2.matengbing.comFrom: "(Cron Daemon)" To: root@node2.matengbing.comSubject: Cron  /bin/lsContent-Type: text/plain; charset=UTF-8Auto-Submitted: auto-generatedPrecedence: bulkX-Cron-Env: X-Cron-Env: X-Cron-Env: X-Cron-Env: X-Cron-Env: X-Cron-Env: X-Cron-Env: X-Cron-Env: Date: Sun, 15 Jul 2018 08:30:01 -0400 (EDT)Status: R\anaconda-ks.cfgDesktopDocumentsDownloadsinitial-setup-ks.cfgMusicPicturesPublicTemplatesVideos

在mial交互环境下,通过file命令显示当前邮件总数等信息通过head查看最近的邮件输入编号查看该邮件的详细信息

2.查看日志:tail -n 10 /var/log/cron

[root@node2 ~]# tail -n 10 /var/log/cronJul 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 ~]#

日志文件中记录了所有用户的定时任务执行情况

3.在普通用户下使用mail查看

(定时任务中要明确执行定时任务的用户,否则即使在oracle用户下定义的定时任务可能不能收到邮件)

[oracle@node2 ~]$ crontab -l*/1 * * * * oracle /bin/ls -al > /tmp/ls.log[oracle@node2 ~]$[oracle@node2 ~]$ mailHeirloom Mail version 12.5 7/5/10. Type ? for help."/var/spool/mail/oracle": 6 messages 1 unread1 (Cron Daemon) Mon Mar 5 14:10 52/2476 "Cron  ls -al"2 (Cron Daemon) Sun Jul 15 06:10 57/2777 "Cron  /bin/ls -al"3 (Cron Daemon) Sun Jul 15 06:11 57/2777 "Cron  /bin/ls -al"4 (Cron Daemon) Sun Jul 15 06:12 57/2778 "Cron  /bin/ls -al"5 (Cron Daemon) Sun Jul 15 06:13 57/2778 "Cron  /bin/ls -al">U 6 (Cron Daemon) Sun Jul 15 08:38 26/929 "Cron  oracle /bin/ls -al > /tmp/ls.log"&

在普通用户下不能直接查看/var/log/cron文件

[oracle@node2 ~]$ tail -n 10 /var/log/crontail: cannot open '/var/log/cron' for reading: Permission deniedYou have new mail in /var/spool/mail/oracle[oracle@node2 ~]$

定时任务还有一种写在/etc/crontab文件中的方式,但是在centos7中写在该文件中执行会报错

[oracle@node2 ~]$ cat /etc/crontabSHELL=/bin/bashPATH=/sbin:/bin:/usr/sbin:/usr/binMAILTO=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 ~]$

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对的支持。

0