使用AutoMySQLBackup创建MySQL备份

使用AutoMySQLBackup创建MySQL备份 AutoMySQLBackup 是一个shell脚本,可以让您进行每日,每周和每月备份 的MySQ ...

使用AutoMySQLBackup创建MySQL备份

版本1.0
作者:Falko Timme

AutoMySQLBackup是一个shell脚本,可以让您使用mysqldump对MySQL数据库进行每日,每周和每月备份。 它可以备份多个数据库,压缩备份,备份远程数据库以及发送日志。

我不会保证这将为您工作!

1初步说明

AutoMySQLBackup使用mysqldump创建数据库的SQL转储。 请注意,mysqldump将在创建备份时锁定数据库,这取决于数据库的大小,可能需要不到一秒钟到几分钟。 如果您使用大型数据库运行高流量网站,那么AutoMySQLBackup不适合您!

如果硬盘崩溃,此脚本将无法帮助。 您应该定期复制备份,以获得最佳保护。

2使用AutoMySQLBackup

您可以下载AutoMySQLBackup,如下所示:

cd /usr/local/bin
wget http://mesh.dl.sourceforge.net/sourceforge/automysqlbackup/automysqlbackup.sh.2.5

然后打开automysqlbackup.sh.2.5并查看配置选项。 他们都很好解释。 您应至少配置以下设置:

vi automysqlbackup.sh.2.5

[...]
USERNAME=root
[...]
PASSWORD=yourrootsqlpassword
[...]
DBHOST=localhost
[...]
# List of DBNAMES for Daily/Weekly Backup e.g. "DB1 DB2 DB3"
DBNAMES="db_ispconfig web1 web2 web3"
[...]
# Backup directory location e.g /backups
BACKUPDIR="/backups"
[...]
# Email Address to send mail to? (user@domain.com)
MAILADDR="user@domain.com"
[...]

DBNAMES可以包含一个或多个数据库,以空格分隔。

如果BACKUPDIR不存在, automysqlbackup.sh.2.5将自动创建。

确保您填写正确的密码和数据库主机。 如果要备份本地数据库,请使用localhost ; 如果要备份远程数据库,请使用远程主机名(请注意,远程数据库服务器必须配置为允许远程连接!)。

现在我们必须使脚本可执行:

chmod 755 automysqlbackup.sh.2.5

现在您可以运行automysqlbackup.sh.2.5 ,如果您在/ usr / local / bin目录中:

./automysqlbackup.sh.2.5

...或从任何其他目录:

automysqlbackup.sh.2.5

这是一个示例输出:

server1:~# automysqlbackup.sh.2.5
======================================================================
AutoMySQLBackup VER 2.5
http://sourceforge.net/projects/automysqlbackup/

Backup of Database Server - server1.example.com
======================================================================
Backup Start Time Fri Oct 17 16:00:51 CEST 2008
======================================================================
Daily Backup of Database ( db_ispconfig )
Rotating last weeks Backup...


Backup Information for /backups/daily/db_ispconfig/db_ispconfig_2008-10-17_16h00m.Friday.sql
         compressed        uncompressed  ratio uncompressed_name
              37231              382465  90.3% /backups/daily/db_ispconfig/db_ispconfig_2008-10-17_16h00m.Friday.sql
----------------------------------------------------------------------
Backup End Fri Oct 17 16:00:52 CEST 2008
======================================================================
Total disk space used for backup storage..
Size - Location
68K /backups

======================================================================
If you find AutoMySQLBackup valuable please make a donation at
http://sourceforge.net/project/project_donations.php?group_id=101066
======================================================================
server1:~#

看看/ backups目录...

ls -l /backups

...你应该找到三个子目录, 每天每周每月

server1:~# ls -l /backups/
total 12
drwxr-xr-x 3 root root 4096 2008-10-17 16:00 daily
drwxr-xr-x 2 root root 4096 2008-10-17 16:00 monthly
drwxr-xr-x 3 root root 4096 2008-10-17 16:00 weekly
server1:~#

这些目录将包含以选择备份的数据库命名的子目录。 例如,如果您选择了数据库db_ispconfig ,则将有一个包含数据库转储的目录/ backups / daily / db_ispconfig

cd /backups/daily/db_ispconfig
ls -l

server1:/backups/daily/db_ispconfig# ls -l
total 40
-rw-r--r-- 1 root root 37231 2008-10-17 16:00 db_ispconfig_2008-10-17_16h00m.Friday.sql.gz
server1:/backups/daily/db_ispconfig#

.gz扩展名表示压缩。 要恢复数据库,您首先必须解压缩转储:

gunzip db_ispconfig_2008-10-17_16h00m.Friday.sql.gz

...(这将为您提供名为db_ispconfig_2008-10-17_16h00m.Friday.sql的未压缩转储),然后按照https://www.howtoing.com/faq/6_4_en.html中所述进行还原

当然,您不想手动运行automysqlbackup.sh.2.5 。 因此,我们可以为它创建一个日常的cron工作,如下所示:

cd /etc/cron.daily/
ln -s /usr/local/bin/automysqlbackup.sh.2.5 automysqlbackup