這次應該萬無一失了,每天定時備份所有資料庫和/etc、/usr/local/etc裡面的設定檔、以及/home底下的所有資料。然後自己使用的Windows系統再定時從samba去把FreeBSD上的備份檔抓回來多存一份。
2013/08/08 UPDATE:現在我改成直接丟到開了NFS分享的NAS系統上面去
#!/usr/local/bin/bash # 設定備份檔放置目錄 BACKUP_DEST="/nfs_backup/" WORKINGDIR="/nfs_backup/" # 設定會用到的工具路徑 CD="/usr/bin/cd" FIND="/usr/bin/find" MYSQL="/usr/local/bin/mysql" MYSQLDUMP="/usr/local/bin/mysqldump" RM="/bin/rm" TAR="/usr/bin/tar" # 備份所有資料庫 # 先列出所有資料庫 databases=`${MYSQL} -BN -uroot -p[密碼] -e "show databases"` cd ${BACKUP_DEST} date=$( date "+%Y%m%d") for dbname in $databases; do ${MYSQLDUMP} --single-transaction -uroot -p[密碼] ${dbname} > "${dbname}-${date}.sql" ${TAR} cjvf mysql-${dbname}-${date}.tar.bz2 ${dbname}-${date}.sql ${RM} -f ${dbname}-${date}.sql done # 備份/etc ${TAR} cjvfL ${BACKUP_DEST}etc-${date}.tar.bz2 /etc # 備份/usr/local/etc ${TAR} cjvfL ${BACKUP_DEST}usr_local_etc-${date}.tar.bz2 /usr/local/etc # 備份/usr/local/www/ ${TAR} cjvfL ${BACKUP_DEST}usr_local_www-${date}.tar.bz2 /usr/local/www # 備份/home ${TAR} cjvfL ${BACKUP_DEST}home-${date}.tar.bz2 /home # 刪除7天前的檔案 ${CD} ${WORKINGDIR} ${FIND} ${BACKUP_DEST}*.bz2 -mtime +7d -exec rm '{}' ;