2017-12-13 26 views
-1

PostgreSQLデータベースのバックアップを作成するcrontabを使用してスクリプトを実行します。AWS EC2インスタンスのPostgreSQLバックアップ

私のスクリプトは次のようになります。ファイルの所有者がrootである

#!/bin/bash 

current_date=`date +%Y-%m-%d` 

# Delete old backups 
find /home/ubuntu/backups/ * -mtime +1 -delete 

# Do a full postgres cluster 
pg_dump dbname | gzip > /home/ubuntu/backups/$current_date.gz 

、私は私が見るsudoを使用してスクリプトを実行すると...

それを変更する必要があります。

pg_dump:[archiver(db)]データベース "easydjango"への接続に失敗しました:致命的:ロール "root"は存在しません

どうすればいいですか?

答えて

0

pg_dumpに-Uオプションを設定することによって、適切な認証情報を渡すことができます。

https://www.postgresql.org/docs/current/static/app-pgdump.html

あなたがパスワードを要求されたくない場合はPGPASSWORD環境変数を設定する必要があります。

export PGPASSWORD=mypass 
pg_dump -U myuser ... 
+0

コマンドラインに '-U postgres'を指定すると、同じエラーメッセージが表示されます –

+1

「root」というロールが存在しないという同じエラーが表示されますか? –

0

PostgreSQLは明示的に指定されていない場合、osuserをpguserとみなします。 pgdumpを与えている間にユーザープロパティを指定する必要があります。

また、指定するユーザー名には、ダンプを取るデータベースに十分な特権が必要です。

このリンクhttps://www.postgresql.org/docs/current/static/libpq-pgpass.htmlで指定されているPostgreSQLパスワードファイルを作成してから、ダンプを試してみることをお勧めします。

関連する問題