【问题标题】:MySQL backup script with notification带有通知的 MySQL 备份脚本
【发布时间】:2018-05-20 20:14:23
【问题描述】:

整个周末我都在网上搜索,希望能找到各种我可以编辑的脚本来实现我的目标。

我正在尝试创建一个脚本,该脚本将自动备份和压缩所有 mysql 数据库到本地主机上的单个文件,然后在电子邮件中输出备份的数据库列表以及每个数据库的大小

使用 Centos7 和最新的 mysql(mariaDB)(2018 年 5 月安装)和 mailx 作为邮件代理

这是我目前的脚本...

#!/bin/bash
# Custom script to backup all MySQL dbs on localhost
# and output db list and sizes to email

# Some Variables
myuser="root"
mypass="******"

# Get current date
# date +"%d-%m-%y %T"

# Get list of DBs to backup
mysql -u $myuser -p$mypass -e 'show databases' > dblist

# Cleanup dblist
sed -i '/information_schema/d' dblist
sed -i '/mysql/d' dblist
sed -i '/performance_schema/d' dblist
sed -i '/Database/d' dblist

for db in $(mysql -u root -p****** -e 'show databases');
do
if [[ "$db" != *Database* && "$db" != *schema* && "$db" != "mysql" && "$db" != *performance* && "$db" != "mysql" ]];
then
mysqldump -u root -p****** $db | gzip -c > /backups/WEB02DBs/$db.sql.gz
fi
done

echo $dblist | mail -s "WEB02 DBs Backed UP" myemail@email.com

如果我在最后的 echo 中只使用 $db,它只包括电子邮件正文中的性能 db,基本上我尝试在电子邮件中获取 dbs 列表的任何其他内容都会出现 emtpy

数据库大小部分我无法正确处理,要么存在一些语法错误,要么没有将任何内容放入电子邮件中,即使我将结果输出到电子邮件正文为空的文件

前几个变量是我尝试在脚本中使用 $myuser 和 $mypass 而不是为每个函数设置 root/密码

然后我还可以获取数据库列表,并“手动”删除系统数据库

谁能帮我搞定这个工作?

【问题讨论】:

    标签: mysql bash shell centos7 mailx


    【解决方案1】:

    我猜你想要这样的东西

    for db in $(mysql -u root -p****** -e 'show databases');
    do
    if [[ "$db" != *Database* && "$db" != *schema* && "$db" != "mysql" && "$db" != *performance* && "$db" != "mysql" ]];
    then
        mysqldump -u root -p****** $db | gzip -c > /backups/WEB02DBs/$db.sql.gz && \
        printf '%s backed up\n' "$db"
    fi
    done | mail -s "WEB02 DBs Backed UP" myemail@email.com
    

    所以所有输出到电子邮件。

    您不应在脚本中包含密码。

    【讨论】:

    • 感谢您将所有备份的数据库都放入电子邮件中,关于如何获得数据库大小的任何建议?所以我应该把脚本的mysql密码放在哪里,如果你不介意我问的话。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-08-03
    • 1970-01-01
    • 1970-01-01
    • 2011-03-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多