例1,定時備份到遠程ftp
先說問題.公司現在有2台伺服器,都是centos系統,一台本地(區域網路),一台則在電信機房.因為工作需要,每天備份機房上的資料到本地,以前一直是FTP登入,然後下載到本地機器.現在則希望,利用本地的centos機器,自動備份到本地.
解決方案如下:
1.下載遠程電信機房中機器上已打包好的資料.這個不難,一條語句搞定.
代碼如下 |
複製代碼 |
wget ftp://user_name:password@ip_address:port/dir/file_name2. |
定時任務,需要寫個指令碼,並加入定時任務中.
a.指令碼.假設你計劃將遠端檔案備份到/var/www/html/back目錄下,到這個目錄下,建立檔案,內容如下
代碼如下 |
複製代碼 |
!#/bin/sh cd /var/www/html/back/ wget ftp(上面那條語句)儲存為bak.sh |
b.加入定時任務.直接vi /etc/crontab 在最後一行加入如下語句
代碼如下 |
複製代碼 |
30 18 * * * root /var/www/html/back/bak.sh |
(指令碼儲存的位置)這樣每天下午6:30本地的centos機器自動會將遠程FTP的檔案備份到/var/www/html/back中了.
PS:文中涉及的技術詳細情,限於各種因素不細說.大家搜尋下就可以了,歡迎給我留言,Q me.
例2,自動備份檔案到遠程FTP伺服器並刪除指定日期前的備份
說明:
我這裡要把/home/wwwroot目錄下面的所有檔案備份到/home/wwwrootbak裡面,並且儲存為wwwroot20111103.tar.gz的壓縮檔(20111103是指備份執行時當天的日期),然後只保留最近7天的備份,再把備份檔案通過ftp伺服器上傳到指定空間,只保留最近7天的資料。
1、建立儲存備份檔案的目錄:/home/wwwrootbak
代碼如下 |
複製代碼 |
cd /home mkdir wwwrootbak
|
2、建立備份指令檔:/home/wwwrootbak/wwwrootbak.sh
代碼如下 |
複製代碼 |
cd /home cd wwwrootbak touch wwwrootbak.sh vim wwwrootbak.sh
|
輸入以下內容:
代碼如下 |
複製代碼 |
#!/bin/sh BK_DR=/home/wwwrootbak #備份檔案存放路徑 DB_DR=/home/wwwroot DAYS=7 #DAYS=7代表刪除7天前的備份,即只保留最近7天的備份 LINUX_USER=root #系統使用者名稱 date=` date +%Y%m%d ` tar zcvf $BK_DR/wwwroot$date.tar.gz $DB_DR chown -R $LINUX_USER:$LINUX_USER $BK_DR #更改備份資料庫檔案的所有者 find $BK_DR -name "wwwroot*" -type f -mtime +$DAYS -exec rm {} ; #刪除7天前的備份檔案(注意:{} ;中間有空格) deldate=` date -d -7day +%Y%m%d ` #刪除ftp伺服器空間7天前的備份 ftp -n< open 192.168.1.1 21 #開啟ftp伺服器。21為ftp連接埠 user admin 123456 #使用者名稱、密碼 binary #設定二進位傳輸 cd wwwrootbak #進入ftp目錄 lcd /home/wwwrootbak #列出本地目錄 prompt mput wwwroot$date.tar.gz wwwroot$date.tar.gz #上傳目錄中的檔案 mdelete wwwroot$deldate.tar.gz wwwroot$deldate.tar.gz #刪除ftp空間7天前的備份 close bye ! |
3、修改檔案屬性,使其可執行
代碼如下 |
複製代碼 |
chmod +x /home/wwwrootbak/wwwrootbak.sh
|
4、修改/etc/crontab
代碼如下 |
複製代碼 |
vi /etc/crontab
|
在下面添加
代碼如下 |
複製代碼 |
5 2 * * * root /home/wwwrootbak/wwwrootbak.sh
|
表示每天淩晨2點5分執行備份
5、重新啟動crond使設定生效
代碼如下 |
複製代碼 |
/etc/rc.d/init.d/crond restart #yum install -y vixie-cron安裝計劃任務,某些系統上可能沒有預裝 chkconfig crond on #設為開機啟動 service crond start #啟動
|
每天你在/home/wwwrootbak目錄下面可以看到類似wwwroot20111103.tar.gz這樣的壓縮檔
如果需要恢複檔案的時候,只需要把這個檔案解壓即可
解壓縮:tar -zxvf wwwroot20111103.tar.gz