自己写的一个用scp备份站点的脚本: 错误日志写到 /var/log/test_err/err.log 中。 备份的日志写在/var/log/www_back/`date +%Y-%m-%d`.log 中。 过程就是:先根据条件判断是否需要备份,然后判断备份的文件是否已经有了。接着进行本地压缩。没有成功有邮件提醒报警(可以用手机邮箱直接短信提醒)。 ps:测试过程中,出现问题,报警,手机直接就是五十几条短息。0.o,说多了都是泪啊~ 之后就是scp备份了。用一个循环。 代码: [root@redhat script]# cat my_back.sh #!/bin/bash #backup web station exec 2>>/var/log/test_err/err.log user=136XXXXXXXX@wo.cn myDir="/myback" sourDir="/usr/local/apache2/htdocs" my_tar=".tar.gz" log=/var/log/www_back/`date +%Y-%m-%d`.log count=`ls -F $sourDir |grep "/$" |wc -l` month=`date +%m` day=`date +%d` year=`date +%Y` hour=`date +%H` min=`date +%M` dirname=$year-$month-$day #创建本地备份目录 if [ ! -d "$myDir" ]; then mkdir "$myDir" fi cd $myDir #创建时间目录 if [ ! -d "$dirname" ]; then mkdir $dirname fi #判断是否备份完毕。 my_time=`ls -F $dirname |wc -l` if [ "$my_time" -lt "$count" ]; then # --------------------------------------------------------------------- cd $myDir/$dirname for my_web in `ls -l $sourDir| sed -n '/^d/p'| awk '{print $8}'` do #判断文件是否之前已经备份--------------------------------------------------------------- web_tar=${my_web}${my_tar} echo $web_tar if [ ! -f "$web_tar" ]; then echo $my_web echo "###################################################" >>$log echo " $dirname-$hour-$min backup $my_web starting ..." >>$log cd $sourDir tar -zcvf $myDir/$dirname/$my_web.tar.gz ./$my_web #失败发邮件----------------------------------------------------------------------------- if [ $? -eq 0 ];then echo " $dirname-$hour-$min backup $my_web ok !!! " >>$log else echo " $dirname-$hour-$min backup $my_web false !!!" >>$log echo "the $my_web backup is down" | mail -s "backup for jesn" $user; fi cd $myDir/$dirname else echo " $dirname-$hour-$min backup $my_web alexit !!!" >> $log fi done else echo " $dirname-$hour-$min not any file to backup !!!" >> $log fi #####开始scp tran=`ls -l $myDir/$dirname | awk '{print $8}'` for i in $tran do echo "######################START SCP###########################">>$log time scp -r $myDir/$dirname/$i root@192.168.10.7:/backup if [ $? -eq 0 ];then echo " $dirname-$hour-$min SCP { $i } translation ok !!! " >>$log # echo "translation over !!!" | mail -s "backup for jesn" $user; else echo " $dirname-$hour-$min SCP { $i } translation false !!!" >>$log #echo " SCP $i translation down !!!" | mail -s "backup for jesn" $user; fi done exit 0 邮件提醒,很简单的。 # vim /etc/mail.rc setfrom=demo@126.com smtp=smtp.126.com setsmtp-auth-user=demo smtp-auth-password=*** smtp-auth=login 然后重启你的 sendmail服务。 /etc/init.d/sendmail restart 那么一切就ok了。
《scp 备份站点 笔记》连带邮件提醒
原创
©著作权归作者所有:来自51CTO博客作者jesnridy的原创作品,请联系作者获取转载授权,否则将追究法律责任
下一篇:我的友情链接
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
java邮件提醒实现
java实现邮件发送,其中有小编的一些思考,跟大家分享~
java 总结 邮件 javamail web