我试图从我的 MySQL 备份中获得更多的用处。当我的备份从 cron 作业完成时,我想对其进行 gzip。这是我迄今为止进行备份的脚本。
#!/bin/sh
date=`date -Iminutes`
mysqldump --all-databases > /var/sqlbackup/sqlbackup-$date.sql -pmypassword
find /var/sqlbackup/ -mtime 3 | xargs rm
Run Code Online (Sandbox Code Playgroud)
任何帮助都是有益的,即使它是关于如何做得更好的指针。
and*_*hky 10
这是我使用的备份/维护脚本:
#!/usr/bin/sh
#backup all mysql databases
# list MySQL databases and dump each
DIR=
DATESTAMP=$(date +%Y%m%d)
DB_USER=
DB_PASS=
# remove old backups
find ${DIR} -type f -mtime +5 -exec rm -rf {} \;
DB_LIST=`mysql -u $DB_USER -p"$DB_PASS" -e'show databases;'`
DB_LIST=${DB_LIST##Database}
for DB in $DB_LIST;
do
FILENAME=${DIR}${DB}-${DATESTAMP}.sql.gz
mysqldump -u $DB_USER -p"$DB_PASS" --opt --flush-logs $DB | gzip > $FILENAME
done
mysqlcheck -u $DB_USER -p"$DB_PASS" --all-databases > /root/mysql_backups/check_errors-${DATESTAMP}.log
Run Code Online (Sandbox Code Playgroud)
该脚本为每个数据库生成单独的 gzipped 备份,这样如果一个数据库出现问题,您就不必恢复整个服务器的数据库。它还包括一些 mysql 检查健全性并找到旧的数据库备份并删除它们。
根据要求恢复:
我不得不恢复几次。它发生了。
gunzip backup_file.sql.gz
mysql -u <username> -p <database_name> < backup_file.sql
Run Code Online (Sandbox Code Playgroud)
可能有一种更“单行”的方式来做这件事……但这就是它对我有用的方式。
| 归档时间: |
|
| 查看次数: |
4455 次 |
| 最近记录: |