使用AutoMySQLBackup 数据库自动备份
1.下载地址
AutoMySQLBackup的下在地址为http://sourceforge.net/projects/automysqlbackup/ 。 目前最新版本为automysqlbackup-v3.0_rc6.tar.gz
2.解压缩
把下载的automysqlbackup-v3.0_rc6.tar.gz文件拷贝到/usr/tmp下面
在/usr/local下面新建一个automysqlbackup文件夹,并进入这个文件夹
cd /usr/local
mkdir automysqlbackup
cd automysqlbackup
然后tar解压缩一下。
tar -xzvf /usr/tmp/automysqlbackup-v3.0_rc6.tar.gz
3.安装
安装一下,命令为
./install.sh
中途会有两个询问配置文件安装目录的地方,之间回车就好
我们先到/etc/automysqlbackup下面看看有什么东西好了
cd /etc/automysqlbackup
ls
4.修改配置文件
我们要用到的是automysqlbackup.conf文件:
文件里有一些基本的配置信息,比如连接mysql server的用户名、密码、IP地址神马的。
# Username to access the MySQL server e.g. dbuser
CONFIG_mysql_dump_username='root'
# Password to access the MySQL server e.g. password
CONFIG_mysql_dump_password='1234'
# Host name (or IP address) of MySQL server e.glocalhost
CONFIG_mysql_dump_host='localhost'
继续,有个重要的配置,就是backup存放的地方咯!
# Backup directory location e.g /backups
CONFIG_backup_dir='/var/backup/db'
往下看,还有你要配置的database的名称,当然可以精确到表名,也可以只指定到database的名称。或者干脆直接留空,不过留空的话会默认备份所有的数据库……这样磁盘可能会爆炸吧……
# Databases to backup
# List of databases for Daily/Weekly Backup e.g. ( 'DB1' 'DB2' 'DB3' ... )
# set to (), i.e. empty, if you want to backup all databases
CONFIG_db_names=()
# You can use
#declare -a MDBNAMES=( "${DBNAMES[@]}" 'added entry1' 'added entry2' ... )
# INSTEAD to copy the contents of $DBNAMES and add further entries (optional).
# List of databases for Monthly Backups.
# set to (), i.e. empty, if you want to backup all databases
CONFIG_db_month_names=()
# List of DBNAMES to EXLUCDE if DBNAMES is empty, i.e. ().
CONFIG_db_exclude=( 'information_schema' 'wiqun' )
另外,还有配置weekly、monthly、daily之类的时间间隔的设置
# Rotation Settings
# Which day do you want monthly backups? (01 to 31)
# If the chosen day is greater than the last day of the month, it will be done
# on the last day of the month.
# Set to 0 to disable monthly backups.
CONFIG_do_monthly="22"
# Which day do you want weekly backups? (1 to 7 where 1 is Monday)
# Set to 0 to disable weekly backups.
CONFIG_do_weekly="7"
# Set rotation of daily backups. VALUE*24hours
# If you want to keep only today's backups, you could choose 1, i.e. everything older than 24hours will be removed.
CONFIG_rotation_daily=7
# Set rotation for weekly backups. VALUE*24hours
CONFIG_rotation_weekly=35
# Set rotation for monthly backups. VALUE*24hours
CONFIG_rotation_monthly=150
前两个都比较好理解,就是每个月或者每一周的什么时候进行自动备份,如果不想使用每周备份或者每月备份的话,相应的地方设置0即可。那么后面的rotation又是什么意思呢?其实就是日志保存的期限啦。
比如说CONFIG_rotation_weekly=35的意思就是说按周存储的备份最多保留35天。
再继续,可以配置发送邮件的一些配置,比如邮件地址啦、还有附件的内容啦
# What would you like to be mailed to you?
# - log : send only log file
# - files : send log file and sql files as p_w_uploads (see docs)
# - stdout : will simply output the log to the screen if run manually.
# - quiet : Only send logs if an error occurs to the MAILADDR.
CONFIG_mailcontent='files'
# Set the maximum allowed email size in k. (4000 = approx 5MB email [see docs])
CONFIG_mail_maxattsize=4000
# Allow packing of files with tar and splitting it in pieces of CONFIG_mail_maxattsize.
CONFIG_mail_splitandtar='yes'
# Use uuencode instead of mutt. WARNING: Not all email clients work well with uuencoded p_w_uploads.
#CONFIG_mail_use_uuencoded_p_w_uploads='no'
# Email Address to send mail to? (user@domain.com)
CONFIG_mail_address='elarwei@gmail.com'
关闭ssl支持
# Use ssl encryption with mysqldump?
CONFIG_mysql_dump_usessl='no'
5.配置自动备份
Linux系统中,可以到/etc/cron.d文件夹下面新建一个automysqlbackup文件使用命令去编辑千万不要使用文本编辑器去编辑一定要使用命令 vim automysqlbackup 按 i 开始编辑,添加下面内容
0 2 * * * root /usr/local/bin/automysqlbackup 每天凌晨2点执行。如果找不到文件就要配置环境变量,因为我们脚本是放在在/usr/local/bin。系统自动配置了环境变量,所以这里不需要配置。如何按ESC :wq 保存即可