linux 下的差異和增量備份

來源:互聯網
上載者:User
這是我正在使用的一段備份指令碼 mybackup.sh
在redhat Linux 7.2 下運行正常

mybackup.sh
#!/bin/sh
umount /mnt/bak
mount /dev/sdb1 /mnt/bak

if [ `date +%d` = '01' ]   #每月1號進行完全備份
then
  bakdir="/mnt/bak/daybak/month/"`date +%m%d`
  zl=""  #進行完全備份
else
  bakdir="/mnt/bak/daybak/"`date +%d`
  zl="-N "`date +'%Y-%m-01 00:00:01'`;                 #差異備份
 #zl="-N "`date -d '-1 day' +'%Y-%m-%d 00:00:01'`     #日增量備份
fi

tmpbakdir=${bakdir}tmp
rm -rf ${tmpbakdir}
mkdir ${tmpbakdir}
tar "${zl}" -czf ${tmpbakdir}/www.tgz /var/www/html
tar "${zl}" -czf ${tmpbakdir}/etc.tgz /etc
tar "${zl}" -czf ${tmpbakdir}/mysql.tgz /var/lib/mysql
tar "${zl}" -czf ${tmpbakdir}/home.tgz /home
tar "${zl}" -czf ${tmpbakdir}/name.tgz /var/name
rm -rf $bakdir
mv $tmpbakdir $bakdir
umount /mnt/bak

把mybackup.sh 放到 /etc/cron.daly 中即實現可月迴圈 差異/增量 備份
為方便恢複資料我使用了差異備份,如果想節約空間可以使用日總量備份,不過那樣恢複資料時刻就要麻煩點了,另外你也可以很容易把上面的指令碼改為周迴圈

事項增量備份的另外方法是利用find命令,
例如只備份一天前修改過的檔案
find /var/www -type f -mtime -1 -print>/tmp/filelist.txt 
tar -cz -T /tmp/filelist.txt -f /mnt/bak/www.tgz

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.