バックアップシェル
$ vim /root/backup.sh
#!/bin/sh
# 何日分保存するか
period=3
# バックアップしたいディレクトリ(バーチャルホストディレクトリ)
wwwdir=/home
# バックアップ保存先ディレクトリ
dirpath=/root/backup
# 今日のバックアップを保存するディレクトリ
todaydir=`date '+%Y%m%d'`
# DBユーザー
dbuser=user
# DBパスワード
dbpassword=xxxxxxxx
# 今日のバックアップを保存するディレクトリを作成
mkdir $dirpath/$todaydir
# MySQLバックアップ
for i in `mysql -u$dbuser -p$dbpassword -e "show databases"`
do
if [ $i == "Database" ]; then
continue
fi;
mysqldump --single-transaction $i -u$dbuser -p$dbpassword --opt | gzip > $dirpath/$todaydir/mysql.$i.sql.tar.gz
done;
# ディレクトリバックアップ
for i in `ls $wwwdir`
do
tar cvfz $dirpath/$todaydir/www.$i.tar.gz $wwwdir/$i
done
tar cvfz $dirpath/$todaydir/www.$i.tar.gz /var/www
olddir=`date -d "$period days ago" '+%Y%m%d'`
rm -rf $dirpath/$olddir
実行
$ chmod 0700 /root/backup.sh
$ /root/backup.sh
$ ll /root/backup
合計 4
drwxr-xr-x 2 root root 4096 12月 31 01:17 20131231
cron追加
$ crontab -e
0 4 * * * /root/backup.sh 1> /dev/null