加入收藏 | 设为首页 | 会员中心 | 我要投稿 佛山站长网 (https://www.0757zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 服务器 > 搭建环境 > Linux > 正文

CentOS6.3下使用SHELL备份系统文件并实现邮件发送

发布时间:2016-11-01 03:04:38 所属栏目:Linux 来源:网络整理
导读:系统环境: CentOS6.3 MUTT: YUM默认源安装 1.安装MUTT邮件客户端 # yum install mutt -y 2.创建脚本 # vi /etc/rc.d/mail_to_bak_daily.sh (版本一) ----------

# 5.清除临时文件

cd /tmp

 rm -rf $mail_content

---------------------------------------------------------

(版本二) 推荐

注:此版本将附件分开发送,对邮箱同时发送多个大附件有收不到的几率的情况,可按照如下版本重新配置

--------------------------------------------------------

#!/bin/bash

PATH=/bin:/usr/bin:/sbin:/usr/sbin::/usr/local/bin:/usr/local/sbin:/usr/local/mysql/bin;

export PATH

export LANG=C

# 系统文件备份路径

basedir=/backup/daily

# 数据库信息

user=root

passwd=123456

# 定义mysql备份路径

mysql_db_bak=$basedir/mysql_db_bak/$(date +%F_%H%M)

if [ ! -d "$mysql_db_bak" ];

 then

    mkdir -p $mysql_db_bak

fi

# 定义www备份路径

www_src_bak=$basedir/www_src_bak/$(date +%F_%H%M)

if [ ! -d "$www_src_bak" ];

 then

    mkdir -p $www_src_bak

查看本栏目更多精彩内容:http://www.bianceng.cn/OS/Linux/

fi

# 备份文件

mysql_bak=$mysql_db_bak/wordpress.sql.gz

www_bak=$www_src_bak/www.tar.bz2

# 定义备份文件作为附件的数组

all_bak=($mysql_bak $www_bak)

# 邮件标题

mail_subject="www.showerlee.com_daily_backup"

# 邮件内容

mail_content_mysql="send MySQL_BAK at $(date +%F_%H%M)"

mail_content_www="send WWW_SRC at $(date +%F_%H%M)"

# 定义内容数组

mail_content=("$mail_content_mysql" "$mail_content_www")

# 邮件地址

mail_address="test@example.com"

# 1. 备份MySQL (数据库目录在/usr/local/mysql)

mysqldump -u $user -p$passwd --opt --skip-lock-tables  --flush-logs  --database wordpress | gzip > $mysql_bak

# 2.备份www源代码:

cd /usr/local

 tar -jpcf $www_bak www

# 3.发送附件

for((i=0; i!=${#all_bak[@]}; ++i))

{

 echo ${mail_content[i]} | mutt -s $mail_subject $mail_address -a ${all_bak[i]}

}

--------------------------------------------------------

注:如果报如下错误

------------------

postdrop: warning: uid=0: File too large

sendmail: fatal: root(0): message file too big

Error sending message, child exited 75 (Deferred.).

Could not send the message.

------------------

是由于超过系统默认发送附件大小,修改成如下大小即可(2G)

# postconf -e "message_size_limit = 2048000000"

# postconf -e "mailbox_size_limit = 2048000000"

(编辑:佛山站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读