Gzip
備份 MySQL 數據庫和 gzip
我正試圖從我的 MySQL 備份中獲得更多用處。我想在 cron 作業完成後對我的備份進行 gzip 壓縮。這是我到目前為止進行備份的腳本。
#!/bin/sh date=`date -Iminutes` mysqldump --all-databases > /var/sqlbackup/sqlbackup-$date.sql -pmypassword find /var/sqlbackup/ -mtime 3 | xargs rm
任何幫助都是有益的,即使它是關於如何做得更好的指針。
這是我使用的備份/維護腳本:
#!/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
該腳本會為每個數據庫生成一個單獨的 gzip 備份,這樣如果一個數據庫出現問題,您就不必恢復整個伺服器的數據庫。它還包括一些 mysql 檢查健全性並找到舊的數據庫備份並刪除它們。
根據要求恢復:
我不得不恢復幾次。它發生了。
gunzip backup_file.sql.gz mysql -u <username> -p <database_name> < backup_file.sql
可能有一種更“單行”的方式來做到這一點……但這就是它對我有用的方式。