在CentOS上備份,常常使用tar進行打包,備份到遠程目錄可使用rsync或mount映射遠程目錄,刪除過時備份可使用find,rm,自動執行可使用sh腳本和crontab配合。php
提醒你們,全部腳本請在CentOS下編輯,請勿在windows下編輯後上傳,容易出現格式問題,不能正常執行。linux
如今已一臺CentOS 7服務器,須要備份的目錄,/var/backup 。備份到SMB共享做爲例子說明windows
首先安裝SMB共享支持,否則mount會出錯bash
yum install cifs-utils
經過 mount ,將遠程windowns域環境的SMB共享映射到本地目錄服務器
創建映射目錄dom
mkdir /home/backup
映射遠程目錄ide
mount -t cifs -o username="用戶名",domain="域名",password="密碼" //遠程服務器/目錄 /home/backup
測試備份命令
測試
進入須要備份目錄的上級目錄spa
cd /var
使用tar打包須要備份的目錄到映射目錄,tar 格式,tar -參數 /備份文件存放地址 /備份目錄。orm
tar 參數,j 使用bzip2壓縮,p 保留文件屬性,c 建立新的存檔,v 顯示過程,腳本化時去除。
備份文件名增長生成日期時間的參數,$(date +%Y-%m-%d-%H%M%S)。
tar -jpcf /home/backup/backup.$(date +%Y-%m-%d-%H%M%S).tar.bz2 backup
自動刪除七天前的備份文件,find /路徑 -type f -mtime +7 -exec rm -f {} \;
-type f是指定文件類型爲普通文件,-mtime +7是指7天以前的文件,#-exec rm -f指執行靜默刪除匹配出來的文件。
find /home/backup -type f -mtime +7 -exec rm -f {} \;
若是都測試成功,咱們就能夠開始編寫備份腳本,記得將腳本更改成可執行文件
#!/bin/bash mount -t cifs -o username="用戶名",domain="域名",password="密碼" //遠程服務器/目錄 cd /var tar -jpcf /home/backup/mrcrm.$(date +%Y-%m-%d-%H%M%S).tar.bz2 mrcrm cd /home/backup find /home/backup -type f -mtime +7 -exec rm -f {} \; unmount /home/backup
腳本測試成功,咱們可使用自動執行命令讓腳本自動在指定時間執行。
crontab -l 查看清單 -e 編輯
參考文章:
http://linux.vbird.org/linux_basic/0610hardware.php
推薦鳥哥的第二十章、基礎系統設定與備份策略。裏面描寫更詳細和清晰。