之前在CBN论坛上看到不少朋友在说blog主机(虚拟主机)数据备份的重要性,就顺带在帖子下面回复了一条在dreamhost空间上备份数据的方法。
一般来说,对于空间数据的备份,可以分成两部分:数据库和文件备份。
1、数据库
如果只是使用WordPress写blog,那么可以参考之前写过的这篇日志。
利用这个 WordPress Database Backup 插件就可以实现对于WP数据库的自动备份,并且可以选择自动发往指定邮箱。
如果不单单在用WP,而有其他一些使用MySQL数据库的其他程序,那么可以通过三种方式进行数据库备份:
(1)利用phpMyAdmin进行备份
phpMyAdmin作为一个功能强大的MySQL图形化管理程序,可以很容易地对数据库进行备份操作。当然dreamhost提供了完整功能的phpMyAdmin后台(有简体中文界面可供选择),可以按照网上提供的phpMyAdmin使用手册方便地对执行数据库进行备份。
(2)通过Shell获取数据库的备份文件
与使用phpMyAdmin相比,这显然要繁琐很多,特别是对于新手而言,尤为困难。但好处同样存在,可以利用dreamhost提供的强大Shell功能,完成数据库的自动备份(当然,其他文件也是可以的)。
最简单的应用:
mysqldump –opt -uusername -ppassword -h yourMySQLHostname dbname > output.sql
通过在Shell下执行此命令,可以将数据库备份到指定目录,之后可以通过FTP的方式将其下载到本地。
如需使用脚本进行自动备份,则请阅读这里。
(3)利用 dreamhost的管理后台
严格来说,这个后台是无法提供数据库备份到本地的,只是一个“Restore”,即数据库的回滚。dreamhost会自动在每日凌晨3点左右(服务器时间)自动生成备份。用户可以对相应的数据库制定相应的时间进行备份。
这个方法显然不够主动,而且有效性不够强大。
更多资料可以参考这里。
2、网站文件
使用常规的FTP下载文件,对于dreamhost这样的国外主机而言,显然无异于一场噩梦,依然使用Shell的思路:
(1)
1. SSH下执行cd命令,进入隐藏的名为.snapshot (不会在任何的目录列表中显示出来,但确实存在)目录,在里面会有好几个备份;
2. 选择自己要的备份( hourly.0 是1个小时之前, hourly.1 是2个小时之前,nightly.0是1天之前,nightly.1是2天之前,weekly.0是1周之前,weekly.1 是2周之前);
3. 把备份文件复制到想要的地方,通过FTP/Web方式下载到本地即可,当然也可以通过使用gzip命令生成压缩包。
(注意:.snapshot目录为系统隐藏目录,用户权限较低,无法在此进行gzip等需要写权限的操作)
更多请参考这里。
(2)
和数据库备份一样,依然是可以使用脚本进行整站自动备份,详细脚本撰写参考这里。