OpenShift免费空间全自动定时备份网站数据和MysqL数据到Dropbox
OpenShift空间全球开源解决方案领导者红帽公司推出面向开源开发人员开放的平台即服务(PaaS),支持Java,PHP,Python,Perl,Ruby,该免费云空间限制少,基本上支持所有的PHP程序,采用AmazonEC2服务器,稳定性不错。
OpenShift空间还支持免费绑定顶级域名,好多朋友都在OpenShift上搭建起了自己的博客和论坛,不过由于OpenShift不是一般的虚拟空间,没有Cpanel这类强大的控制面板,而我们又不能像在VPS上那样安装一个空间管理面板,所以备份OpenShift上的数据就小有麻烦了。
好在OpenShift开通了SSH登录与管理,我们可以采用VPS自动备份到Dropbox网盘那样的方法,在OpenShift免费空间上安装上Dropbox uploader,然后在自己的Dropbox网盘中添加应用,即可实现无需人工干预全自动免费备份网站数据和MysqL数据库到Dropbox中。
本篇文章是OpenShift空间使用的进阶文章,从未使用过OpenShift免费PHP空间的朋友可能“不知所云”,建议对OpenShift空间有兴趣的朋友先看一下:OpenShift申请使用和OpenShift SSH登录管理
如果你是刚刚接触空间的新手朋友,可以从Cpanel空间和虚拟主机开始入手,这类空间具有普遍流行和操作简单方便的特性:
- 1、YH免费空间:Youhosting免费空间无限空间和流量:申请域名绑定文件管理和建站
- 2、德国老牌空间:Ohost.de德国老牌免费PHP空间2.5G无限流量可绑域名有广告
- 3、百度BAE空间:免费百度云平台BAE空间-申请数据库文件管理安装WordPress全过程
OpenShift免费空间全自动定时备份网站数据和MysqL数据到Dropbox
PS:2013年8月20日更新,感谢“Lekia”同学的提醒,这里补充如下内容:
- 1、我的应用名是wp,但我的路径不是~/wp/repo…而是~/app-root/repo。
- 2、Dropbox uploader的下载页,很多人(包括我)直接在下载列表的.sh那里右键另存为,结果确实下了一个sh文件,但其实那是个网页…….sh的内容在网页的文本框里面……
- 3、如果真的随便起名做会提示dropbox_uploader_pz是一个目录,并且配置不能正确保存导致不能上传,前面要加上一个“.”
- 4、现在Dropbox新建APP的时候要求选择Drop-in app还是Dropbox API app,应该选择后者,然后Files and datastores,接着会要求选择授权是限制在一个以应用名为名称的文件夹里还是允许访问整个网盘,在后来运行.sh配置的时候要对应(A:应用文件夹/F,整个网盘)否则错误。
- 5、两个bak_openshift_to_dropbox.sh地址都不能下载,网上找到一个,里面有很多错误,首先路径的名字(不仅你图里的,下面也有)要改,第二tmp和logs文件夹要自己新建,第三他本来是想新建一个用日期作为名字的文件夹,然后把所有东西都扔里面,上传后把文件夹删除,问题是他的时间变量和file.zip之间漏了一个“/”,SQL同样如此,结果导致到了把所有文件打包的时候进入到一个空文件夹里,备份都在文件夹的父级目录也就是tmp里,没有文件给他备份,提示备份失败。
- 6、你竟然没说要安装rhc!貌似直接在远程服务器运行gem install rhc也能直接用。rhc-ctl-app -a freeh -e add-cron-1.4这句不知道为什么我死活运行不了,提示rhc-ctl-app是未知命令。我想方设法终于发现改成rhc cartridge-list add -a 应用名 cron-1.4,这样就可以用了。将近1周,血汗的教训啊!
一、上传Dropbox uploader到OpenShift空间
1、Dropbox uploader是专为Linux主机现了Dropbox的上传、下载、列表文件的小程序,官网:
- 1、官方首页:https://www.andreafabrizi.it/?dropbox_uploader
- 2、官网下载:https://github.com/andreafabrizi/Dropbox-Uploader
2、将Dropbox uploader程序上传到OpenShift空间有两种方法,一种最简单但也麻烦的方法:Winscp上传。
3、先将Dropbox uploader的压缩包下载到本地,解压,里面有一个Dropbox uploader脚本。
4、在repo目录下创建一个文件夹,例如dropbox。
5、将Dropbox uploader脚本用Winscp上传到新建的文件夹中。
6、右击Dropbox uploader文件,将属性设置为755。
7、还有一种方法就是执行以下命令,效果和上面是一样的,注意freeh请改成你自己的OpenShift项目名。
cd freeh
cd repo
mkdir dropbox
cd dropbox
wget https://www.zhujis.com/myvps/dropbox_uploader.sh
chmod +x dropbox_uploader.sh
1、修改Dropbox uploader的配置存放路径。你如果使用Winscp的话,就要先在本地用记事本或者NotePad++打开Dropbox uploader脚本。
2、请找到“配置文件路径”,将它修改成你的OpenShift项目路径,freeh是项目名,最后面的dropbox_uploader_pz是自己随便取的。
3、你也可以直接用SSH的Vim来修改,效果一样,执行以下命令。
vi dropbox_uploader.sh
4、然后找到配置文件存放路径,修改成你自己的。
三、在OpenShift空间上安装Dropbox uploader
1、执行以下命令,开始安装Dropbox uploader。
./dropbox_uploader.sh
2、安装过程中,会要求你输入Dropbox 的App Key。
3、如果没有,请进入网址:https://www2.dropbox.com/developers/apps
4、点击新建App按钮。
5、填写一个名称和描述信息,权限选择“所有权限”。
6、点击确定后,你就可以看到你的App key和App Secret了,记下它们。
7、回到刚才的SSH界面,输入你的Key和Secret,看到提示了,输入Y,确定。
8、接下来你会得到一个链接地址,复制这个地址。
9、将这个链接地址放在浏览器中打开,会看到应用授权的提示。
10、点击“允许”后,即可看到成功的提示。
11、再看看SSH界面,已经提示连接Dropbox应用成功了。
四、使用Dropbox uploader执行OpenShift空间自动备份
1、dropbox uploader的命令主要是upload, download, delete, info, unlink和list,即上传、下载、删除、信息、断开、文件列表
2、上传和下载的命令格式是这样的:upload是命令,xxx.zip是任意文件
./dropbox_uploader.sh upload xxx.zip
3、我们要备份OpenShift空间的数据和MysqL数据库到Dropbox网盘中,有了上面的命令,你可以直接手动将这些文件上传到网盘中了。
4、但是上面的肯定太麻烦了,我们要实现的效果就是自动将OpenShift空间的数据库和MysqL数据库文件找出来,然后自动上传到Dropbox。
5、有经验的朋友应该可以直接用VPS自动备份的脚本修改一下即可用在OpenShift空间上,这里给出shuyz.com博主原创的自动定时备份脚本。
6、我已经将该脚本上传到我的Godaddy空间上了,原地址也一并给出,以作备用。
- 1、下载:https://www.zhujis.com/myvps/bak_openshift_to_dropbox.sh
- 2、备用:https://uploads.shuyz.com/2012/08/bak_openshift_to_dropbox.tar.gz
7、你可以用上面两种方法将该备份脚本上传到OpenShift空间上,不过你还需要打开bak_openshift_to_dropbox.sh。
8、主要是要设置你的应用名称、数据库地址、端口、用户名、密码等,请注意下面的划红线的地方。
PS:2014年3月6日更新,感谢 linzian.ml 博主的提醒,新版的openshift空间需要把自动备份脚本的appname改成app-root,这里提供 linzian.ml 博主 修改后的bak_openshift_to_dropbox.sh,你需要做的就是将database information调整为自己的数据库信息即可:OpenShift自动备份Dropbox脚本下载地址。
9、完成上面的设置后保存,执行以下命令,给脚本加上可执行权限和执行首次自动备份。
chmod +x bak_openshift_to_dropbox.sh
./bak_openshift_to_dropbox.sh
10、如果你能看到下图所示就表示你的配置正确,备份没有问题了。
11、回到你的Dropbox就可以看到刚刚备份过来的打包文件了,里面有数据文件和数据库文件。你现在可以直接下载到本地作再次备份了。
五、添加定时任务实现OpenShift空间每周、每天、每月定时备份
1、上面我们已经实现手动备份OpenShift空间的数据和MysqL数据库,我们还欠缺一个自动定时备份的设置,即设置OpenShift空间每天或者每周或者每月定时备份。
2、不过在OpenShift空间上设置定时任务方法与VPS添加定时任务有所不同,你首先要为你的应用添加CRON Jobs,执行以下命令。
rhc-ctl-app -a freeh -e add-cron-1.4
3、注意freeh是应用名称,请改成你自己的,如果看到以下提示就表明成功了。
4、接下来你就可以将刚才的自动备份脚本复制到cron下对应的minutely、hourly、daily、weekly、monthly文件夹中。
5、放在不同的文件夹,就可以实现每分钟、每小时、每天、每周、每月定时执行你的脚本任务了。
6、先用SSH进入你的以上文件夹,例如我想实现每天定时备份OpenShift空间,我直接进入daily文件夹中。
7、此处可以将上面的定时备份脚本放在这里,也可以新建一个快捷方式,链接真实备份的脚本(注:该方法来自shuyz.com博主)
ln -s ~/freeh/repo/dropbox/bak_openshift_to_dropbox.sh ~/freeh/repo/.openshift/cron/daily/dropbox_backup
8、用Winscp就可以看到刚才创建的快捷链接方式了。
9、注意如果你发现文件夹中有jobs.allow、jobs.deny等,这是OpenShift的任务黑白名单。
10、你需要打开编辑jobs.allow。
11、将刚才你的快捷链接名称放在里面,这样OpenShift主机才会执行你的任务。
1、OpenShift空间开放了SSH管理,虽然不是VPS,但是该空间已经具备了VPS搭建建站、备份还原的功能,比一般的虚拟空间要强大。
2、Dropbox uploader已经广泛用于VPS备份了,从这里都可以看出:国内的网盘和Dropbox比起来,真得有差距。。。而且距离还比较远。
3、话又说回来,如果你的Dropbox网盘容量只有原始3GB的话,可要小心网盘被爆满!Dropbox有注册奖励和推荐好友奖励,免费账户可达16GB。
文章出自:免费资源部落 / 版权所有。本站文章除注明出处外,皆为作者原创文章,可自由引用,但请注明来源。
您或许对下面这些文章有兴趣: 本月吐槽辛苦排行榜
-
收藏起来 慢慢研究
[回复] -
现在博客从红帽空间搬走了,用不到了
[回复] -
很给力,说的很细致
[回复] -
文章不错,留10个21G邮箱
731bj7yvu@wpzzz.net—-886890
b65gjx7ay@wpzzz.net—-607365
ge6wsp8vj@wpzzz.net—-895505
s8g3b50su@wpzzz.net—-163144
phxc06sfy@wpzzz.net—-237215
j2ow6b3e2@wpzzz.net—-379339
6ih12e4nhr@wpzzz.net—-235311
bpkp1di0f@wpzzz.net—-597675
rcvwq293g@wpzzz.net—-194031
iyzfb2x4l@wpzzz.net—-407981[回复] -
讲句题外话,openshift还支持nodejs
[回复] -
暂时用不着,先收藏了
[回复] -
怎么说呢 – – ,孤狼的FTP备份也很方便,一键备份之后直接用迅雷下载到本地。 不过也用不到了。
话说最近老犯二,以前买了个国内主机放在那儿懒得*一直没用,今天看邮箱才发现,果断*,把东西全部拽回来
这片神奇的土地啊,国外都是浮云
[回复] -
dropbox 还米用过呢。。注册试试去
[回复] -
我只用定时备份数据库就好了。
[回复] -
我打不开了https://www.dropbox.com/这个网站
[回复] -
这个太麻烦了 你看下这篇文章 试着 重新弄下吧https://www.hackyes.net/xsbk/913.html
[回复]qi 回复:
@行殇, WordPress的确强大,备份更是简单,安装一个插件就好了。
[回复]haclyok 回复:
@qi, 请教一下大哥。
这个https://github.com/andreafabrizi/Dropbox-Uploader/downloads 下载地址里好像没有东西了呀?
麻烦你把这个东西共享下 好吗?[回复]qi 回复:
@haclyok, 已经更新,在这里:https://github.com/andreafabrizi/Dropbox-Uploader
[回复]haclyok 回复:
@qi, 大哥。
你发的这里我下载下来的dropbox_uploader.sh这个文件我不知道怎么修改?
按你博客上的这篇文件 找不到修改的地方。。。
请教一下这个新的 怎么修改?
谢谢[回复]qi 回复:
@haclyok, 这个脚本更新了版本后好像使用方法也变了,你执行:
$chmod +x dropbox_uploader.sh
$./dropbox_uploader.sh
然后就可以操作了,命令格式是这样的:
./dropbox_uploader.sh COMMAND [PARAMETERS]…
例如:./dropbox_uploader.sh upload /etc/passwd是上传文件。
方法参考这里:https://github.com/andreafabrizi/Dropbox-Uploader[回复] -
为什么我昨天搞了以后今天打开网站就503了呢
[回复] -
dropbox可以手动备份 但是 批量脚本 无法执行
提示:
bash: ./bak_openshift_to_dropbox.sh: /bin/sh^M: bad interpreter: No such file or directory
请问是怎么回事啊?[回复] -
新手请教:数据库host怎么填呢?环境变量不能用?谢谢啊
[回复] -
@牛奶丶丶, 用export就可以得出自己空间的所有配置信息。
找到方法了,多谢![回复] -
PYTHON的程序改如何安装呢?
[回复]qi 回复:
@babytomas, 博客吗?简单的PYTHON一般都是上传文件,运行即可。
[回复]babytomas 回复:
@qi, 我发现国外很多JAVA/PYTHON/RUBY的云计算或者主机,就是不会用、最近发现有一个python的CMS系统不错,但是不会安装 。。
[回复]haclyok 回复:
@qi, 大哥 你在就好了。QQ发消息你没有回
我的红帽空间数据库#2003错误。。怎么办???[回复]qi 回复:
@haclyok, 不能连接到数据库服务器,可能是数据库服务没有启动
重启应用看看。[回复]haclyok 回复:
@qi, 请问怎么重启应用! 非常感谢 大哥!!!
这是我的地址
https://www.cqhexiang.com/phpmyadmin
用户名和密码随便输入。你就可以看到数据库错误的提示了。[回复] -
貌似代码的第一行是cd app-root 如果cd 项目名的话是找不到目录的,可能是我用的putty不同吧,不过我成功了
[回复] -
./bak_openshift_to_dropbox.sh: /bin/sh^M: bad interpreter: No such file or directory
提示这个怎么办。。[回复] -
冒个泡感谢下辛苦的站长
[回复] -
是设置已经改了?还是博主故意改的,不让备份成功?
[回复] -
我想问一下 不支持Zend Optimizer 没有这功能吗union.7akk.com谢谢
[回复] -
@qi,我的备份怎么不成功啊?他说
[wp-fsyy.rhcloud.com dropbox]> ./bak_openshift_to_dropbox.sh
[2013/07/27.21:16:28] creating backup directory on /var/lib/openshift/51d9531ae0b8cd43ec00000f//app-root/tmp/bak_20130727211628/
mkdir: 无法创建目录”/var/lib/openshift/51d9531ae0b8cd43ec00000f//app-root/tmp/bak_20130727211628/”: 没有那个文件或目录
[2013/07/27.21:16:28] failed to create backup directory
[2013/07/27.21:16:28] remove temporary files and directories
[2013/07/27.21:16:29] backup failed![回复]Lekia 回复:
@浮生丶云烟, 你没改文件路径……要仔细,不仅图里面说的,下面还有几个路径变量要改,app-root/tmp要改成app-root/repo/dropbox/tmp,并且在放置.sh那个文件夹里新建一个tmp和一个logs文件夹……当然你直接在app-root下新建一个tmp和logs目录也可以。
[回复] -
发现很多不知道算不算错误的地方……还是我自己搞错了,希望作者提醒一下
1、我的应用名是wp,但我的路径不是~/wp/repo…而是~/app-root/repo。
2、Dropbox uploader的下载页,很多人(包括我)直接在下载列表的.sh那里右键另存为,结果确实下了一个sh文件,但其实那是个网页…….sh的内容在网页的文本框里面……
3.如果真的随便起名做会提示dropbox_uploader_pz是一个目录,并且配置不能正确保存导致不能上传,前面要加上一个“.”
4、现在Dropbox新建APP的时候要求选择Drop-in app还是Dropbox API app,应该选择后者,然后Files and datastores,接着会要求选择授权是限制在一个以应用名为名称的文件夹里还是允许访问整个网盘,在后来运行.sh配置的时候要对应(A:应用文件夹/F,整个网盘)否则错误。
5、两个bak_openshift_to_dropbox.sh地址都不能下载,网上找到一个,里面有很多错误,首先路径的名字(不仅你图里的,下面也有)要改,第二tmp和logs文件夹要自己新建,第三他本来是想新建一个用日期作为名字的文件夹,然后把所有东西都扔里面,上传后把文件夹删除,问题是他的时间变量和file.zip之间漏了一个“/”,SQL同样如此,结果导致到了把所有文件打包的时候进入到一个空文件夹里,备份都在文件夹的父级目录也就是tmp里,没有文件给他备份,提示备份失败。
6、你竟然没说要安装rhc!貌似直接在远程服务器运行gem install rhc也能直接用。rhc-ctl-app -a freeh -e add-cron-1.4这句不知道为什么我死活运行不了,提示rhc-ctl-app是未知命令。我想方设法终于发现改成rhc app cartridge -a wp cron-1.4,这样就可以用了。
将近1周,血汗的教训啊![回复] -
你好,请帮忙解决一个问题。我已经按照上面的教程弄好一切,现在进入/app-root/repo/dropbox, 执行./bak_openshift _to_dropbox.sh 网站可以被备份到dropbox。我是在openshift网站安装cron的,然后我进入这个它的子目录weekly,新建文件夹dropbox_backup , 在里面成功创建软连接指向app-root/repo/dropbox/bak_openshift_to_dropbox(bak前没有 ./), 现在在weekly目录下运行 ./bak_openshift _to_dropbox.sh,网站同样被上传到dropbox。我编辑joballow文件,添加dropbox_backup(文件夹)和bak_openshift _to_dropbox.sh(文件,前面没有./,不是在dropbox_backup内,与之平行),杯具了,不能自动备份。问题出在哪呢?谢谢!
[回复] -
如果你没有亲身实践,请不要回复。我现在想每天备份,在OS主页上安装cron后, 经putty or winscp进入后发现除了子目录weekly外,其它子目录里面是没有黑白名单。手动备份是可以的,创建软连接后在daily目录下也可顺利执行命令,但不能自动备份。过了一天,我见它不听话,就把weekly目录下的黑白名单两个文件拖进去,黑名单里只有注释,白名单:只是添加与白名单处于同一目录的文件夹,原文件夹里面是备份脚本的软连接。仍然不成功。
–daily
–dropbox_backup(文件夹)
–.git不详
–joballow
–dropbox_backup(文件夹)
–jobdeny[回复] -
为什么会提示权限不足?
[回复] -
openshift改版了。需要把自动备份脚本的appname改成app-root
[回复]qi 回复:
@林子安, 谢谢,我去测试一下。
[回复]castnime 回复:
@qi, bak_openshift_to_dropbox.sh脚本中的
log_file=~/php/logs/dropbox_bak_${bak_time}
——/php/logs目录貌似默认没有(小问题啦)
另外安装cron-1.4的命令又变了:
rhc cartridge-add -a [yourappname] -c cron-1.4
还有就是
./dropbox_uploader.sh upload xxx.zip 后面必须有一个目标路径(可能跟我的设置有关系吧)最后谢谢博主的教程,非常感谢!!!
[回复] -
等了两个星期,果然可以确定了.一周自动备份实现不了.求指导.手动备份是可行的.白名单也是添加过的.
[回复]qi 回复:
@kiccd4g, 查看一下错误报告看看。
[回复]kiccd4g 回复:
@qi, .jobs.allow.swp是错误报告吗? ” dropbox_bakcup chronograph # # jobs.deny which is checked before jobs.allow (this file). # The README file is actually ignored due to the entry in the # # and chrono.dat files in this directory will be ignored. # Example: The chronograph script will be executed weekly but the README # # executed on a weekly-basis. # Script or job files listed in here (one entry per line) will be # “
[回复] -
备份失败!
[回复] -
不需要使用rhc工具来安装cron,这样太麻烦了,可以直接在OpenShift的网页创建。
进入APP应用页面,在下方找到“Browse the Marketplace, or see the list of cartridges you can add”,点击“see the list of cartridges you can add”,找到Cron点击安装即可。
自从OpenShift网站改版之后,很多操作都可以在网页上直接进行了。[回复]