バックアップシェル
$ 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