目次
MySQLのDBダンプを定期作成するスクリプト。
#!/bin/sh # ------------------------ # mysql dump make script # ------------------------ # Version : 1.0 # date : 2010/01/13 export LANG=C export PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/mysql/bin:/usr/local/mysql/sbin:$PATH ## Set ROTATE="30" DBUSER="[DB USER]" DBPASS="[DB PASSWD]" DATEM=`date +%Y%m` BACKUPLOG="/var/logs/backup_"$DATEM".log" # Backup Working Log BACKUPDIR="/home/system/backup" # Backup Local Space BACKUPSRV="/mnt/database/backup" # Backup Network Space ## Log LOGDATE=`date +%Y/%m/%d\ %H:%M:%S` echo $LOGDATE" DB backup start : "$1" : "$2 >> $BACKUPLOG ## Check # TARGET if [ -z $1 ]; then echo "ERR : target Database unknown" >> $BACKUPLOG echo "ERR : target Database unknown" echo "USE : ./mysql-dumpbackup.sh [TargetDatabase] [OUTPUT FILE NAME]" exit 0 else DBNAME=$1 fi # OUTPUT if [ -z $2 ]; then echo "ERR : Output File unknown" >> $BACKUPLOG echo "ERR : Output File unknown" echo "USE : ./mysql-dumpbackup.sh [TargetDatabase] [OUTPUT FILE NAME]" exit 0 else OUTFILE=$2 fi # Dir Check if [ -w !$BACKUPDIR ]; then echo "ERR : "$BACKUPDIR" not write" >> $BACKUPLOG echo "ERR : "$BACKUPDIR" not write" exit 1 fi ## Exec cd $BACKUPDIR # Rotate test -f $OUTFILE.gz.$ROTATE && rm -rf $OUTFILE.gz.$ROTATE while [ $ROTATE -ge 1 ]; do i=$((ROTATE-1)) if [ -f $OUTFILE.gz.$i ]; then mv $OUTFILE.gz.$i $OUTFILE.gz.$ROTATE fi ROTATE=$i done test -f $OUTFILE.gz && mv $OUTFILE.gz $OUTFILE.gz.1 # MySQL dump mysqldump -u $DBUSER --password=$DBPASS $DBNAME > $OUTFILE gzip $OUTFILE # Copy Server if [ -w $BACKUPSRV ]; then FILEDATE=`date +%Y%m%d` cp $OUTFILE.gz $BACKUPSRV/$OUTFILE.$FILEDATE.gz fi exit 0 # EOF