Bash

從 bash 腳本轉儲 pg db .pgpass 被忽略

  • July 17, 2019

我正在嘗試使用我們的舊方法轉儲一個 postgreSQL 數據庫,但我遇到了一些問題。

舊方法只是信任 localhost 中的所有連接(在 pg_hba.conf 中),但新方法設置md5為所有人。

這是我們用來轉儲數據庫的舊腳本

su postgres -c "pg_dump -U $DBUSER $DBNAME -Fc > /tmp/dbbackup.dump"
mv /tmp/dbbackup.dump /var/www/vhosts/$SITE/httpdocs/backup/

並且抱怨密碼,所以我創建了.pgpassin/root/然後chmod 0600嘗試了命令,但它不起作用,仍然抱怨密碼,所以我將所有者和組更改為postgres但同樣的錯誤。

錯誤在哪裡?如何備份我的數據庫?

su postgres -c “p​​g_dump ……

. . . 並且抱怨密碼,所以我在 /root/ 中創建了 .pgpass

請記住su命令的這種用法。

  1. 將執行競賽更改為指定帳戶。
  2. 執行給定的命令。

您要求系統以 postgres 帳戶的身份執行pg_dump命令

因此,.pgpass 文件需要位於postgres帳戶的主目錄中,而不是root帳戶的主目錄中。

引用自:https://serverfault.com/questions/975556