我是 bash 脚本的新手,我尝试编写一个 bash 脚本来运行 mysql 的两种备份过程,第一种是将所有 mysql 数据库转储到单个转储文件中,另一种是将每个数据库备份到单个文件中,我搜索了一些编写 bash 脚本的技巧,结果如下所示,但似乎没有按我的预期工作,我尝试执行脚本但什么也没发生,很高兴有人能帮我修复它。
/bin/bash #!/bin/bash 时间戳=$(日期“+%d-%m-%Y”) 备份目录="/nas/mysql" MYSQL=/usr/bin/mysql MYSQLDUMP=/usr/bin/mysqldump 备份所有转储() 查找 /nas/mysql/all_dump -maxdepth 1 -type d -mtime +30 -exec rm -rf {} \; mkdir -p "$BACKUP_DIR/all_dump/$TIMESTAMP" $MYSQLDUMP --force --events --all-databases | gzip > “/$BACKUP_DIR/all_dump/$TIMESTAMP/dump.sql.gz” } 备份所有用户(){ 查找 /nas/mysql/all_users -maxdepth 1 -type d -mtime +30 -exec rm -rf {} \; mkdir -p "$BACKUP_DIR/all_users/$TIMESTAMP" 数据库 =`$MYSQL -e“显示数据库;”| grep -Ev“(数据库|信息架构|性能架构)”` 对于 $databases 中的 db;执行 $MYSQLDUMP --force --opt --databases“$db”|gzip>“$BACKUP_DIR/all_users/$TIMESTAMP/$db.gz” 完毕 }
答案1
/bin/bash #!/bin/bash 时间戳=$(日期“+%d-%m-%Y”) 备份目录="/nas/mysql" MYSQL=/usr/bin/mysql MYSQLDUMP=/usr/bin/mysqldump 备份所有转储() 查找 /nas/mysql/all_dump -maxdepth 1 -type d -mtime +30 -exec rm -rf {} \; mkdir -p "$BACKUP_DIR/all_dump/$TIMESTAMP" $MYSQLDUMP --force --events --all-databases | gzip > “/$BACKUP_DIR/all_dump/$TIMESTAMP/dump.sql.gz” } 备份所有用户(){ 查找 /nas/mysql/all_users -maxdepth 1 -type d -mtime +30 -exec rm -rf {} \; mkdir -p "$BACKUP_DIR/all_users/$TIMESTAMP" 数据库 =`$MYSQL -e“显示数据库;”| grep -Ev“(数据库|信息架构|性能架构)”` 对于 $databases 中的 db;执行 $MYSQLDUMP --force --opt --databases“$db”|gzip>“$BACKUP_DIR/all_users/$TIMESTAMP/$db.gz” 完毕 }
您需要调用该函数
backup_all_dump
您需要调用该函数
backup_all_users