Linux下postgres資料庫備份(定時任務)
阿新 • • 發佈:2022-03-29
一。建立指令碼
編寫資料庫定時備份指令碼 指令碼語句如下:
命名為:pgback.sh
#!/bin/bash
export PGPASSWORD='123456' #資料庫密碼
export dbname=dbname # 資料庫庫名
backuppath=/var/lib/pgsql/9.6/backups #備份儲存的路徑
echo "開始執行 PostgreSql 資料庫的備份!"
echo "backup ing -------------------"
# 獲取當前時間
cur_time=$(date '+%Y-%m-%d')
sevendays_time=$(date -d -7days '+%Y-%m-%d')
rm -f $backuppath/${dbname}$sevendays_time.bak #刪除7天前的備份
pg_dump --port 5432 --username "postgres" --no-password --format custom --blobs --verbose --file "$backuppath/${dbname}$cur_time.bak" "${dbname}"
echo "資料庫備份結束!"
exit;
二。給檔案許可權
chmod +x pgback.sh
三。測試指令碼
sh pgback.sh
四。定時任務
crontab -e
設定每天晚上23點執行指令碼,並輸出到日誌,路徑可自行更改
0 23 * * * sh /home/pgsql/backups/pgback.sh > /home/pgsql/backups/bak.log 2>&1