IRedMail/FAQ/Backup

From iRedMail

Revision as of 04:20, 24 September 2010 by ZhangHuangbin (Talk | contribs)
(diff) ← Older revision | Current revision (diff) | Newer revision → (diff)
Jump to: navigation, search

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.
#
Personal tools