2017-12-06 6 views
0

ローカルに保存されたスクリプトからcrontab psqlバックアップジョブを実行することに問題があります。私はcrontab -e経由でジョブを追加しました。crontab -lを使用した場合、それはジョブのリストに表示されます。ローカルに保存されたスクリプトからcrontabジョブを実行する

59 23 * * 7 /Users/myusername/backup.sh 

./backup.sh

を使用した場合、実行することになっているスクリプトは、これは私のように仕事を設定したものであることを確認し、それが必要として実行され、正常に動作し、指定されたS3バケットに出力をダンプします毎週日曜日の午後11時59分にジョブを実行する必要がありますが、そうではありません。問題の内容を把握できません。各ジョブの間に行間やスペースを残しておく必要がありますか?crontabリストで失われたジョブの直後ですか?

ご協力いただきありがとうございます。 。

+1

システムによっては(例えばUbuntuなど)、cronはすべてのジョブの後に改行が必要であるため、crontabは '#'コメントなどの行で終了する必要があります。マニュアルページに記載されています。 –

答えて

0

お使いのディストリビューションによっては、cronサービスのログをチェックする可能性のある問題の理由の

非網羅的なリスト:。

  1. cronサービスはまったく動作していないので、ではありませんいずれかのタスクを開始する;
  2. 通常、Cronはあなたのスクリプトに非常に限られた環境変数のセットを渡すので、環境が不足しているためスクリプトが失敗する可能性があります。それはおそらくあなたが

    cronサービスを行うことができますどのようにcronデーモンログ

に反映されます:(?またはsystemctl status crond)ディストリビューションはsystemdを使用している場合、その後systemctl status cronを実行している、それが実行されているかどうかをチェックしてみてください

スクリプトは開始されましたが失敗します:ここでいくつか試してみてください。

  1. スクリプトが開始されなければならない前に、多分journalctl --unit cronまたはjournalctl -fようなもので、cronサービスのログをチェックしてみてください。
  2. ホームディレクトリに失敗したスクリプトの出力を含むdead.letterファイルがあるかどうかを確認します。 Cronがあなたのスクリプトを起動し、スクリプトが何かを出力すると(問題とみなされます)、その出力があなたに郵送されます。メーリングが正しく構成されていない場合、通常はそのファイルに移動します。

    (
        date 
        id -a 
        set 
        echo 
    ) >> /tmp/myscript.log 
    

その後のcronでスクリプトが実行されるまで待ち、ファイル/tmp/myscript.logが作成されたかどうかを確認:

  • は、スクリプトの冒頭でこのような何かを置きます。次に、あなたが今知っているcronによって作成されたすべての環境を複製して、スクリプトを手動で実行しようとします。私。変数Cron以外のすべての設定を解除し、idが正しいことを確認してください。

  • 関連する問題