~/.zshenvで定義されている環境ですべてのcronjobを実行し、各cronjobを単一のログファイルSTDOUT
にリダイレクトしたいと思います。STDERR
私はOS X 10.9を使用しています。これを達成する最もクリーンな方法は何ですか?
答え1
~/.zshenv
zshによって起動時にロードされます(-f
startupまたはsettingsを使用して設定ディレクトリを変更しない限りZDOTDIR
)。他のシェルではロードされません(理解できません)。したがって、ロードをスケジュールすることは、~/.zshenv
zshで実行されるジョブをスケジュールするのと同じです。SHELL
crontabで変数を設定します。これはすべてのタスクに適用されます。
.zshenv
すべてのシェルがそれを読むので、物を入れないように注意してください。たとえば、別の環境で特定のプログラムを実行するように環境変数を設定した場合(たとえば、特定のファイルまたはプログラムの異なるバージョンが必要な環境変数を設定した場合など)、これらの変数をオーバーライドすると機能…PATH
しません。.zshenv
特に、対話型セッションおよびcronジョブの環境変数を設定するには、.zshenv
crontabおよびcrontabから取得したファイルを使用しないでください~/.profile
。すべてのクローン操作を開始します. ~/.my_environment.sh;
(グローバルには実行できません)。
cronジョブの出力は、ローカルメールツールを使用して電子メールに送信されます。 OSXで設定する方法がわかりません。 cronは成功したジョブ(出力なし、戻りコード0)ではなく、各ジョブの電子メール送信を担当するため、ログファイルを使用しないことをお勧めします。本当にログファイルを使用したい場合exec >~/cron-logs/nameofthisjob-$(date +\%Y\%m\%d-\%H\%M) 2>&1 &&
。