Linux系統定時備份Postgresql資料庫

2021-10-25 09:13:20 字數 1649 閱讀 3265

建立指令碼檔案backup.sh,編寫資料庫備份指令碼

#!/bin/sh

#資料庫備份目錄

backupdir=/datadisk/pgbackup/backupone/dbldqq

# 資料庫備份檔案名稱,以時間作為唯一碼

da='date +"%y%m%d%h%m%s"'

echo $da

#備份db_demo資料庫

pg_dump "host=127.0.0.1 port=5432 user=postgres password=11271111 dbname=db_demo" -o>$backupdir/ldqq$da.sql

echo success!

#刪除15天前的備份檔案:mmin分鐘、mtime天

find $backupdir -mtime +15 -name "*.sql" -exec sudo rm -rf {} \;

root使用者下,執行指令碼
sh ./backup.sh
備份資料庫中的某一張表
#!/bin/sh

#資料庫中某張表的備份目錄

backupdir=/datadisk/pgbackup/backupone/dbldqq

# 資料庫備份檔案名稱,以時間作為唯一碼

da='date +"%y%m%d%h%m%s"'

echo $da

#備份db_demo資料庫

pg_dump -t tbl_demo "host=127.0.0.1 port=5432 user=postgres password=123456789 dbname=db_demo" -o>$backupdir/t_demo$da.sql

echo success!

#刪除15天前的備份檔案:mmin分鐘、mtime天

find $backupdir -mtime +15 -name "*.sql" -exec sudo rm -rf {} \;

指令碼新增到定時任務中
# 檢視定時任務列表

crontab -l

crontab -e

# 新增任務

# 注:前五位佔位符表示分(0-59),小時(0-23),日(1-31),月(1-12),星期(0-6,0表示週日),緊接著是命令(例如:sh),一般一行對應乙個任務,「*」代表取值範圍內的數字,「/」代表「每」,「-」代表從某個數字到某個數字,「,」分開幾個離散的數字

30 3 10,20 * * ls 每月10號及20號的3:30執行ls命令[注:「,」用來連線多個不連續的時段]

25 8-11 * * * ls 每天8-11點的第25分鐘執行ls命令[注:「-」用來連線連續的時段]

*/15 * * * * ls 每15分鐘執行一次ls命令 [即每個小時的第0 15 30 45 60分鐘執行ls命令 ]

30 6 */10 * * ls 每個月中,每隔10天6:30執行一次ls命令[即每月的1、11、21、31日是的6:30執行一次ls 命令。 ]

Linux 定時備份MYsql

vim sbin backup usr local mysql bin mysqldump uroot p1 l mysql home databak mysql date y m d sql 注 l 鎖定表 date與 之前要空格,與 y m d不能有空格 crontab e 03 sbin ba...

linux定時備份oracle

1.建立備份檔案 vi bak.sh bin bash export oracle sid orcl export oracle term xterm export path oracle home bin usr sbin path export ld library path oracle ho...

Linux作業系統下定時備份目錄

把乙個目錄下的所有檔案定時備份到另乙個目錄。步驟 1 vi home scripts backup.sh create by athlandly 2007 12 10 shell content rm fr opt backup test 先強行刪除test目錄 cp r home test opt...