本文最后更新于185 天前,其中的信息可能已经过时,如有错误,欢迎留言。
前言
在数据安全与业务连续性日益重要的当下,数据库备份已成为企业运维的核心环节。无论是应对意外删除、系统故障,还是满足合规审计需求,一份可靠的备份策略都能为数据安全保驾护航。本Shell脚本旨在通过自动化流程,实现MySQL数据库的定期备份、压缩、远程传输及邮箱通知,帮助用户以简洁高效的方式构建起数据保护的第一道防线,最大限度降低数据丢失风险。
前置条件
密钥
为了实现免密码的文件传输,我们可以通过 SSH 密钥认证来优化脚本。以下是具体的实现步骤:
首先在本地服务器生成密钥,执行命令后会让你输入内容,可以直接回车跳过:
ssh-keygen -t rsa -b 4096 -f ~/.ssh/id_rsa
会得到两个文件,上面为私钥,下方为公钥:
-rw------- 1 root root 1679 4月 25 16:54 /root/.ssh/id_rsa
-rw-r--r-- 1 root root 401 4月 25 16:54 /root/.ssh/id_rsa.pub
把公钥上传到远程服务器:
ssh-copy-id -i ~/.ssh/id_rsa.pub [email protected]
邮箱通知
首先先看一下是否mailx(centos),如果有会显示路径:
[root@hspEdu01 ~]# which mailx
/usr/bin/mailx # 我的路径
如果有,可以设置一下文件/etc/mail.rc,在文件后面加上这些
授权码在网易邮箱大师的设置里面,打开POP3/SMTP服务,然后新增授权密码,就得到了授权码:
set [email protected]
set smtp=smtp.163.com
set [email protected]
set smtp-auth-password=授权码
set smtp-auth=login
设置完之后可以测试一下
echo "测试邮件" | mailx -s "测试" [email protected]
完整代码
#!/bin/bash
#目标目录
BACKUP=/data/backup
DATETIME=$(date +%Y_%m_%d_%H_%M_%S)
HOST=localhost # 服务器IP
DB_USER=root # 数据库的用户名
DB_PW=hspedu01 # 数据库的密码
DATABASE=temp # 需要备份的数据库
[email protected] # 需要发送到的邮箱
REMOTE_HOST=xxx.xxx.xxx.xxx # 远程主机
# 提前创建好目录
[ ! -d "${BACKUP}/${DATETIME}" ] && mkdir -p "${BACKUP}/${DATETIME}"
# 数据库备份并压缩到指定目录
mysqldump -u${DB_USER} -p${DB_PW} --host=${HOST} -q -R --databases ${DATABASE} | gzip > ${BACKUP}/${DATETIME}/${DATETIME}.sql.gz
# 切到指定目录并压缩
cd ${BACKUP}
tar -zcvf $DATETIME.tar.gz ${DATETIME}
# 删除多余的目录
rm -rf ${BACKUP}/${DATETIME}
# 对修改时间超过10天的备份删掉
find ${BACKUP} -mtime +10 -name "*.tar.gz" -exec rm -rf {} \;
# 确保远程目录存在
ssh $REMOTE_HOST "mkdir -p $BACKUP"
# 上传文件到远程服务器
scp /${BACKUP}/$DATETIME.tar.gz root@${REMOTE_HOST}:/${BACKUP}/
# 检查远程服务器上是否存在备份文件
if ssh root@${REMOTE_HOST} "[ -f /${BACKUP}/$DATETIME.tar.gz ]"; then
STATUS="上传成功"
MSG="远程文件存在,备份上传成功!"
else
STATUS="上传失败"
MSG="远程文件不存在,备份上传失败,请检查!"
fi
# 发送邮件通知
echo "$MSG" | mailx -s "${DATABASE} 备份${STATUS}($DATETIME)" ${EMAIL}




reliable weed delivery usa available nationwide in just days
https://shorturl.fm/8st7w
Trying to find some good options and stumbled on phlbest. Worth a browse if you’re bored lol. Here it is for you: phlbest.
Interesting points! Secure platforms are key, and seeing robust KYC processes like with Winph99 builds trust. Considering a winph99 download might be a good move for a streamlined experience, especially with those Philippines-friendly options. Great article!
What’s up guys? Gave yo88vina a whirl. Not bad, not amazing, just alright. Has many Vietnamese favorite games, which is cool for some users. The graphics, while not overly stylized, are acceptable. Come see it for yourself yo88vina.
Interesting read! It’s cool to see platforms like marlboro ph games emphasizing strategy – reminds me of the “know yourself” approach they highlight. Good content! 👍