Atis非專業挨踢筆記: Ubuntu排程備份到NAS實做 (NFS協定)

2013年12月6日 星期五

Ubuntu排程備份到NAS實做 (NFS協定)

首先先做NAS端的設定,以Synology為例

首先開啟NFS服務

在欲做備份的目錄此用「Backup」為例
點選到權限->NFS權限設定



NFS規則輸入要連到NAS的IP,此例為「192.168.1.6」
並將權限改為「可讀寫」
Root Squash 改為「調整為admin」



Ubuntu端NFS Client設定

部份版本未將nfs整合進去,需手動安裝
sudo apt-get install nfs-common portmap

安裝完成之後就可以連線到NAS了,語法如下
sudo mount -t nfs 192.168.1.102:/volume1/Backup/ /mnt/backup
其中192.168.1.102為NAS的IP
volume1/Backup為分享的目錄名稱 (注意大小寫)

如不確定的話可以用查看資訊
showmount 192.168.1.102 -e



Ubuntu端批次範例

新增一個backup.sh文件,並編輯它
sudo vim /home/backup.sh
貼上如下字串,紅色之外的部份不建議修改

#------------------------------------------------------------

#移除多餘的備份,預設為保留5份

find /mnt/backup/APPS/* -mtime +5 -exec rm -fr {} \; > /dev/null 2>&1

# 壓縮檔名稱可在此修改
eval `date "+day=%d; month=%m; year=%Y"`
INSTFIL="www_sql-backup-$year-$month-$day.tar.gz"

# 壓縮檔名稱可在此修改
eval `date "+day=%d; month=%m; year=%Y"`
INSTFIL1="home-backup-$year-$month-$day.tar.gz"

# Mount NAS
sudo mount -t nfs 192.168.1.102:/volume1/Backup/ /mnt/backup

# Dump the MySQL Database
sudo mysqldump -uroot -proot --all-databases > /var/www/mysql.sql

# 設定備份的目的與來源
tar -Pcpzf /mnt/backup/APPS/$INSTFIL /var/www/*

# Remove the SQL Dump
sudo rm -f /var/www/mysql.sql
#------------------------------------------------------------

Ubuntu端排程設定

sudo crontab -e
貼上
0 2     * * *   sh /home/backup.sh
意思為每天02:00執行sh /home/backup.sh


沒有留言: