1. 程式人生 > 其它 >Linux下postgres資料庫備份(定時任務)

Linux下postgres資料庫備份(定時任務)

一。建立指令碼

編寫資料庫定時備份指令碼 ​指令碼語句如下:

命名為: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