Ubuntu Linux备份MySQL服务器Shell脚本

时间:2020-01-09 10:45:38  来源:igfitidea点击:

我正在使用CMS软件和MySQL作为数据库服务器。
如何将所有mysql服务器数据库备份到名为10.1.5.2的ftp服务器IP地址?

解决方法:可以使用mysqldump命令备份数据库。

mysqldump客户端是一个备份程序。
它可以用于转储数据库或者数据库集合以进行备份或者将数据传输到另一台SQL Server。
转储包含用于创建表或者填充表的SQL语句,或者同时包含两者。

数据库转储后,您需要将其上传到ftp服务器。
使用lftp客户端上载所有文件。

安装lftp

lftp是一个文件传输程序,它允许与其他主机的复杂ftp,http和其他连接。
如果指定了站点,则lftp将连接到该站点,否则必须使用open命令建立连接。
要安装lftp,请执行:

sudo apt-get install lftp

Shell脚本来备份MySQL数据库服务器

以下是shell脚本。
它将所有数据库转储到/backup/mysql,然后将其上传到FTP服务器。
使用脚本之前,您需要设置正确的用户名和密码:

#!/bin/bash
### MySQL Server Login Info ###
MUSER="root"
MPASS="MYSQL-ROOT-PASSWORD"
MHOST="localhost"
MYSQL="$(which mysql)"
MYSQLDUMP="$(which mysqldump)"
BAK="/backup/mysql"
GZIP="$(which gzip)"
### FTP SERVER Login info ###
FTPU="FTP-SERVER-USER-NAME"
FTPP="FTP-SERVER-PASSWORD"
FTPS="FTP-SERVER-IP-ADDRESS"
NOW=$(date +"%d-%m-%Y")
 
### See comments below ###
### [ ! -d $BAK ] && mkdir -p $BAK || /bin/rm -f $BAK/* ###
[ ! -d "$BAK" ] && mkdir -p "$BAK"
 
DBS="$($MYSQL -u $MUSER -h $MHOST -p$MPASS -Bse 'show databases')"
for db in $DBS
do
FILE=$BAK/$db.$NOW-$(date +"%T").gz
$MYSQLDUMP -u $MUSER -h $MHOST -p$MPASS $db | $GZIP -9 > $FILE
done
 
lftp -u $FTPU,$FTPP -e "mkdir /mysql/$NOW;cd /mysql/$NOW; mput /backup/mysql/*; quit" $FTPS

将脚本另存为/home/your-name/mysql.backup.sh文件。
设置可执行文件权限:

$ chmod +x /home/your-name/mysql.backup.sh

要备份MySQL,请执行:

/home/your-name/mysql.backup.sh

或者

sudo /home/your-name/mysql.backup.sh

将MySQL备份脚本作为cron作业运行

要使过程自动化,请设置cron作业。
例如,每天在午夜(即每天一次)运行备份,请执行:

$ sudo crontab -e

追加以下cron作业:

@midnight /home/you/mysql.backup.sh >/dev/null 2>&1

保存并关闭文件。
请注意,以上脚本应与其他Linux发行版或者UNIX像oses一起使用。