bash - Crontab 中自动执行后没有生效
过去多啦不再A梦
过去多啦不再A梦 2017-04-24 15:59:00
0
5
855

使用crontab 添加一个定时任务

* * * * /bin/bash -l -c ' ~/.script.sh'

这个脚本的作用是统计一些数据并生成报表文件.

这个脚本每分钟执行一次,但是实际操作中crontab并没有像预期的那样生成报表文件.

然而当我手动执行这个命令时 "~/.script.sh" 生成文件并退出.

有两个疑问:

1: 为什么crontab 没有执行我的脚本. 查看了crontab 日志(/var/log/crond)输出: May 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 が有効にならない最も一般的な理由は次のとおりです。 スクリプト内のコマンドでは絶対パスを使用しません。

いいねを押す +0
習慣沉默

先頭に ~对不同的用户会解释成不同的$HOME.
一般是在script.sh が追加されているため、絶対パスを使用してみてください。 リーリー

いいねを押す +0
PHPzhong

sudo crontab -e を使用して crontab コマンドを作成した場合、実行ユーザーは root となり、ここの ~ も /root として解析されます。 sudo を使用していない場合は、それで問題ありません。

いいねを押す +0
左手右手慢动作

リーリー

いいねを押す +0
Ty80

ファイル権限の問題でしょうか?

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート