记录一次拉胯VPS运营商服务器的操作,端口各种被修改,迫使自动备份数据库和网站数据,然后通过shell自动文件发送到邮箱

先去邮箱申请开通POP或者SMTP服务,在此不做说明只写服务端配置

一、服务器安装邮箱依赖

yum -y install sendmail
yum install -y mailx

二、安装完后启动sendmail命令查询运行状态

service sendmail start
service sendmail status

二、配置发件人信息

vim /etc/mail.rc              #如果没有"vim"请使用"vi",或者使用"yum -y install vim"安装后再操作
#打开文件后在最后面加上以下内容
set from=xxxxxx@qq.com   #显示的发件人邮箱
set smtp=smtp.qq.com  #邮件服务器
set smtp-auth-user=xxxxx@qq.com    #发件人邮箱账号
set smtp-auth-password=password  #发件人邮箱授权码
set smtp-auth=login         #登录

三、发送邮件测试

#通过文件内容发送
mail -s 'mail test' xxx@qq.com < con.txt
#通过管道符直接发送
echo "this is my test mail" | mail -s 'mail test' xxx@qq.com
#带附件发送
echo "this is my test mail" | mail -a /root/client.c -s 'mail test' xxx@qq.com

四、将备份目录下的文件压缩并通过邮箱发送

脚本1,将一个目录压缩并发送:

#!/bin/bash

FROM_EMAIL="发件人(请保持与第二步的信息一致)"
TO_EMAIL="收件方1,收件方2"

# Compress all files in /www/backup/database directory into a single file
#将/www/backup/database目录中的所有文件压缩到一个文件中
tar -czf /tmp/database.tar.gz /www/backup/database/*

# Send email with compressed file as attachment
#以压缩文件作为附件发送电子邮件
echo -e "`date "+%Y-%m-%d %H:%M:%S"` : Please check the attached database backup." | mailx \
-r "From:TingWin <${FROM_EMAIL}>" \
-a /tmp/database.tar.gz \
-s "【Critical】: DSHS database backup" ${TO_EMAIL}

# Remove temporary compressed file
#删除临时压缩文件
rm /tmp/database.tar.gz

脚本2,将两个不同目录压缩并发送:

#!/bin/bash 

FROM_EMAIL="发件人(请保持与第二步的信息一致)"
TO_EMAIL="收件方1,收件方2"

DATABASE_DIR="/www/backup/database/"
SITE_DIR="/www/backup/site/"

TEMP_DIR=$(mktemp -d)

# Copy all files from database and site directories to temporary directory
#将数据库和站点目录中的所有文件复制到临时目录
cp -r "${DATABASE_DIR}"* "${TEMP_DIR}/"
cp -r "${SITE_DIR}"* "${TEMP_DIR}/"

# Archive all files in temporary directory as a single zip file
#将临时目录中的所有文件存档为单个zip文件
ZIP_FILE="${TEMP_DIR}/backup.zip"
zip -r "${ZIP_FILE}" "${TEMP_DIR}/"

# Send email with zip file attachment and message
#发送带有zip文件附件和消息的电子邮件
echo -e "$(date "+%Y-%m-%d %H:%M:%S") : Please check the backup attachment." | mailx \
-r "From: alertAdmin <${FROM_EMAIL}>" \
-a "${ZIP_FILE}" \
-s "Backup" "${TO_EMAIL}"

# Delete temporary directory and zip file
#删除临时目录和zip文件
rm -rf "${TEMP_DIR}"