Quantcast
Channel: 看得透又看得远者prevail. ppt.cc/flUmLx ppt.cc/fqtgqx ppt.cc/fZsXUx ppt.cc/fhWnZx ppt.cc/fnrkVx ppt.cc/f2CBVx
Viewing all articles
Browse latest Browse all 20556

在免费空间里面搞了个cron定期备份

$
0
0
因为用的是免费空间,blog的数据经常不稳定,今天一气之下搞了个email备份,尽量简单了。。。perl的base64编码可以用encode-base64代替,万恶的服务器没有uuencode。。。
要注意一下mysqldump、gzip、perl、sendmail的路径问题
还有tempfile是否是mysql可写的
为啥要创建tempfile呢,我测试的时候免费空间限制了内存的使用和/tmp的可写,所以不能用管道来传,如果能用管道就不用写这么复杂了。。。
能用uuencode和管道的情况下,一行就能搞定。。。
最后就是看看后台能不能用cgi偷入去crontab里面玩玩了,一般都可以di。。
如果crontab不能用,就搞成一个cgi,在本机搞个计划任务定期去访问,windows的cron,嘿嘿
ps:其实用php cron和mail的功能很快可以做出来,但是我懒得去研究php了。没学过,改改还行,自己写就不要搞我了。。。。
命令行用sendmail发带附件mail的代码,同时备份数据库。

#!/bin/sh
datestr=`date +%Y%m%d`;
tempfile="/ooxx/database_temp";
attachname="ooxx_$datestr.gz";
dbuser="ooxx";
dbpassword="xxoo";
dbhost="localhost";
dbdatabase="ooxx";
mail_to="ooxx@xxoo.com";
mail_from="admin@ooxx.com";
#echo "mysqldump -h$dbhost -u$dbuser -p$dbpassword --default-character-set=utf8 $dbdatabase 2>&1 > $tempfile;"
mysqldump -h$dbhost -u$dbuser -p"$dbpassword" --default-character-set=utf8 $dbdatabase 2>&1 > $tempfile;
gzip -f $tempfile;
/usr/sbin/sendmail -t -f $mail_from <<!EOF!
To: $mail_to
From: $mail_from
Date: `date -R`
Subject: $datestr blog database backup
Content-Type: multipart/mixed; boundary="=====000_Dragon434046520070_====="

This is a multi-part message in MIME format.
--=====000_Dragon434046520070_=====
Content-Type: text/plain; charset="gb2312"
This is a blog database backup @ $datestr
--=====000_Dragon434046520070_=====
Content-Type: application/octet-stream; name="$attachname"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="$attachname"
`perl -e 'use MIME::Base64; open(FILE, $ARGV[0]); while (read(FILE, $buf, 60*57)) {print encode_base64($buf);} close(FILE);' $tempfile.gz`
--=====000_Dragon434046520070_=====--
!EOF!

Viewing all articles
Browse latest Browse all 20556

Latest Images

Trending Articles

<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>