配置服务器定时发送备份数据库表到邮箱

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
  1. 保存并退出
    编辑完成后,保存并退出编辑器。cron 服务将自动加载并开始按照新配置执行任务。

  2. 检查 cron 任务
    要查看当前用户的所有 cron 任务,可以使用以下命令:

crontab -l
上一篇下一篇

猜你喜欢

热点阅读