网站脚本备份并记录日志

前段时间安装了百度云盘的python版,现在通过脚本实现文件上传及备份完成将日志发送到邮箱,及时获取备份情况。

注:必须安装百度云盘python版及mutt 根据具体情况修改main.sh脚本里的内容

建立了两个脚本 一个计划任务

start.sh脚本:

#!/usr/bin/env bash
#Date:   2015-1-2
#Author: Created by  龙魂博客
#Mail:    lh@wlzs.cn
#Function: 时间同步脚本.
#Website:  blog.wlzs.cn 
PATH=/usr/bin:/bin:/sbin:/usr/local/sbin:/usr/local/bin
LANG=zh_CN.UTF-8
date=`date +%Y-%m-%d-%H-%M`

#日志目录
data=`date +%Y-%m-%d`
runpath=$(cd `dirname $0`; pwd)
logdir=$runpath/log/$data
echo $logdir
if [ ! -d "$logdir" ]; then
        mkdir -p $logdir
fi
sh $runpath/main.sh >> $logdir/$date.log
echo 日志: $logdir/$date.log >> $logdir/$date.log
cat $logdir/$date.log | mutt -s "网站备份" 15253157058@163.com
cat $logdir/$date.log | mutt -s "网站备份" lh@wlzs.cn

#删除10天前的日志
find "$runpath/log" -mtime +10 -name "*" -exec rm -rf {} \;

main.sh脚本:

#!/usr/bin/env bash 
#Date:   2015-1-2
#Author: Created by  龙魂博客
#Mail:    lh@wlzs.cn
#Function: 时间同步脚本.
#Website:  blog.wlzs.cn 
PATH=/usr/bin:/bin:/sbin:/usr/local/sbin:/usr/local/bin
LANG=zh_CN.UTF-8
date=`date +%Y-%m-%d-%H-%M`
#备份目录
backupdir=$(cd `dirname $0`; pwd)/backup
#网站目录
webdir=/var/www/html
#数据库名
dbname=bbs
dbname1=blog
#数据库用户名
dbuser=root
#数据库密码
dbpwd='root'
#命令
#判断备份文件夹是否存在,存在删掉 不存在建立
if [ -d "$backupdir" ]; then
        rm -rf $backupdir
	mkdir -p $backupdir
else
	mkdir -p $backupdir
fi
if [ ! -d "$webdir" ]; then
	echo 网站根目录错误 $webdir,请修改\$webdir变量
	exit
fi
#备份数据库
mysqldump -u$dbuser -p$dbpwd -B -F --single-transaction $dbname>$webdir/$dbname-$date.sql 
if [[ $? -eq 0 ]]; then 
	echo $dbname 备份成功
else
	echo $dbname 备份失败,请检查数据库名及密码是否正确
	rm -rf $webdir/$dbname-$date.sql
	exit
fi
mysqldump -u$dbuser -p$dbpwd -B -F --single-transaction $dbname1>$webdir/$dbname1-$date.sql 
if [[ $? -eq 0 ]]; then 
        echo $dbname1 备份成功
else
        echo $dbname1 备份失败,请检查数据库名及密码是否正确
	rm -rf $webdir/$dbname-$date.sql $webdir/$dbname1-$date.sql
	exit
fi
#关闭httpd服务
service httpd stop
if [[ $? -ne 0 ]]; then
	echo httpd服务无法关闭,请解决问题后再进行备份
	rm -rf $webdir/$dbname-$date.sql $webdir/$dbname1-$date.sql
	exit
fi 
	
#备份网站源文件
cd $webdir
tar -czf $backupdir/wlzs.cn-$date.tar.gz *
if [[ $? -eq 0 ]]; then
	echo 创建压缩文件成功
else 
	echo 创建压缩文件失败,备份失败,请检查错误之后再执行此脚本
	rm -rf $webdir/$dbname-$date.sql $webdir/$dbname1-$date.sql $backupdir/wlzs.cn-$date.tar.gz
	exit
fi

rm -rf $webdir/$dbname-$date.sql $webdir/$dbname1-$date.sql
#开启httpd服务
service httpd start
if [[ $? -ne 0 ]]; then
        echo \!\!\!警告:httpd服务无法开启,网站发布失败,请解决问题
fi

bypy.py upload $backupdir/wlzs.cn-$date.tar.gz wlzs.cn-$date.tar.gz

bypy.py list | grep wlzs.cn-$date.tar.gz
if [[ $? -eq 0 ]]; then
        echo 百度云上传成功
	rm -rf $backupdir
else
        echo 百度云上传失败,请检查网络连接及bypy的配置是否正确
	exit
fi
 echo -e "`date`    ...................  备份完成 \n"

计划任务为:

09 18 * * * /bin/sh /script/backupshell/start.sh

 

 

二〇一五年一月二日 12:24:38

点赞