一。創建腳本
編寫數據庫定時備份腳本 腳本語句如下:
命名為: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 "當前時間 $(date +"%Y-%m-%d %H:%M:%S")"
echo "數據庫備份結束!"
echo "${dbname}$cur_time.bak備份成功">>/home/pgsql/backups/bak.log #輸出日志
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