使用crontab 新增一個定時任務
* * * * /bin/bash -l -c ' ~/.script.sh'
這個腳本的作用是統計一些資料並產生報表檔.
這個腳本每分鐘執行一次,但是實際操作中crontab並沒有像預期的那樣產生報表檔.
然而當我手動執行這個命令時 "~/.script.sh" 生成檔並退出.
有兩個疑問:
1: 為什麼crontab 沒有執行我的腳本. 查看了crontab 日誌(/var/log/crond)輸出: 美 5 20:36:01 localhost CROND[27260]: (ernest) CMD (/bin/bash -l -c '~/script.sh') 沒有發現任何異常.
2: 會不會是我執行腳本的環境 不一樣呢? 測試了一下 "* * * * * /bin/bash -l -c 'source ~/.bash_profile && ~/.script.sh'" 也不行.
各位大牛們有沒有遇到跟我一樣的問題呢?
習慣沉默2017-04-24 16:01:00
用絕對路徑試試.因為~
对不同的用户会解释成不同的$HOME
.
一般是在script.sh
裡面最開始的地方加上
cd /home/username
. .profile
PHPz2017-04-24 16:01:00
如果你是 sudo crontab -e 建立的crontab指令,那麼執行的使用者是root, 這裡的~也會被解析為/root 如果你沒有用sudo,那應該沒問題。