bash - Crontab 中自動執行後沒有生效
过去多啦不再A梦
过去多啦不再A梦 2017-04-24 15:59:00
0
5
820

使用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'" 也不行.

各位大牛們有沒有遇到跟我一樣的問題呢?

过去多啦不再A梦
过去多啦不再A梦

全部回覆(5)
过去多啦不再A梦

手動運行腳本生效,crontab不生效最最最最最最最最最最常見的原因是: 你在腳本裡面的指令沒有使用絕對路徑。

習慣沉默

用絕對路徑試試.因為~对不同的用户会解释成不同的$HOME.
一般是在script.sh裡面最開始的地方加上

cd /home/username
. .profile
PHPzhong

如果你是 sudo crontab -e 建立的crontab指令,那麼執行的使用者是root, 這裡的~也會被解析為/root 如果你沒有用sudo,那應該沒問題。

左手右手慢动作

雷雷

Ty80

有可能是檔案權限問題?

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!