git://www.github.com/prashanthellina/pullbox.git
git clone http://www.github.com/prashanthellina/pullbox
$ svn co --depth empty http://www.github.com/prashanthellina/pullbox
Checked out revision 1.
$ cd repo
$ svn up trunk
Pullbox
是一个非常简单的实现,它可以作为基于Git的Dropbox的替代方案。 它目前在操作系统和OSX等任何linux上工作,但不在 Windows 上。
Dropbox工作得很好,在许多平台上工作。 尽管你的数据在其他的服务器上,但在那里比使用( 大多数情况下) 更安全。 我写了 Pullbox
来克服 Dropbox 换句话说,链接中的特定限制。 Dropbox不支持"请参见"链接。 尽管它同步链接指向的内容,但它忘记了当同步到另一台计算机时,它是一个符号。
我想维护我的个人维基和日记作为纯文本文件。 为了组织我的笔记结构,我依赖链接符号( 因此我可以在多个目录下放置相同的注释) 。 Dropbox不支持这里用例。
Pullbox
需要对安装了 git
和 inotifywait
命令的远程Linux服务器进行SSH访问。 这将用作本地数据的备份位置。
Pullbox
监视本地目录中的文件系统活动,并自动将更改推送到远程 repo 。 使用 inotify
上的。OSX上 FSEvents
。BSD风格 操作系统 上的kqueue
完成监视。
Pullbox
还监视远程 repo 上的文件系统活动,并在需要时自动将更改拉到本地 repo 。 这是通过使用 ssh
并在服务器( 很像AJAX长轮询,除了我们在这里使用SSH而不是 HTTP ) 上运行 inotifywait
来实现的。
以下说明显示了 Ubuntu Linux 。 你可以根据你所拥有的实际发行版进行修改。 让我们假设备份服务器的域 NAME 是 example.com
sudo apt-get install git inotify-tools
sudo pip install git+git://github.com/prashanthellina/pullbox
我假设备份服务器上的用户名是 prashanth
。 我们需要在 prashanth@example.com
中设置密码较少的SSH登录( 这里是指令 )
Pullbox
依赖于密码较少的登录,因此请确保在继续操作之前它正在运行。
假设你要同步的本地目录是 /home/prashanth/notes
。 请确保这里目录是只读的,而不是在第一次启动 Pullbox
时显示。 这允许 Pullbox
正确克隆远程 repo 。 可以通过运行以下命令手动运行 Pullbox
。
pullbox --log-level DEBUG/home/prashanth/notes prashanth@example.com
就是这样只要上面的Pullbox
命令运行,你的目录就会与远程服务器 repo 保持同步。 为了使命令运行在所有时间( 系统重启后,意外终止等) 中,如如下所示,将一个条目放置
*****/usr/local/bin/pullbox --log-level DEBUG --log/tmp/pullbox.log --quiet/home/prashanth/notes prashanth@example.com &>/dev/null