Sync your webdav with Dropbox

这篇东西写出来完全是充数用的,唯一算是干货的两条命令在Drobpox 官方网站上就有,所以如果你跟着连接去看一下,以下文章其实可以不用看。

这件事起因是我很久很久以前和另外4个人一起买了Omnifocus Family Package,虽然我们没有任何血缘或者一般性关系。由于没有什么特殊关系直接导致了某一天OmniGroup 发了封信告诉我们License 超过5个人在用,你们这个Family 太大了。作为一个和其他购买者并没有血缘或者一般性关系的个体我最后还是去单独买了一份个人的License 高高兴兴的用起了Omnifocus 这个据很多人说是GTD 神器的软件。

GTD 这个东西有一本(很多本)书专门教你怎么实施,但是我一本都没有看过。Omnifocus 在我手里一直是作为一个Todo 类软件使用的,不管你是不是按照GTD 的方式来干,在List 上打钩这件事情其实才是这类软件真正吸引人的地方吧我想。某一天我换了台电脑后就忘记安装Omnifocus 这玩意了,在没有这东西的辅助下我的生活和工作一如既往的有效率或者拖拉没有任何改变。于是这个花了我100多刀的软件(family 的钱,personal 的钱,iOS 的钱)很长时间没有出现在我的电脑或者手机上了。

就在昨天我觉得把这个花了我老多刀的软件重新安装一下拿来用用,因为最近老板给我的事蛮多的,如果不列个List 拿出来勾掉的话在项目结束前没有任何成就感的加成我怕我会把甲方那群人得罪光。Omnifocus 装完以后就像所有已经赚过我钱的软件一样马上提示有Omnifocus 2 更新,据说新版本会给我更加舒爽的体验虽然我只是想自己列一个List 然后打勾而已。Omnigroup 那帮人告诉我因为我花了老多刀买了前一代,所以可以用很便宜的20 刀买第二版,作为一个不更新会死星人毫不犹豫的又掏了20 刀更新到了第二版打勾勾。

我知道以上几段看起来和标题完全没有任何关系,其实也确实没有关系,但是我觉得如果不写上面这些的话这篇Blog 实在太短了,Blog 太短是没有人会来看的,不过Blog 如果写长了来看的人会更少,其实Blog 现在已经没有人看了,所以写这么多的事实是今天我比较有空。

Omnifocus 的Mac 和iOS 版是通过Omnigroup 提供的服务器来同步的,作为一个受迫害妄想症轻度患者觉得这样把提升快感的List 放在别人那里管着实在很不安全,万一我想打勾勾提升快感的时候忽然服务器坏了怎么办呢,所以在第一代的时候我就自己建了一个webdav 给Omnigroup 系列的软件用于同步数据用。作为数据只在一个点存在就莫名睡不着觉星人来说不给服务器上的内容提供另一个后备点实在是非常之不爽,于是我就想到了万能的Dropbox。

Dropbox 不知道从什么时候起官方提供了Linux 支持,并且可以不用安装Gui 客户端,只需要安装Cli 的就能工作正常:

如果你是32位Linux:

$ cd ~ && wget -O - "https://www.dropbox.com/download?plat=lnx.x86" | tar xzf -

如果你是64位Linux:

$ cd ~ && wget -O - "https://www.dropbox.com/download?plat=lnx.x86_64" | tar xzf -

安装完毕以后运行:”~/.dropbox-dist/dropboxd”,会给你一个Url,把它复制到你的浏览器上通过Dropbox 授权,你的Linux 版本Dropbox 就安装完毕了。

记得下载一个Python 脚本:dropbox.py,把它随便扔在服务器哪一个bin 目录下面给它运行权限方便使用。

还记得我在服务器上安装Dropbox 只是想同步一下webdav 目录里的内容对吧,并不是想把所有的Dropbox 里的数据都搞到服务器上去浪费空间,所以建议和我一样想法的伙计们可以用这条命令“dropbox.py exclude add <目录> <目录>”把不需要同步的目录排除出去,实际上我只留了一个叫做webdav 的目录在服务器上同步。最后把这个Dropbox 下的webdav 目录用于你的Webdav 存储目录就行了。

另:做这件事情的时候忽然想起来不如把网站所有需要备份的目录都通过“ln -s”在Dropbox 目录下作了软连接,Dropbox 乖乖的把这些玩意都做备份去了。

Leave a Reply

Note: Commenter is allowed to use '@User+blank' to automatically notify your reply to other commenter. e.g, if ABC is one of commenter of this post, then write '@ABC '(exclude ') will automatically send your comment to ABC. Using '@all ' to notify all previous commenters. Be sure that the value of User should exactly match with commenter's name (case sensitive).