Press "Enter" to skip to content

Month: May 2013

安装Pyhton MySQLdb

安装很简单,几步就好

wget -q http://peak.telecommunity.com/dist/ez_setup.py
python ./ez_setup.py

wget http://downloads.sourceforge.net/project/mysql-python/mysql-python/1.2.3/MySQL-python-1.2.3.tar.gz
tar -zxvf MySQL-python-1.2.3.tar.gz 
cd MySQL-python-1.2.3
python setup.py install

可能出现问题1:error: command ‘gcc’ failed with exit status 1
解决:yum install python-devel

Leave a Comment

将wordpress博客中的yupoo图片片下载至本地

2007年建立这个博客的时候,使用的还是虚拟主机,出于容量不够及备份等因素的考虑,当时我使用了Yupoo相册来保存及外链博客里的图片,6年过去了,博客里的这些图片仍然可以显示,外链的地址没有失效,说明Yupoo还是一个靠谱的网络相册的。

但国内的互联网形势风云变幻,谁也说不准将来会发生什么事儿,曾经风极一时的拍拍乐(886.cn)到现在已经不能访问了,巴巴变也经历了数次改版,在2008年中旬,Yupoo进行了一次大的改变,限制了用户的外链,强行将外链的图片加上了广告,当时我还在博客上极其强烈的吐嘈了Yupoo一顿。从那时起,我就一直在思考,如何更好的保存博客中的图片.

到2010年,VPS兴起了,这个博客用上了Burst.net家的VPS,20G的空间,再也不用担心容量不够了。从那时起,基本也开始用博客自身的空间来保存图片了,在VPS上部署了备份脚本,这下再也不用担心空间跑路或者其它的因素了。但有个显著的问题,博客里以前Yupoo外链的图片太多,要如何转移过来?一直到今天,写了这个Python脚本,解决了这个问题。

脚本会把数据库中的所有yupoo图片下载至本地的yupoo目录,图片的文件名不变,把yupoo目录上传至博客的/wp-content/uploads/目录,然后,博客就彻底脱离了Yupoo!

yupoo相册的图片地址类似于以下这几种:
http://pic.yupoo.com/用户名/xxxxxx/xxxxxxxxx.jpg
http://photo14.yupoo.com/年月日/xxxx_xxxxxxx_xxxxxxx.jpg
http://photo15.yupoo.com/年月日/xxxx_xxxxxxx_xxxxxxx.jpg

2 Comments

使用python备份远程FTP上的文件和Mysql

写这个脚本初衷是想借助VPS来定期备份虚拟主机上的文件和数据库。最近对美国VPS的速度有点不满了,想把博客搬到香港的虚拟主机上,但虚拟主机的备份不太方便,于是就冒出了这样一个想法:用VPS备份虚拟主机。

其实备份文件是个简单的事情,但要把数据库都导出,就麻烦了。大部分Mysql有个locahost的限制,只能在本地连接,不能远程连接数据库,想来想去,只能是在localhost弄个php的脚本,用来导出数据库

程序包含2个文件,分别是
db_backup.py:主程序,在里面设置好虚拟主机的FTP地址,用户名和密码信息,然后执行备份程序,如果要定时执行,在crontab里设置这个脚本即可
db_backup.php:导出Mysql的脚本,主程序会把此脚本发送至FTP服务器,然后自动访问http://ftp/db_backup.php把Mysql导出至FTP服务器上的的db_backup目录。因此需要在此文件里填写好Mysql的连接信息。备份完成以后主程序会删除FTP服务器上的此文件和db_backup目录,保证了数据库不被泄露

前提条件:
1,VPS安装Python,这个一般没问题,VPS的虚拟化技术不能是OpenVZ。
2,虚拟主机必须是php型的,且支持passthru()函数,国内的主机一般都支持,不过还是建议事先用探针检测一下

脚本打包下载请点击这里

2 Comments

python中文件的复制

文件的复制
file类中没有提供专门的文件复制函数,因此只能通过使用文件的读写函数来实现文件的复制。这里仅仅给出范例:

src = file("myfile.txt", "w+")
temp = ["hello world! \n"]
src.writelines(temp)
src.close()

src = file("myfile.txt", "r+")
des = file("myfile2.txt", "w+")
des.writelines(src.read())
src.close()
des.close()
Leave a Comment

python备份远程FTP脚本

自己写的一个Linux上使用python备份远程FTP脚本,编写此脚本的初衷是为了方便一些使用虚拟主机的朋友,因为许多虚拟主机商不提供备份服务,导致文件丢失的情况时有发生,因此就有了这个脚本。

系统需要安装fuse-curlftpfs、zlib、zlib-devel三个软件包,其中fuse-curlftpfs包不好安装,得先安装个第三方的yum源,才可以通过yum的方式安装之。

原理比较简单,即是python调用shell命令把远程FTP服务器挂载至本地,再打包压缩实现备份,最后解除挂载。备份以后的文件名会包含了备份的日期,同时会删除5天前备份的文件,配合crontab使用,可以实现定期备份FTP服务器上的文件。

如果是在VPS上使用,请确保VPS是不是基于Openvz虚拟化技术的,因为Openvz会限制对fuse的使用,无法实现远程挂载。Xen,KVM可以正常使用。

编写脚本期间还得到了zhiwei同学的帮助,在此提出感谢。脚本具备扩展性,可以备份多个FTP服务器上的目录。如果需要备份多个FTP,把脚本最后4行复制一遍即可。

使用方法:

Leave a Comment

python读取系统信息

python读取系统信息的一些方法

最主要是的platform模块:

>>> import platform
>>> platform.version()
'#1 SMP Fri Feb 22 00:31:26 UTC 2013'
>>> platform.platform()
'Linux-2.6.32-358.el6.x86_64-x86_64-with-centos-6.4-Final'
>>> platform.system()
'Linux'
>>> platform.machine()
'x86_64'
>>> platform.python_build()
('r266:84292', 'Feb 22 2013 00:00:18')
>>> platform.python_version()
'2.6.6'
>>> platform.release()
'2.6.32-358.el6.x86_64'
>>> platform.uname()
('Linux', 'localhost.localdomain', '2.6.32-358.el6.x86_64', '#1 SMP Fri Feb 22 00:31:26 UTC 2013', 'x86_64', 'x86_64')
>>> platform.architecture()
('64bit', 'ELF')
在windows上,专门还有个platform.win32_ver() 可用
Leave a Comment

公布一个奇葩VPS:dream.jp/smartvps.cn

dream.jp/smartvps.cn好不好?dream.jp/smartvps.cn垃圾,dream.jp/smartvps.cn骗子。好了,开头先做一段SEO。现在开始讲述正题。

一提到日本,可能心里都会冒出几个感觉:友善,亲和,文明,礼貌。不知道从什么时候起,开始关注日本的VPS了,心里总有个感觉,再不济也是亚洲线路,速度也比美国的快吧

那天不知道怎么就逛到http://smartvps.cn这家了,查了一下,居然还是家大公司DTI旗下的产品,看来不用担心跑路了。又看了下价格,512M内存的日本VPS只要490日元(折合人民币40元不到),于是立即下手。开通还挺快。不到5分钟就开通了。

开通以后当然是万分欣喜的各种测试了,首先是看了看CPU,不看不要紧,一看顿时就闪瞎了我的眼!
垃圾的smartvps.cn

20 Comments