~/.zshenv 環境ですべての Cronjob を実行します。

~/.zshenv 環境ですべての Cronjob を実行します。

~/.zshenvで定義されている環境ですべてのcronjobを実行し、各cronjobを単一のログファイルSTDOUTにリダイレクトしたいと思います。STDERR私はOS X 10.9を使用しています。これを達成する最もクリーンな方法は何ですか?

答え1

~/.zshenvzshによって起動時にロードされます(-fstartupまたはsettingsを使用して設定ディレクトリを変更しない限りZDOTDIR)。他のシェルではロードされません(理解できません)。したがって、ロードをスケジュールすることは、~/.zshenvzshで実行されるジョブをスケジュールするのと同じです。SHELLcrontabで変数を設定します。これはすべてのタスクに適用されます。

.zshenvすべてのシェルがそれを読むので、物を入れないように注意してください。たとえば、別の環境で特定のプログラムを実行するように環境変数を設定した場合(たとえば、特定のファイルまたはプログラムの異なるバージョンが必要な環境変数を設定した場合など)、これらの変数をオーバーライドすると機能…PATHしません。.zshenv

特に、対話型セッションおよびcronジョブの環境変数を設定するには、.zshenvcrontabおよびcrontabから取得したファイルを使用しないでください~/.profile。すべてのクローン操作を開始します. ~/.my_environment.sh;(グローバルには実行できません)。

cronジョブの出力は、ローカルメールツールを使用して電子メールに送信されます。 OSXで設定する方法がわかりません。 cronは成功したジョブ(出力なし、戻りコード0)ではなく、各ジョブの電子メール送信を担当するため、ログファイルを使用しないことをお勧めします。本当にログファイルを使用したい場合exec >~/cron-logs/nameofthisjob-$(date +\%Y\%m\%d-\%H\%M) 2>&1 &&

関連情報