1.事前小動作
先在要存放的位置建立資料夾,
縱使備份,單單下指令似乎不會自動產生資料夾,
因此得先做這樣的動作,
首先在根目錄建立...
/wwwbackup/和/wwwbackup/wwwlog
2.對網頁資料夾做備份動作,檔名存為mysql_backup.sh
---------------------------以下為程式碼---------------------------
#!/bin/bash
BACKUPDIR=/wwwbackup/(備份後存放位置)
LOGDIR=/wwwbackup/wwwlog(log檔存放位置)
echo "[backup www have error] : " `date +%F` > $LOGDIR/html_backup_err.log
cd $BACKUPDIR
days=3(備份的天數)
for ((i=$days-1 ; i>=1 ; i=i-1))
do
declare -i j=$i-1
mv html_$j.tar.bz2 html_$i.tar.bz2 2>> $LOGDIR/html_backup_err.log
done
cd /data/
tar jcf $BACKUPDIR/html_0.tar.bz2 moodle 2>> $LOGDIR/html_backup_err.log
---------------------------以上為程式碼---------------------------
3.對資料庫做備份動作,檔名存為mysql_backup.sh
---------------------------以下為程式碼---------------------------
#!/bin/bash
BACKUPDIR=/wwwbackup/(備份後存放位置)
LOGDIR=/wwwbackup/wwwlog(log檔存放位置)
echo "[mysql database backup error] : " `date +%F` > $LOGDIR/mysql_backup_err.log
cd $BACKUPDIR
days=3 (備份的天數)
for ((i=$days-1 ; i>=1 ; i=i-1))
do
declare -i j=$i-1
mv mysql_$j.sql.gz mysql_$i.sql.gz 2>> $LOGDIR/mysql_backup_err.log
done
cd $BACKUPDIR
mysqldump -u root -p "your password" > mysql_0.sql 2>> $LOGDIR/pgsql_backup_err.log(對資料庫下dump指令)
gzip mysql_0.sql 2>> $LOGDIR/mysql_backup_err.log(作壓縮資料庫的動作)
---------------------------以上為程式碼---------------------------
4.建立備份排程
以上皆完成後,把3、4寫好的文件分別存為html_backup.sh、mysql_backup.sh,
然後放到/opt/backup/bin/中,
並且用root權限登入後,下指令crontab -e,
---------------------------以下為程式碼---------------------------
30 01 * * * /opt/backup/bin/html_backup.sh(半夜一點半執行此指令)
30 03 * * * /opt/backup/bin/mysql_backup.sh(凌晨三點半執行此指令)
---------------------------以上為程式碼---------------------------
這樣應該就行了,半夜就會自動執行囉。
沒有留言:
張貼留言