gpt4 book ai didi

mysql - 备份所有数据库和www目录的Shell脚本

转载 作者:行者123 更新时间:2023-11-29 07:16:39 24 4
gpt4 key购买 nike

我有一个简单的 shell 脚本,每周备份一次整个 www 目录和单个数据库。它工作得很好。现在我想稍微扩展一下它,让它备份所有数据库而不仅仅是一个。我怎样才能做到这一点?

这是当前脚本

#!/bin/bash
NOW=$(date +"%Y-%m-%d-%H%M")
FILE="backup.$NOW.tar"
BACKUP_DIR="/home/user/backups/"
WWW_DIR="/var/www/"

DB_USER="dbuser"
DB_PASS="dbpass"
DB_NAME="dbName"
DB_FILE="backup.$NOW.sql"

WWW_TRANSFORM='s,^home/user/www,'
DB_TRANSFORM='s,^home/user/backups,database,'


tar -cf $BACKUP_DIR/$FILE --transform $WWW_TRANSFORM $WWW_DIR
mysqldump -u$DB_USER -p$DB_PASS $DB_NAME > $BACKUP_DIR/$DB_FILE

tar --append --file=$BACKUP_DIR/$FILE --transform $DB_TRANSFORM $BACKUP_DIR/$DB_FILE
rm $BACKUP_DIR/$DB_FILE
gzip -9 $BACKUP_DIR/$FILE

echo 'backup finished', $FILE

最佳答案

您可以简单地使用showdatabase命令。像这样在for循环中读取所有数据库并调用mysqldump命令

databases=`mysql --user=$DB_USER --password=$DB_PASS -e "SHOW DATABASES;" | tr -d "| " | grep -v Database`

for db in $databases; do
echo "Dumping database: $db"
mysqldump --force --opt --user=$DB_USER--password=$DB_PASS --databases $db > $BACKUP_DIR/`date +%Y%m%d`.$db.sql
done

关于mysql - 备份所有数据库和www目录的Shell脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37741938/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com