最近原先的虚拟主机出现问题, 于是索性完全转到vps空间. wordpress和dokuwiki的搬家基本很顺利, 主要平时注意了备份问题, 不过还是少了一篇日志和2个评论, 等到恢复再补上. 由于图片都是外链, 所以搬家很方便,sql数据很小, 主要的问题是原先设的一些应用没有备份, 比如twitter api和dabr之类的应急应用.
设置好了域名绑定后, 主要就是设置备份, 现在molezz.net主要的就是一个wordpress blog和dokuwiki知识整理. 前者的备份用了WordPress Database Backup进行每周备份, 而dokuwiki没有这样的定期插件, 而且不是基于mysql的, 是使用txt进行记录, 不能用上面那个插件备份, 于是想到了linux下的脚本和crond进行备份. 另外由于用了nginx而不是apache, 可以直接利用nginx的reverse proxy设置twitter的api, 而不用twip之类的第三方~
(I) 定期自动备份文件夹
由于dokuwiki的记录都是保存于data/pages目录下, 所以我只要备份这个里面的数据即可, 首先是压缩这个文件夹为单个文件, 然后将其email到我的gmail邮箱备份即可. 以当日日期为文件名压缩得到tar.gz文件, 利用uuencode编成附件, 然后利用mail程序发送到邮箱. 最后删除vps上生成的临时tar.gz文件. 脚本文件如下:
#!/bin/bash
# backup dokuwiki pages program
tar czfP `date +"%Y%m%d"`_wikipages.tar.gz wiki/data/pages/
uuencode `date +"%Y%m%d"`_wikipages.tar.gz `date +"%Y%m%d"`_wikipages.tar.gz | mail -s "molezz wiki backup" [email protected]
rm *wikipages.tar.gz
写好脚本后要进行每周的执行, 用命令crontab -e进行设置(注意文件夹路径)
25 20 * * 3 /home/molezz/html/wikibackup.sh
表示每周三20:25进行备份, 如果要每月或每天的话也可以进行相应更改, 前5个位置分别为<分,时,日,月,周>, 具体可以参考鸟哥的私房菜这章
(II) 利用nginx反向代理设置api
解决了备份问题, 接下去就是我的twitter api问题, 原先使用的twip架设的api使我的手机ubertwitter能看推. 而用了nginx后发现twip工作不正常, 原来是rewrite的问题, 上google code一看... 原来nginx可以设置reverse proxy, 于是只要将我的一个域名设置反向代理到api.twitter.com即可
设置域名解析, 如www.aaa.com(只是例子, 不存在), 打开nginx.conf文件, 添加
server {
listen 80;
server_name www.aaa.com;
location / {
proxy_pass http://twitter.com/;
proxy_redirect off;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For
$proxy_add_x_forwarded_for;
}
}
重启nginx服务后, 只要在api的地址填写www.aaa.com即可访问twitter的api了, 另外这个也可以用于其他代理, 而且还能隐藏真实的原网址.
vps虽然贵, 但是物有所值, 很多自定义服务都能实现.
在家搞了台服务器,还是不放心vps, 直接下载到自己家的电脑备份
@ppg 恩, 我在宿舍也弄了一个, 不过因为不一定24小时, 所以还是把主要数据定期email到gmail里备份