快捷搜索:   nginx

设置VPS自动备份mysql并压缩发到你邮箱的方法教程

VPS可以通过脚本命令执行每天自动备份mysql数据库,并发送到指定邮箱,比wordpress的一些备份plugin都好用~现在就让我来教您该如何使用吧,一定要认真学,很有用的。

1、用putty登录你的VPS


2、配置mutt发件环境

安装操作系统时,一般Linux都会默认安装mutt,CentOS也不例外,可以使用which mutt查看mutt安装的路径,如果没有安装可以在命令行下执行
yum install mutt
就可以安装mutt,安装完mutt后,在/usr/share/doc/mutt* 下有一份很好的手册,可以看一下。
另外mutt依赖的是sentmail,一般linux里面也是有内置,如果没有那我们也安装一份

//检查

ps -ef | grep sendmail


//安装

yum install sendmail


//启动

service sendmail start


//开机启动

chkconfig --level 2345 sendmail on


mutt的配置
安装完之后,使用find命令查找Muttrc这个文件
find / -name Muttrc 
会发现这个文件在/etc/Muttrc这个位置,而不是网上很多教程说的/root/.muttrc这个文件。那么我在配置时,首先配置了/etc/Muttrc这个文件,然后又向/root下拷贝了一份,将文件改名为.muttrc。其实发现有些系统不需要向/root下拷贝.muttrc文件也可以正确收发邮件。
mutt缺省是调用/usr/sbin/sendmail来发送邮件的,也可以配置使用msmtp等来发送邮件
/etc/Muttrc文件的部分配置如下,我就在文件最后追加了以下配置:

set from = youremail@bnxb.com
set envelope_from = yes
my_hdr From: youremail@bnxb.com
my_hdr Reply-To: youremail@bnxb.com
ignore headers *
unignore headers from

3.发送邮件
用ps -ef | grep sendmail命令,查看sendmail服务是否启动,没有启动的话启动之
在shell命令行执行
echo "test" | /usr/bin/mutt -s "email send at $dd !" youremail@inc.com
很快你就会在自己的邮箱收到一封由root发出的邮件了哦

最后,贴一下mutt的语法
mutt [-hnpRvxz][-a<文件>][-b<地址>][-c<地址>][-f<邮件文 件>][-F<配置文件>][-H<邮件草稿>][-i<文件>][-m<类型>] [-s<主题>][邮件地址]
 参 数:
-a <文件> 在邮件中加上附加文件。
-b <地址> 指定密件副本的收信人地址。
-c <地址> 指定副本的收信人地址。
-f <邮件文件> 指定要载入的邮件文件。
-F <配置文件> 指定mutt程序的设置文件,而不读取预设的.muttrc文件。
-h 显示帮助。
-H <邮件草稿> 将指定的邮件草稿送出。
-i <文件> 将指定文件插入邮件内文中。
-m <类型> 指定预设的邮件信箱类型。
-n 不要去读取程序培植文件(/etc/Muttrc)。
-p 在mutt中编辑完邮件后,而不想将邮件立即送出,可将该邮件暂缓寄出。
-R 以只读的方式开启邮件文件。
-s <主题> 指定邮件的主题。
-v 显示mutt的版本信息以及当初编译此文件时所给予的参数。
-x 模拟mailx的编辑方式。
-z 与-f参数一并使用时,若邮件文件中没有邮件即不启动mutt。

3、创建备份文件夹

cd ~ mkdir backups mkdir backups/archives


3、新建一个名为“mysql.sh”的文件,并输入下列代码:

#!/bin/bash
cd /home/username/backups/
#username改为你登录ssh时用的用户名
mkdir mysql suffix=$(date +%y%m%d)
mysqldump --opt -uUser -pPass -h mysqlA.domain.com db_nameA > mysql/db_nameA.$suffix.sql
#User为数据库用户名,pass为数据库用户密码,mysqlA.domain.com为数据库地址,db_nameA为数据库名,请根据你的情况修改。
tar zcf archives/mysql_backup.$suffix.tar.gz mysql/*
rm -r mysql/
mutt you@domain.com -a /home/username/backups/archives/mysql_backup.$suffix.tar -s "MySQL Backup"#you@domain.com修改为你准备用于收取备份压缩包的邮箱。


保存后,上传到backups文件夹中。

4、在putty中运行

dos2unix ~/backups/mysql.sh chmod 755 ~/backups/mysql.sh 
5、新建Cron任务,定时执行 /home/User/backups/mysql.sh 


时间自行设置,设置完就根据你设置时间运行备份MySQL程序,并发送备份压缩包到你指定的邮箱。

您可能还会对下面的文章感兴趣: