linux中普通用户的定时任务详解
前言
普通用户定义crontab定时任务:比如oracle用户定义一个定时任务:每分钟打印当前目录
[oracle@node2~]$crontab-e
*/1****/bin/ls-al>/tmp/ls.log
如何判断定时任务有没有执行?首先crond服务要处于运行状态
[oracle@node2~]$servicecrondstatus Redirectingto/bin/systemctlstatuscrond.service ●crond.service-CommandScheduler Loaded:loaded(/usr/lib/systemd/system/crond.service;enabled;vendorpreset:enabled) Active:active(running)sinceSun2018-07-1508:27:38EDT;2min43sago MainPID:6189(crond) CGroup:/system.slice/crond.service └─6189/usr/sbin/crond-n [oracle@node2~]$
1.在root用户下使用mail命令
[root@node2~]#mail HeirloomMailversion12.57/5/10.Type?forhelp. "/var/spool/mail/root":801messages9new94unread N795(CronDaemon)SunJul1508:2535/932"Cron/bin/ls" N796(CronDaemon)SunJul1508:2635/932"Cron /bin/ls" N797(CronDaemon)SunJul1508:2735/932"Cron /bin/ls" N798(CronDaemon)SunJul1508:2835/932"Cron /bin/ls" N799(CronDaemon)SunJul1508:2935/932"Cron /bin/ls" N800(CronDaemon)SunJul1508:3035/932"Cron /bin/ls" &file "/var/spool/mail/root":801messages9new94unread &h >N793(CronDaemon)SunJul1508:2335/932"Cron /bin/ls" N794(CronDaemon)SunJul1508:2435/932"Cron /bin/ls" N795(CronDaemon)SunJul1508:2535/932"Cron /bin/ls" N796(CronDaemon)SunJul1508:2635/932"Cron /bin/ls" N797(CronDaemon)SunJul1508:2735/932"Cron /bin/ls" N798(CronDaemon)SunJul1508:2835/932"Cron /bin/ls" N799(CronDaemon)SunJul1508:2935/932"Cron /bin/ls" N800(CronDaemon)SunJul1508:3035/932"Cron /bin/ls" &800 Message800: Fromroot@node2.matengbing.comSunJul1508:30:012018 Return-Path: X-Original-To:root Delivered-To:root@node2.matengbing.com From:"(CronDaemon)" To:root@node2.matengbing.com Subject:Cron /bin/ls Content-Type:text/plain;charset=UTF-8 Auto-Submitted:auto-generated Precedence:bulk X-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,15Jul201808:30:01-0400(EDT) Status:R \ anaconda-ks.cfg Desktop Documents Downloads initial-setup-ks.cfg Music Pictures Public Templates Videos
在mial交互环境下,通过file命令显示当前邮件总数等信息通过head查看最近的邮件输入编号查看该邮件的详细信息
2.查看日志:tail-n10/var/log/cron
[root@node2~]#tail-n10/var/log/cron Jul1508:31:01node2CROND[6297]:(root)CMD(/bin/ls) Jul1508:31:01node2CROND[6298]:(oracle)CMD(/bin/ls-al>/tmp/ls.log) Jul1508:32:01node2CROND[6321]:(oracle)CMD(/bin/ls-al>/tmp/ls.log) Jul1508:32:01node2CROND[6322]:(root)CMD(/bin/ls) Jul1508:33:02node2CROND[6342]:(root)CMD(/bin/ls) Jul1508:33:02node2CROND[6343]:(oracle)CMD(/bin/ls-al>/tmp/ls.log) Jul1508:34:01node2CROND[6362]:(root)CMD(/bin/ls) Jul1508:34:01node2CROND[6363]:(oracle)CMD(/bin/ls-al>/tmp/ls.log) Jul1508:35:01node2CROND[6382]:(oracle)CMD(/bin/ls-al>/tmp/ls.log) Jul1508:35:01node2CROND[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~]$mail HeirloomMailversion12.57/5/10.Type?forhelp. "/var/spool/mail/oracle":6messages1unread 1(CronDaemon)MonMar514:1052/2476"Cronls-al" 2(CronDaemon)SunJul1506:1057/2777"Cron /bin/ls-al" 3(CronDaemon)SunJul1506:1157/2777"Cron /bin/ls-al" 4(CronDaemon)SunJul1506:1257/2778"Cron /bin/ls-al" 5(CronDaemon)SunJul1506:1357/2778"Cron /bin/ls-al" >U6(CronDaemon)SunJul1508:3826/929"Cron oracle/bin/ls-al>/tmp/ls.log" &
在普通用户下不能直接查看/var/log/cron文件
[oracle@node2~]$tail-n10/var/log/cron tail:cannotopen‘/var/log/cron'forreading:Permissiondenied Youhavenewmailin/var/spool/mail/oracle [oracle@node2~]$
定时任务还有一种写在/etc/crontab文件中的方式,但是在centos7中写在该文件中执行会报错
[oracle@node2~]$cat/etc/crontab SHELL=/bin/bash PATH=/sbin:/bin:/usr/sbin:/usr/bin MAILTO=root #Fordetailsseeman4crontabs #Exampleofjobdefinition: #.----------------minute(0-59) #|.-------------hour(0-23) #||.----------dayofmonth(1-31) #|||.-------month(1-12)ORjan,feb,mar,apr... #||||.----dayofweek(0-6)(Sunday=0or7)ORsun,mon,tue,wed,thu,fri,sat #||||| #*****user-namecommandtobeexecuted [oracle@node2~]$
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对毛票票的支持。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。