質問: 20;" ``` 端末で、下記のように入力したら、ちゃんとUpdateがなされる。 コマンドライン # '/home/user/document/mysql_everyday.sh' しかし、cronとして動作させると、Updateがうまく動作していない。 cron.confファイルの中身 5 0 * * * '/home/user/document/mysql_everyday.sh' (その他定期的に動作させるshファイルもここに並んでおり、それらは正常に動いています) 端末にシェルファイル名を入力し、Enterを押せば、うまく動くのにCronにするとうまく動かない理由はあるのでしょうか? **すべてのshファイルがcronで動くわけではないのでしょうか?** 一つ、気がかりなのは端末にシェルファイル名を入力する場合は、下記のようなWarningが出ます。 mysql: [Warning] Using a password on the command line interface can be insecure. /home/user/document/mysql_everyday.sh: 行 4: /root: ディレクトリです どなたか詳しい方がおられましたら、ご回答よろしくお願いいたします。
回答: > > すべてのshファイルがcronで動くわけではないのでしょうか? > > > 人間と対話する必要の無いコマンドであればなんでもcronで動きます。 そのOSからメールが送れるように設定してあれば、cronのエラーはrootから実行ユーザへのメールで通知されます。 メールの設定をするのが難しいようであれば、 `5 0 * * * /home/user/document/mysql_everyday.sh 2>/tmp/errormsg` でエラーメッセージを確認します。 コマンドラインからの実行の場合とcronからの実行で異なるのは、 ・カレントディレクトリ ・環境変数 ・標準入出力、エラー出力 です。多くの場合、実行の違いに影響するのは環境変数、特に`PATH`です。