以下用于存储 laste 10 数据库备份的 shell 脚本。但有一个小问题。该脚本创建带有日期和时间的每个数据库的 *.zip 文件并存储在备份文件夹中。所以如果我有 4 个数据库,那么它将创建 4 个 zip 文件。对于最后 10 天的备份,这意味着我总共备份了 40 个数据库。
我想用单独的文件夹存储过去 10 天的数据库备份。这样每个文件夹都包含数据库的备份。
以下是shell脚本。
MHOST=localhost
MUSER=backup
MPASS=SECRET
BACKUPDIR="/mnt/backup"
MYSQL="$(which mysql)"
MYSQLDUMP="$(which mysqldump)"
GZIP="$(which gzip)"
DBPREFIX="$(hostname -s).mysqldb"
echo "Run MySQL backup"
DBS="$($MYSQL -u $MUSER -h $MHOST -p$MPASS -Bse 'show databases')"
for db in $DBS
do
FILE=${BACKUPDIR}/${DBPREFIX}.${db}.`date +%Y%m%d`.gz
$MYSQLDUMP --no-tablespaces --skip-lock-tables -u $MUSER -h $MHOST -p$MPASS $db | $GZIP -9 > $FILE
done
find -name "${BACKUPDIR}/${DBPREFIX}*" -type f -mtime +10 -exec rm -f '{}' ';'
我是 Linux 环境的新手。
请帮助我
最好的问候 Arvind Porlekar