2017-06-30 85 views
-1

我正在爲使用PostgreSQL和Tomcat的服務器開發自動備份系統。環境是CentOS最小7。長話短說,虛擬機將通過FTP下載包含Tomcat的.sql轉儲文件和一個.tar.gz文件夾。轉儲postgresql數據庫並通過ftp訪問它們

在設置vsftpd時沒有問題,我可以通過FTP使用自定義用戶(ftpuser)訪問服務器,該用戶當前可以訪問特定文件夾(/ home/ftpuser/backups /)。我可以在那裏壓縮tomcat,這樣我的腳本就可以獲取備份/文件夾並下載它,但是我無法弄清楚如何將postgresql數據庫轉儲到/ home/ftpuser/backups /文件夾,而無需使用sudo做一些愚蠢的事情。

Postgres用戶沒有寫入的權限,即使使用chown或chmod,我也無法將它們提供給他。我插入sudoers postgres,如果我轉儲分貝,然後我「sudo cp」到該文件夾​​是好的,但這樣我不能使用腳本來做到這一點,由於「sudo」問密碼。

問題是..有沒有辦法讓「pg_dump」將.sql轉儲寫入/ home/ftpuser/backups /文件夾?

感謝您的回覆。

+0

請**,請勿**使用FTP進行備份。這是數據庫轉儲泄漏的方式。至少你應該通過SSH使用'rsync'。在將它們傾倒到任何地方之前,GPG對它們進行加密也會更好。 – tadman

+0

這就是他們要求我做的事情,我的意思是顯然是sftp,但問題會是一樣的,我怎樣才能將pg_dump移到/ var/lib/pgsql之外的特定文件夾? –

+0

如果涉及密碼認證,這仍然是非常危險的。你想要一些依賴於私鑰的東西,如果沒有通過VPN,IP白名單或其他措施限制更多的話。無論如何,這不是一個編程問題。除非你正在研究某種腳本,否則它可能更好地指向[SuperUser](http://superuser.com)或[DBA站點](http://dba.stackexchange.com)。 – tadman

回答

0

pg_dump不需要從postgres用戶運行。

可以將寫入所需文件夾並通過--username=database_user參數指定所需數據庫用戶的用戶運行它。您可能需要一個.pgpass文件來獲取該用戶使用的密碼(除非它已被定義爲trust ed pg_hba.conf)。

+0

哦,不知道。 我使用了另一種解決方法,但我會牢記這一點。泰 –