一行備份、壓縮、scp資料庫文件

一行備份、壓縮、scp資料庫文件

我支持一家擁有遠端託管網站的公司。他們使用 PostgreSQL 資料庫。

我無法在遠端伺服器上編寫腳本,並且不想在遠端伺服器上儲存任何備份文件,但我可以運行 cron 作業,並且可以存取遠端伺服器的 SSH 公鑰。我設定了本機 Linux 主機來接受遠端主機的私鑰進行身份驗證。

我需要製作一個一行腳本來同步備份、壓縮和 scp 備份檔案到我的本機 Linux 機器。

如果我的本機 Linux 機器可以透過 SSH 在mylinuxbox.foo.com連接埠 122 上訪問,而我的資料庫名稱是mydatabase,那麼這個單行 cron 作業命令會是什麼樣子?

答案1

假設您對資料庫使用 ident 驗證(或 .pgpass),我可能會執行以下操作:

pg_dump -Udbuser -h127.0.0.1 mydatabase |gzip -c > mydatabase.backup.gz; scp -P 122 mydatabase.backup.gz [email protected]:; rm -f mydatabase.backup.gz

編輯以新增另一個選項...

如果沒有備份檔案的中間儲存確實很重要,您可以修改上面的內容,使其看起來更像這樣:

pg_dump -Udbuser -h127.0.0.1 mydatabase |gzip -c | ssh -p 122 [email protected] "cat >mydatabase.backup.gz"

相關內容