在Unix和類Unix的操做系統之中,crontab命令經常使用於設置週期性被執行的指令,也能夠理解爲設置定時任務。linux
crontab中的定時任務有時候沒有成功執行,什麼緣由呢?這時就須要去日誌裏去分析一下了,那該如何查看crontab的日誌記錄呢?shell
看 /var/log/cron.log這個文件就能夠,能夠用tail -f /var/log/cron.log觀察服務器
在 /var/spool/cron/tmp文件中,有croutXXX001864的tmp文件,tail 這些文件就能夠看到正在執行的任務了。oracle
在 /var/spool/mail/root 文件中,有crontab執行日誌的記錄,用tail -f /var/spool/mail/root 便可查看最近的crontab執行狀況。less
有朋友問到關於linux的crontab不知道是否到底執行了沒有,也算寫過一些基本備份的shell腳本,結合本身的實際生產環境簡單講述下如何經過cron執行的日誌來分析crontab是否正確執行。
例如服務器下oracle用戶有以下的計劃任務
[oracle@localhost6 ~]$ crontab -l
00 1 * * 0 /home/oracle/backup/hollyipcc.sh
00 1 1 * * /home/oracle/backup/hollyreport_hollycrm.sh
關於系統的計劃任務都會先在/var/log
[root@localhost ~]# cd /var/log/
[root@localhost log]# less cron
Sep 22 04:22:01 localhost crond[32556]: (root) CMD (run-parts /etc/cron.weekly)
Sep 22 04:22:01 localhost anacron[32560]: Updated timestamp for job `cron.weekly' to 2013-09-22
Sep 22 05:01:01 localhost crond[22768]: (root) CMD (run-parts /etc/cron.hourly)
Sep 22 06:01:01 localhost crond[25522]: (root) CMD (run-parts /etc/cron.hourly)
Sep 22 07:01:01 localhost crond[28255]: (root) CMD (run-parts /etc/cron.hourly)
Sep 22 08:01:01 localhost crond[30982]: (root) CMD (run-parts /etc/cron.hourly)
。。。
上面的/var/log/cron只會記錄是否執行了某些計劃的腳本,可是具體執行是否正確以及腳本執行過程當中的一些信息則linux會每次都發郵件到該用戶下。
如上述oracle的計劃任務執行信息,linux會發郵件到/var/spool/mail下面
[root@localhost6 log]# cd /var/spool/mail/
[root@localhost6 mail]# less oracle
Date: Sun, 25 Aug 2013 01:00:01 +0800
Message-Id: <201308241700.r7OH01aG016679@localhost6.localdomain6>
From: root@localhost6.localdomain6 (Cron Daemon)
To: oracle@localhost6.localdomain6
Subject: Cron /home/oracle/backup/hollyipcc.sh
Content-Type: text/plain; charset=UTF-8
Auto-Submitted: auto-generated
X-Cron-Env:
X-Cron-Env:
X-Cron-Env:
X-Cron-Env:
X-Cron-Env:
backup hollyipcc
Export: Release 10.2.0.4.0 - Production on Sunday, 25 August, 2013 1:00:02
Copyright (c) 2003, 2007, Oracle. All rights reserved.
Connected to: Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
Starting "SYSTEM"."SYS_EXPORT_SCHEMA_01": system/******** dumpfile=hollyipcc_20130825.dmp logfile=hollyipcc_20130825.log directory
=back schemas=hollyipcc parfile=/home/oracle/backup/parfile.par
Estimate in progress using BLOCKS method...
Processing object type SCHEMA_EXPORT/TABLE/TABLE_DATA
Total estimation using BLOCKS method: 5.932 GB
Processing object type SCHEMA_EXPORT/TABLE/TABLE
Processing object type SCHEMA_EXPORT/TABLE/GRANT/OWNER_GRANT/OBJECT_GRANT
Processing object type SCHEMA_EXPORT/TABLE/INDEX/INDEX
Processing object type SCHEMA_EXPORT/TABLE/CONSTRAINT/CONSTRAINT
Processing object type SCHEMA_EXPORT/TABLE/INDEX/STATISTICS/INDEX_STATISTICS
Processing object type SCHEMA_EXPORT/TABLE/STATISTICS/TABLE_STATISTICS
. . exported "HOLLYIPCC"."BASE_CONTACTSTATE_BAK":"P201203" 1.389 GB 15716014 rows
此時咱們就能很好的判斷crontab腳本是否執行,已經執行過程當中是否正確以及一些錯誤的信息,但願這個能夠幫助有些朋友很好的瞭解crontab的原理和診斷crontab的問題。
dom