![]()
關於 crontab
查詢參數 -l, e.g., crontab -l
編輯參數 -e, e.g., crontab -e
crontab 執行是否成功可查詢 /var/adm/cron/log 檔案
(Linux 應該是 /var/log/cron 讀取須 root 權限)
● Crontab 遇到的一些問題
☆
$ crontab -l
crontab: The auditproc function failed with errno 1.
crontab: you are not authorized to use cron. Sorry.
解: 將
/usr/bin/crontab 由 -rwxrwxrwx 改成
-r-sr-sr-x 即可
☆
$ crontab -e 不能編輯
crontab: you are not authorized to use cron. Sorry.
原因: /var/adm/cron/
cron.allow 沒指定使用者
(cron.allow 是允許某些user能使用crontab,只有檔案內的user才可使用)
範例:
# cat cron.allow (只有 james & paul 可以使用 crontab)
james
paul
解: 將使用者加入cron.allow即可或移除cron.allow檔案,則都沒限制user使用)
☆
程式寫在 crontab 內無法執行 (查詢 /var/adm/cron/log Failed)
將程式改寫到 shell 內,有執行但也是 Failed
原因: 隱含因素─環境變數。在 shell 命令模式下的環境變數和 crontab 自動執行的環境變數是不一樣的,可在 shell 命令模式下 env > ~/env1.txt,另外在 crontab 要執行的 script 內也加入一行指令env > ~/env2.txt;之後比較其差異。
解: 將執行程式 shell script 並加入環境變數即可正常執行
範例: /home/james 目錄下 pgm.x 是維護 olacle DB 的一支程式,寫入 crontab 內無法執行
解: (將程式寫入 exe_pgm.sh shell script,crontab 執行 exe_pgm.sh 即可)
james@P630:/home/james>
cat exe_pgm.shexport PATH=/oracle/ora902/oracle/bin:/usr/bin:/etc:/usr/sbin:/home/james:/usr/bin/X11:.
#(加入 PATH)export ORACLE_HOME=/oracle/ora902/oracle
#(pgm.x 程式會有到 oracle 資料庫,加入此行即可)cd /home/james
./pgm.x
關鍵字:
crontab、
oracle