IRedMail/FAQ/Backup
From iRedMail
Revision as of 04:20, 24 September 2010 by ZhangHuangbin (Talk | contribs)
Backup MySQL Databases
There's a shell script available for backing up MySQL databases: http://iredmail.googlecode.com/hg/iRedMail/tools/backup_mysql.sh
Please read header of this file carefully before you execute it:
# Filename: backup_mysql.sh # Author: Zhang Huangbin (zhb@iredmail.org) # Date: 2007.09.16 # Purpose: Backup specified mysql databases with command 'mysqldump'. # License: This shell script is part of iRedMail project, released under # GPL v2. ########################### # REQUIREMENTS ########################### # # * Required commands: # + mysqldump # + du # + bzip2 or gzip # If bzip2 is not available, change 'CMD_COMPRESS' # # to use 'gzip'. # ########################### # USAGE ########################### # # * It stores all backup copies in directory '/backup' by default, you can # change it in variable $BACKUP_ROOTDIR below. # # * Set correct values for below variables: # # BACKUP_ROOTDIR # MYSQL_USER # MYSQL_PASSWD # DATABASES # DB_CHARACTER_SET # COMPRESS # DELETE_PLAIN_SQL_FILE # # * Add crontab job for root user (or whatever user you want): # # # crontab -e -u root # 1 4 * * * bash /path/to/backup_mysql.sh # # * Make sure 'crond' service is running, and will start automatically when # system startup: # # # ---- On RHEL/CentOS ---- # # chkconfig --level 345 crond on # # /etc/init.d/crond status # # # ---- On Debian/Ubuntu ---- # # update-rc.d cron defaults # # /etc/init.d/cron status # ########################### # DESCRIPTION ########################### # # $BACKUP_ROOTDIR # Default is /backup # |- mysql/ # Used to store all backed up databases. # |- YYYY.MM.DD/ # YEAR.MONTH.DAY # |- DB.YYYY.MONTH.DAY.sql # Backup copy, plain SQL file. # # Note: it will be removed immediately # # if you have DELETE_PLAIN_SQL_FILE='YES'. # |- DB.YYYY.MONTH.DAY.sql.bz2 # Backup copy, compressed SQL file. # # |- logs/ # |- YYYY.MM/ # YEAR.MONTH # |- mysql-YYYY.MM.DD.log # Log file. #
