配置服务器定时发送备份数据库表到邮箱
2024-05-05 本文已影响0人
枯萎天然呆
linux邮件发送
一、安装并开启服务(postfix)(mailx)
yum install -y mailx #安装服务
yum install -y postfix #安装服务
systemctl start postfix #启动服务
systemctl status postfix #查看服务状态
如图所示证明postfix服务启动成功,正在运行
image.png
确保可以正常发送邮箱
echo "邮件内容" | mail -s "邮件主题" 收件人
示例
image.png
如果提示命令不存在 执行
yum install -y mailx
三、拓展-配置公网发送邮件
1、准备公网邮箱(QQ、163、126)
2、获取邮箱授权码(此处以QQ邮箱为例进行获取)
登录进入网页版QQ邮箱
image.png
image.png
\
通过绑定手机发送短信获取到16位的验证码并复制保存下来
3、配置公网发送邮件
vim /etc/mail.rc
在文件结尾追加以下内容:
set from=xxxxxx@xx.com #配置服务发送短信的邮箱地址
set smtp=smtp.qq.com #使用的哪一家企业的邮箱(qq,163,126)
set smtp-auth-user=xxxxxx@xx.com #配置服务发送短信的邮箱地址
set smtp-auth-password=XXXXXXXXXXXX #发送短信获取的16位验证码
set smtp-auth=login
4、数据库表备份及发送脚本
#!/bin/bash
# MySQL数据库配置
DB_USER="student"
DB_PASSWORD="##########"
DB_HOST="11.1.10.46"
DB_PORT="3306" # 例如:3306
DB_NAME="student"
TABLE1="student1"
TABLE2="student2"
# 备份文件配置
BACKUP_DIR="/mnt/data/www/path/to/backup/directory"
BACKUP_FILE="db_backup__$(date +%Y%m%d%H%M%S).sql.gz"
# 收件人邮箱
RECIPIENT_EMAIL="xxxxxx@qq.com"
# 邮件主题
EMAIL_SUBJECT="数据库表备份"
# 创建备份并压缩
mysqldump -u $DB_USER -p$DB_PASSWORD -h $DB_HOST -P $DB_PORT $DB_NAME $TABLE1 $TABLE2 | gzip > $BACKUP_DIR/$BACKUP_FILE
# 检查备份是否成功创建
if [ $? -eq 0 ]; then
echo "备份文件创建成功: $BACKUP_DIR/$BACKUP_FILE"
# 发送邮件
echo "正在通过邮件发送备份文件..."
echo -e "备份数据库表 $TABLE1 and $TABLE2.\n" | mailx -s "$EMAIL_SUBJECT" -a "$BACKUP_DIR/$BACKUP_FILE" $RECIPIENT_EMAIL
echo "备份文件已通过邮件发送成功"
else
echo "备份文件创建失败"
fi
5.到所在目录执行脚本查看是否备份并发送
./beifen.sh
6、确保给脚本执行权限
chmod +x beifen.sh
7.编辑 crontab 文件
crontab -e
8、添加以下行来设定备份时间(例如,每天凌晨1点执行):
0 1 * * * /path/to/your/beifen.sh
-
保存并退出
编辑完成后,保存并退出编辑器。cron 服务将自动加载并开始按照新配置执行任务。 -
检查 cron 任务
要查看当前用户的所有 cron 任务,可以使用以下命令:
crontab -l