2011年1月30日 | 分类: 技术相关 | 标签: , , ,

本空间支持SSH,一来为了cross wall,二来整理网站什么的也能方便点,比如打个包,解个包,check out点代码什么的。
好了,直接贴代码吧。

#!/bin/bash
#
# Backup web source code and database data to a tarball
# Also can send it to your email as a attachment
#
# crontab -e
# 0 0 * * * /home/burgess/backup.sh >/dev/null 2>&1
#
 
# set variables
web_path=~/public_html
db_name=your_db_name
db_user=your_db_user
db_pass=your_db_pass
email=burgess@163.com
email_title="Web Backup - xyh.org - "$(date +"%Y-%m-%d")
 
new_file=Backup_$(date -d "yesterday" +"%Y%m%d").tar.gz
old_file=Backup_$(date -d "-2days" +"%Y%m%d").tar.gz
 
cd $web_path
# dump database data to a sql file
mysqldump --add-drop-table\
		--comments\
		--complete-insert\
		--allow-keywords\
		--triggers\
		--routines\
		--force\
		--password=$db_pass\
		--user=$db_user\
		$db_name > database.sql
 
# make it to a tarball
tar zcf ~/$new_file * .[!.]* --exclude=cgi-bin
 
# remove old files
rm -f database.sql
if [ -e ~/$old_file ]; then 
	rm -f ~/$old_file
fi
 
# send attachment email
(echo "Hi, I'm the postman.";uuencode ~/$new_file $new_file) | mail -s $email_title $email

使用时只要修改前面6个变量的值就可以了,然后把它放到任务里定时执行。
先执行“crontab -e”
然后添加一行
0 0 * * * /home/burgess/backup.sh >/dev/null 2>&1
然后就可以每天0点自动执行打包备份并把压缩包当附件发送到你的邮箱里了。

2010年11月15日 | 分类: 技术相关 | 标签:

几天前服务器根目录空间使用100%导致MySQL使用出错,看了下发现是/var/log/maillog文件太大了,直接使用>/var/log/maillog清空暂时了事。
今天研究了下,发现可以通过修改/etc/syslog.conf文件来过滤无用的信息。修改如下:

mail.* -/var/log/maillog

替换为

mail.notice -/var/log/maillog

2010年10月26日 | 分类: 生活琐碎 | 标签: ,

自从把空间搬到国外后就一直在想把域名也弄到国外,因为国内的环境太不安全了。
我的域名是在新网代理那购买的,转出要了50元手续费,传身份证扫描件和域名转移申请表后就等了一个月,在再三催促之下终于收到了域名转移密码,哈哈!
然后选择了转入Godaddy,很多人在用,而且支付很方便,可以使用支付宝。
好在经过努力现在已经基本成功了,只需再等5天就行了。
已经成功了,哈哈!

2010年10月15日 | 分类: 技术相关 | 标签: , , ,

近来找到一个网站上有不少网络电视直播,但是网站做的广告太多,不想每次都去人家那里,于是自己花了几天时间用Python脚本把列表给取了来,自己用cmp.swf做了这么个东西。
不截图了,直接上地址
http://tv.xcyh.org/
其中很多地址都是WMP格式的,没关系用FLASH和JS交互在FLASH上弄了一层WMP控件就OK了。

P.S.页面很干净的说,WMP控件上双击可以全屏,按ESC恢复,点下面出现的“停止播放并返回播放器”可以返回FLASH界面!

2010年9月1日 | 分类: 技术相关 | 标签:

有的时候我们想知道未跳转前的内容,可是Python的urllib2却自动跟随跳转,研究了下库里的代码,发现我们修改下就可以了。
注释的三行代码可以返回当前的code,比如301或302什么的,如果只想知道code,那么只要去掉这三行注释再把return response注释了就可以了。
“debug_handler = urllib2.HTTPHandler(debuglevel = 1)”是调试跟踪用的,不想跟踪改为0就可以了。

import urllib2
import socket
 
class SimpleRedirectHandler(urllib2.HTTPRedirectHandler):
	def http_error_301(self, req, response, code, msg, headers):
		# result = urllib2.HTTPRedirectHandler.http_error_301(self, req, response, code, msg, headers)
		# result.status = code
		# return result
		return response
 
	http_error_302 = http_error_303 = http_error_307 = http_error_301
 
def unRedirectUrl(url):
	socket.setdefaulttimeout(90)
	req = urllib2.Request(url)
	debug_handler = urllib2.HTTPHandler(debuglevel = 1)
	opener = urllib2.build_opener(debug_handler, SimpleRedirectHandler)
	content = ''
	try:
		response = opener.open(req)
		content = response.read()
		response.close()
	except socket.timeout, e:
		print 'socket.timeout:', e
	except IOError, e:
		print 'IOError:', e
	except:
		print 'unknown error'
	return content
 
print unRedirectUrl('http://localhost/test')