shell+crontab製作postgresql數據庫定期備份腳本

shell+crontab製作postgresql數據庫定期備份腳本

業務背景

在開發期間,定期對數據庫備份是非常有必要的

第一步:編寫shell腳本 postgresql_backups.sh

#! /bin/sh
#獲取一個時間戳 
ymdhm=`date +%Y%m%d%H%M`
echo $timestamp $ymdhm
#創建文件夾
mkdir -p /home/pgdatabackups/$ymdhm

#路徑
backupspath=/home/pgdatabackups/$ymdhm

#數據庫備份,如果pg_dump找不到命令,則利用find找到命令所在位置
#使用find / -name pg_dump 找到pg_dump命令工具
pg_dump=/usr/pgsql/bin/pg_dump

#設置密碼,可以不輸入密碼(與配置文件的有關)
export PGPASSWORD=123456


#剔除表 ods_new_log; 127.0.0.1 不行,則改成對應的ip
$pg_dump -h 127.0.0.1  -p 5432 -U postgres -T ods_new_log -F c -b -v -f   $backupspath/tenant_1011014.backups  tenant_1011014
$pg_dump -h 127.0.0.1  -p 5432 -U postgres -F c -b -v -f  $backupspath/metadata.backups  metadata
$pg_dump -h 127.0.0.1  -p 5432 -U postgres -F c -b -v -f  $backupspath/platform.backups  platform

#其他,定期情況文件
#定期清理文件; 按2分鐘刪除文件(包括文件夾)
#find  /home/pgdatabackups/ -mmin +2 -type d -exec rm -rf {} \;

#按7天刪除文件(包括文件夾)
find  /home/pgdatabackups/ -mtime +7 -type d -exec rm -rf {} \;

第二步 加入crontab

crontab -e
# 每天23點備份,注意shell腳本位置
0 23 * * * /home/pgdatabackups/postgresql_backups.sh
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章