前段时间安装了百度云盘的python版,现在通过脚本实现文件上传及备份完成将日志发送到邮箱,及时获取备份情况。
注:必须安装百度云盘python版及mutt 根据具体情况修改main.sh脚本里的内容
建立了两个脚本 一个计划任务
start.sh脚本:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
#!/usr/bin/env bash #Date: 2015-1-2 #Author: Created by <a href="https://blog.wlzs.cn" target="_blank" rel="noopener">龙魂博客</a> #Mail: <a href="mailto:lh@wlzs.cn" target="_blank" rel="noopener">lh@wlzs.cn</a> #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脚本:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 |
#!/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