0

毎日データベースをバックアップするために cronjob を実行しようとしています。crontab -eroot にログインして を実行し、コマンドを貼り付けて cronjob を作成しました。

* * * * * /bin/bash -l -c 'cd /var/lib/postgresql && sudo -u postgres pg_dump db_development -O -f "/var/lib/postgresql/backup/db-`date +\%Y-\%m-\%d\\%k:\%M:\%S`.sql"' > /var/lib/postgresql/log/cron.log 2>&1

postgresユーザーまたはrootのいずれかを使用してターミナルでコマンドを実行すると、コマンドが完全に機能するため、非常に面倒です。ただし、cronjob タスクからデータがまったく返されません。ログ ファイルは空白で、バックアップ ファイルは作成されません。

私はこれを10時間以上修正しようとしてきましたが、アイデアがありません。どんな助けでも大歓迎です。ありがとう。

4

2 に答える 2

1

ほとんどの場合、環境問題です。シェルのDB環境設定を確認してください。

cronコマンドラインをスクリプトでラップすることもできます(そしてcronからスクリプトを呼び出します)。次に、最初にスクリプトに環境をダンプさせ(不足しているものを確認できるようにします)、最終的には正しい環境をセットアップします。それが機能するようにvars。

于 2012-10-25T01:08:22.917 に答える
0

環境に問題があるかもしれませんが、そのような長いコマンドは、cron から呼び出される別のスクリプトに入れる方がよいでしょう。

于 2012-10-25T01:09:18.013 に答える