0

crontabをセットアップしようとしています。これは、ログインしている現在のユーザーの現在のジョブにあります。

* * * * * /CS/day/get_info.sh

get_info.shは毎分テキストファイルを出力することになっていて、スクリプトが配置されているのと同じディレクトリにファイルを出力するのではないかと思いましたが、そうではありません。

また、syslogをチェックして、これを理解できるかどうかを確認しました。

(user) CMD (/CS/day/get_info.sh)
(user) MAIL (mailed 46 bytes of output but got status  0x0001#012)

なぜこれが起こっているのか誰かが私に説明できますか?

ありがとう

4

3 に答える 3

1

man cronあなたに言う:

  When executing commands, any output is  mailed  to  the  owner  of  the
  crontab (or to the user named in the MAILTO environment variable in the
  crontab, if such exists).  The children copies of  cron  running  these
  processes  have their name coerced to uppercase, as will be seen in the
  syslog and ps output.

だからあなたはしなければならない

  • cd自分で適切なディレクトリに移動します(cronが使用します$HOME
  • 任意の出力を選択したファイルにリダイレクトします

両方とも crontab で実行できます。ただし、スクリプト自体の最初の行で行うことをお勧めします。

#!/bin/bash
cd WHEREEVER_YOU_WANT
exec > YOUR_LOG_FILE 2&>1
于 2012-11-04T11:25:39.823 に答える
0

スクリプトはユーザーのホーム ディレクトリで実行され、ファイルもそこにあるはずです。スクリプトと同じディレクトリに配置する場合は、スクリプトで acdを実行するか、crontab エントリを変更します。

*/1 19-20 * * * cd /CS/day; /CS/day/get_info.sh

crontab エントリに関するもう 1 つの一般的な問題は、環境です。スクリプトが端末で正しく動作する場合は、cron から実行したときにデバッグしてみてください。

40 11 * * * bash -x /CS/day/get_info.sh >/tmp/get_info.sh.log 2>&1

そうしないと、ログファイルが毎分上書きされるため、現在の時刻で一度だけ実行してください。

于 2012-11-04T00:06:05.637 に答える
0

私の場合、smtp クライアントをインストールして構成するだけで済みました。

于 2014-07-20T09:19:55.283 に答える