vps自动备份网站数据库_vps自动备份网站数据库并发送邮箱通知

更新时间:2017-06-28    来源:php常用代码    手机版     字体:

【www.bbyears.com--php常用代码】

 代码如下

 

#!/bin/bash
##Program: This script will be executed at a known time to create a database"s backup and upload it to another host.
#Info of database:
#Name: ninthday_sql  username: ninthday_sql    Password: ninthday_passwd
#
#Info of backup host:
#FTPName:   ninthday_ftp
#FTPPasswd: ninthday_passwd
#Backup dir:backups
#
#Contact:http://www.111cn.net
##

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

# 定义数据库的信息,其中Name为数据库名,Username为数据库用户名,Password为密码 #
Name=ninthday_sql
Username=ninthday_sql
Password=ninthday_passwd

# 定义本地备份路径 #
Localdir=/home/chroot/home/ninthday

# 定义本地备份的临时名称 #
LBackname=backup-blog-$(date +%Y%m%d).sql

# 定义本地三天前备份的名称 #
LOldbackup=backup-blog-$(date -d -3day +%Y%m%d).sql.tar.gz

# 定义远程备份名称 #
RBackname=backup-blog-$(date +%Y%m%d).sql.tar.gz

# 定义远程5天前备份名称 #
ROldbackup=backup-blog-$(date -d -5day +%Y%m%d).sql.tar.gz

# 定义远端FTP信息 #
FTPHost=216.18.217.23
FTPName=ninthday_ftp
FTPPasswd=ninthday_passwd

# 定义用户 #
user=ninthday

# 定义发送和接收通知邮件的地址(须在不同的域) #
sender=root@ninthday.net
receiver=kailash@126.com

# 开始创建本地文件 #

mysqldump -u$Username -p$Password $Name > $Localdir/backups/$LBackname

# 压缩至本地 #
tar zPcf $Localdir/backups/$RBackname $Localdir/backups/$LBackname

#  上传数据 #
lftp $FTPHost -u $FTPName,$FTPPasswd << EOF
cd backups
mput $Localdir/backups/$RBackname
mrm $ROldbackup
bye
EOF

# 删除本地多余及过期数据 #
rm -f $Localdir/backups/$LBackname
if [ -e $Localdir/backups/$LOldbackup ] ; then
    rm -f $Localdir/backups/$LOldbackup
fi

# 写日志文件 #
echo "A datebase"s backup has already created and uploaded to the host on $(date +%F)." >> $Localdir/logs/dbbackup.log

# 更改权限  #
chown $user:$user $Localdir/backups/$RBackname

# 发送通知邮件 #
sendmail -t < From: Host <$sender>
To:  $receiver
Subject: Database succeeded in creating backup.
----------------------------------------------------------
The VPS has succeeded in creating and uploading database"s backup.

It holds 5 database"s backups created on the latest 5 sequential days
on remote host and 3 database"s backups on localhost(/backups/).

Please download the backup files to your computer on a regular time schedule.

Don"t reply this email!

Contact: harid@ninthday.net
http://www.111cn.net

----------------------------------------------------------
EOF

exit 0

本文来源:http://www.bbyears.com/jiaocheng/33706.html