linux上利用crontab定时备份postgres数据库及文件到windows系统
?
轉載自CSDN的shinjitsu的專欄,主要備份oracle的數據到windows上面!
首先是crontab的介紹。
名稱 : crontab
使用權限 : 所有使用者
使用方式 :
? ? crontab? filecrontab [ -u user ] [ -u user ] { -l | -r | -e }
說明 :
? ? crontab 是用來讓使用者在固定時間或固定間隔執行程式之用,換句話說,也就是類似使用者的時程表。-u user 是指設定指定 user 的時程表,這個前提是你必須要有其權限(比如說是 root)才能夠指定他人的時程表。如果不使用 -u user 的話,就是表示設定自己的時程表。
參數 :
? ? -e : 執行文字編輯器來設定時程表,內定的文字編輯器是 VI,如果你想用別的文字編輯器,則請先設定 VISUAL 環境變數來指定使用那個文字編輯器(比如說 setenv VISUAL joe)
? ? -r : 刪除目前的時程表
? ? -l : 列出目前的時程表
時程表的格式如下 :
? ? f1 f2 f3 f4 f5 program
? ? 其中 f1 是表示分鐘,f2 表示小時,f3 表示一個月份中的第幾日,f4 表示月份,f5 表示一個星期中的第幾天。program 表示要執行的程式。
? ? 當 f1 為 * 時表示每分鐘都要執行 program,f2 為 * 時表示每小時都要執行程式,其余類推
? ? 當 f1 為 a-b 時表示從第 a 分鐘到第 b 分鐘這段時間內要執行,f2 為 a-b 時表示從第 a 到第 b 小時都要執行,其余類推
? ? 當 f1 為 */n 時表示每 n 分鐘個時間間隔執行一次,f2 為 */n 表示每 n 小時個時間間隔執行一次,其余類推
? ? 當 f1 為 a, b, c,... 時表示第 a, b, c,... 分鐘要執行,f2 為 a, b, c,... 時表示第 a, b, c...個小時要執行,其余類推
? ? 使用者也可以將所有的設定先存放在檔案 file 中,用 crontab file 的方式來設定時程表。
注意 :
? ? 當程式在你所指定的時間執行后,系統會寄一封信給你,顯示該程式執行的內容,若是你不希望收到這樣的信,請在每一行空一格之后加上 > /dev/null 2>&1 即可。
步驟:
1、在windows系統上,創建保存備份文件的路徑/backup,并共享。
2、創建bash文件/usr/ffsdbback/backup.sh
#vi /usr/ffsdbback/backup.sh
輸入
????? #!/bin/sh? ? ? #日期的取得,“`”為鍵盤左上角“1”左邊的符號。 ? date后邊必須有空格。 ??
????? td=`date +%Y%m%d`
????? #執行postgres數據庫的備份。
????? #pg_dump:備份命令。
????? su postgres -c "/opt/powergres/bin/pg_dump -Ft ffsdb > /usr/ffsdbback/"$td.ffsdb.tar
????? #備份文件(只備份部分文件夾)。
????? tar -cvf /usr/ffsdbback/$td.file.tar /home/projects/intranet/WebRoot/keiji /home/projects/intranet/WebRoot/lib? ????? /home/projects/intranet/WebRoot/adm_log /home/projects/intranet/WebRoot/houkoku ?????? /home/projects/intranet/WebRoot/mail /home/projects/intranet/WebRoot/users /home/projects/intranet/WebRoot/wflow
????? #加載windows共享到/mnt/backup文件夾下。
????? mount -t smbfs -o username=base,password=baseadmin //192.168.0.248/backup /mnt/backup
????? #copy文件到windows共享文件夾。
????? cp /usr/ffsdbback/$td.file.tar /mnt/backup
????? cp /usr/ffsdbback/$td.ffsdb.tar /mnt/backup
????? #卸載
????? umount -l /mnt/backup
3、修改文件屬性,使其可執行
# chmod +x /usr/ffsdbback/backup.sh
4、修改/etc/crontab
#vi /etc/crontab
在下面添加
30 18 * * 1,3,5 root /usr/ffsdbback/backup.sh
表示每周1、3、5的18點30分執行備份
5、重新啟動crond
# /etc/rc.d/init.d/crond restart
完成。
轉載于:https://blog.51cto.com/liulangshu/965502
《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀總結
以上是生活随笔為你收集整理的linux上利用crontab定时备份postgres数据库及文件到windows系统的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Oracle 11g Release 1
- 下一篇: EJB的分类及其各自的功能和应用