| VB 源码 | VC 源码 | ASP源码 | JSP源码 | PHP源码 | CGI源码 | FLASH源码 | 素材模板 | C 源程序 | 站长工具 | 站长教程 |

服务器

网站运营
网络应用
服务器
搜索优化

本类阅读TOP10

·如何在D版安装和激活xp sp2方法
·解开被锁注册表的四种方法
·Windows系统会自行关闭硬盘DMA模式
·双系统共享应用软件 的三种方法介绍
·清除无用项目 给你的“打开方式”减肥
·加密三部曲—拒绝电脑数据泄露全攻略
·电脑初学者必备之Windows进程大全
·Windows虚拟内存加速密籍
·CMOS密码破解全攻略
·FDISK使用介绍

站内搜索

WP空间的Dropbox自动备份脚本

如果你的空间是linux系统,空间比较大的话,拥有SSH权限,那么恭喜你,你可以用这段脚本来实现自动备份整个wp到空间上或者Dropbox上了。

脚本doBackWebSite.sh利用linux的crontab功能实现自动定时备份功能,并自动删除过期的备份文件,节约空间,程序默认为删除备份前三天的脚本,当然你可以在脚本中自动制定的;-) ,下面介绍脚本使用过程。 

1.  脚本内容如下

doBackWebSite.sh

#!/bin/bash#*********************************************************## File   :  doBackWebSite.sh                      		  ## Perpose:  自动备份并删除指定天数的前的备份文件      	  ## Atuthor:  吴泽君                                        ## WebSite:  www.fly3q.com                                 ## Date   :  2010-06-25                                    ## Modify :  2010-06-29 增加Dropbox备份支持                ##*********************************************************##*********************************************************## Local   Variable            			                  ##*********************************************************##空间的更目录HOME_DIR="~"#网站内容放置的文件WS_DIR="fly3q.com"#放置备份的文件夹BK_DIR="back"#Dropbox放置备份的文件夹Dropbox_BK_DIR="Dropbox/WPBack"#Dropbox安装目录Dropbox_BK_DIR=".dropbox-dist"#网站备份名字BACK_FILE_NAME=$WS_DIR`date +%Y%m%d`".tgz"  #*********************************************************## function : auto_back_files                              ## Input    : $1 is_back_to_dropbox - 是否备份到dropbox    ## 						           - true/false           ##*********************************************************#function auto_back_files(){	cd ~	if [ ! -d $BK_DIR ];then		mkdir -p $BK_DIR	fi	cd $WS_DIR	tar -czf $BACK_FILE_NAME *	mv $BACK_FILE_NAME ../$BK_DIR	echo "[OK]    BACK UP $BACK_FILE_NAME"	if [ -n $1 -a "$1" = "true" ];then		move_back_to_dropbox	fi}#*********************************************************## function : move_back_to_dropbox                         ## Input    : 将网站备份到Dropbox                          ##*********************************************************#function move_back_to_dropbox(){  if [ -z ` ps aux|awk -F" " '{print $11}'|grep '^/home/[^]*[dropbox]'` ];then	cd ~/$BK_DIR/$Dropbox_BK_DIR	dropboxd &  fi  if [ -d Dropbox ];then	cd Dropbox	if [ ! -d WPBack ];then		mkdir WPBack	fi	cd ~/$Dropbox_BK_DIR	cp ~/$BK_DIR/$BACK_FILE_NAME .	echo "[OK]    $BACK_FILE_NAME had benn back to Dropbox."  else    echo "[FAIL]  You had not installed Dropbox,please first install Dropbox."  fi}#*********************************************************## function : auto_delete_last_back_files                  ## Input    : $1 offset_day - 自动删除指定前几天的备份文件 ## 						   - 默认删除前3天的备份文件      ##*********************************************************#function auto_delete_last_back_files(){  local year=`date '+%Y'`  local month_of_year=`date '+%m'|sed s/^0//`  local day_of_month=`date '+%d'|sed s/^0//`  local offest=3  local index=1  local month=(0)  local day=(0)  while [ $index -le 12 ];  do	month[$index]="$index"	let index+=1  done  index=1  while [ $index -le 31 ];  do    day[$index]=$index	let index+=1  done  if [ -n "$1" ];then	offest=$1  fi  ret_day=  let ret_day=$day_of_month-$offest  if [ $ret_day -le 9 ];then	if [ $ret_day -le 0 ];then		let ret_month=$month_of_year-$ret_day/31-1		if [ $ret_month -le 9 ];then			ret_month="0"$ret_month		fi		let index=31+$ret_day%31		ret_day=${day[$index]}		if [ $ret_day -le 9 ];then			ret_day="0"$ret_day		fi	else		ret_day="0"$ret_day	fi  fi  if [ -n "$ret_month" ];then	ret_month=`echo $ret_month|sed s/^0//`	ret_month="0"$ret_month  else	ret_month="0"$month_of_year  fi  ret_year=$year  ret_date=$ret_year$ret_month$ret_day  ret_bck_file_name=$WS_DIR$ret_date".tgz"  cd ~  cd $BK_DIR  if [ -f $ret_bck_file_name ];then	#rm -fr $ret_bck_file_name	echo "[OK]    DELETE $ret_bck_file_name"  else    echo "[FAIL]  $ret_bck_file_name NOT EXIST!!"  fi  cd ~  if [ -d $Dropbox_BK_DIR ];then	cd $Dropbox_BK_DIR	if [ -f $ret_bck_file_name ];then		#rm -fr $ret_bck_file_name		echo "[OK]    DELETE Dropbox BackFile->$ret_bck_file_name."	else		echo "[FAIL]  Dropbox BackFile->$ret_bck_file_name NOT EXIST."	fi  fi}auto_back_files trueauto_delete_last_back_files

2.  SSH 登陆空间

建一个目录back的目录,放这个脚本到这个back目录里面。

3.  配置crontab

输入crontab -e,来配置linux自动运行的情况,具体的参数配置可以参考本博另外一篇关于crontab文章。

例如我的配置如下:

22  22 *   *     1-7  cd /home/user1/back/;bash doBackWebSite.sh

表示每天22:22分执行doBackWebSite.sh脚本完成自动备份的功能。

4. 安装Dropbox

Dropbox是一个能够在线存储文件并提供版本版本的管理的云存储服务。具体请参考http://wiki.dropbox.com。

安装步骤参考http://wiki.dropbox.com/TipsAndTricks/TextBasedLinuxInstall

$ cd ~

$ cd wget -O dropbox.tar.gz http://www.dropbox.com/download/?plat=lnx.x86

$ tar -zxof dropbox.tar.gz

$ mv .dropbox-dist ~

$ cd ~

$ ~/.dropbox-dist/dropboxd &

此时会提示一串URL,要求你在浏览器里面输入这串URL将这台虚拟主机连到Dropbox上,登陆之后你就可以看到提示这台机子已经连到了dropbox上了。

注:这边第一次需要这样配置,以后系统会保存登陆状态就不需要去手动输入URL了,这也是这个脚本能够实现自动备份到上面的关键。

通过ps aux|grep dropbox查看dropbox是否已经运行起来了,有的话恭喜你dropbox配置成功了。

5.  完成配置

第一次请手动运行doBackWebSite.sh,已完成链接虚拟主机到dropbox。

这样每天就会自动地把你的网站进行备份了,通过ls -oh 你可以查看备份的情况。同时如果配置了接收邮箱的话,系统crontab也会自动的发出一封执行结果的邮件

Cron cd /home/user1/back/;bash doBackWebSite.sh

[OK] BACK UP fly3q.com20100629.tgz

[OK] fly3q.com20100629.tgz had benn back to Dropbox.

[OK] DELETE fly3q.com20100626.tgz

[FAIL] Dropbox BackFile->fly3q.com20100626.tgz NOT EXIST.

这边我还没有备份fly3q.com20100626.tgz到dropbox上所以失败了,嘿嘿。

同时查看dropbox的Event里面可以看到 

6.  总结

这个脚本完全是属于硬性的打包备份,备份文件还是放在空间里面,也可能说还是不安全,那么当然你可以在你的机子上来完成自动备份远程的主机文件,然后ftp下到本地来,这样就不用担心空间出现问题不能及时恢复了。这个实现也很简单的,你的机子执行自动运行备份,自动登陆ssh,一切都搞定,如果有需要的话,我可以分享出来。

但是考考虑到我们网速的问题,这个想法也就放弃了,但是我想到一个更好的办法,放到微软25G的skydrive上去,但是它不提供相应的api的呀,只是有一个非官方的.netapi,要是有更简单的jsapi就好了,如果大家有什么好的点子欢迎讨论。

现在受到月光博客一篇文章的启发,我把备份放到了dropbox上,呵呵,也算是实现了云存储吧。随便提下国外的主机上传到dropbox速度就是快的呀,我打包文件60M基本上就是一分钟左右,就搞定了,羡慕这样的网速。




相关文章
  • 软件新手工业时代的来临:写在腾讯开放之后
  • Techcrunch评出2010年40个最佳iPhone软件
  • 十大免费网盘推荐
  • 最令人厌恶的应用程序评选
  • 十大免费下载应用和服务
  • 十大Linux操作系统发行版概览
  • 十个免费桌面博客软件
  • 2008十大手机网络应用程序
  • 禁止小红伞(Avira AntiVir)弹出广告
  • 利用Web Application Stress Tool(WAS)做性能测试
  • 中国软件集体哭泣
  • 共享软件:残破的梦想
  • 20个能够提高你工作效率的免费软件
  • 惊喜!Longhorn将能运行Linux软件
  • 轻松查找软件安装序列号
  • Windows的好帮手 新卸载软件功能强大
  • 推荐使用的一些黑客软件
  • 一种可以穿透还原卡和还原软件的代码
  • 警惕背后黑手 间谍软件震动整个美国
  • 微软宣布首次通过网络下载的方式出售软件
  • 相关软件

  • 用线程实现软件的片头  
  • 类似流行的下载软件的右上角的那个显示下载  
  • 添翼虎打字测试软件及源程序  
  • 在你的软件中增加语音控制功能COOL  
  • UNIX文件下载软件 1.0
  • ZOO 压缩软件C语言开发源程序  
  • 交互式窗口程序设计软件  
  • 软件磁盘整理工具  
  • SHERLOCK宏代码处理软件C语言源程  
  • ROFF5 优美的文本文件打印输出软件  

  • 下载首页关于我们广告服务联系方式常见问题隐私声明法律条款本站声明下载帮助发布软件站点地图谷歌卫星地图