保持台式机和笔记本电脑之间经常更改的文件同步

保持台式机和笔记本电脑之间经常更改的文件同步

我正在寻找一种让台式机和笔记本电脑保持同步的方法。我想保持同步的是一些文件夹,主要是 ~/Documents,这些文件夹在使用时会经常更改。

如果重要的话,我可以通过 URL 从任何地方连接到我的桌面,但我的笔记本电脑更难访问,因为它可能位于 NAT 等后面。

我一直在研究 Ubuntu One,但它似乎不太适合处理用 LaTeX 编写的文档。如果我处理 Ubuntu One 目录中的 .tex 文件并pdflatex时不时地(工作时每 10 秒一次)编译它(使用),它会创建几个新文件,包括一个 pdf,这些文件会上传到 Ubuntu One,这看起来很愚蠢,因为它会在处理 .tex 文件时创建连续上传。我还通常使用 git 控制 .tex 文档的版本,然后每次提交(这也会经常发生)都会导致上传(通过 ./.git 中的更改),以便它在工作时连续发生。另一个例子是编辑经常保存的图像。我认为最好的是每十分钟或每次工作会话结束时同步一次(但可能有其他方法来处理这个问题?)。

答案1

我认为您不需要将生成的 (PDF、dvi 或 Postscript) 文件添加到版本控制系统;但是将它们复制到同步目录或其他服务器是有意义的。我通常使用命令来做这类事情make

Makefile在 LaTeX 文件所在的目录中有一个类似这样的文件(缩进是制表符,而不是空格)。请参阅GNU Make 手册

%.pdf: %.tex
        pdflatex  $<
        pdflatex  $<

store_pdf:
        cp example*.pdf path/to/synced_directory

upload_pdf:
        scp example*.pdf [email protected]:path/to/directory

clean:
        rm *.log *.aux *.nav *.vrb *.out *.snm *.toc

如果您想将文件移动到同步目录或您有 ssh 访问权限的服务器,您需要输入:

make store_pdf
make upload_pdf

如果您想从 example1.tex 生成 example1.pdf,您需要输入:

make example1.pdf

如果您想删除不需要的文件,您需要输入:

make clean

答案2

您已经使用过 git,这样事情就简单多了。这里的解决方案是使用 2 个 git 存储库,一个由 Ubuntu One 同步,另一个不同步。然后,当且仅当您想要同步时,您才可以将更改推送到同步文件夹。

您可能希望将 ~/Documents 中的版本与所有其他文档同步(如果尚未启用 Ubuntu One 同步 ~/Documents),因此请在非同步文件夹中创建一个克隆:

mkdir ~/nonsynced
cd ~/nonsynced
git clone ~/Documents/LATEX_PROJECT

然后,您就可以处理 ~/nonsynced/LATEX_PROJECT 中的文件。当您想要同步时,请推送到 ~/Documents/LATEX_PROJECT:

git push ~/Documents/LATEX_PROJECT

如果您随后在另一台同步的计算机上工作,则可以通过运行以下命令获取最新版本:

git pull ~/Documents/LATEX_PROJECT

来自 ~/nonsynced/LATEX_PROJECT。

您需要将 LATEX_PROJECT 替换为 ~/Documents 中版本控制文件夹的名称。

答案3

这是一个基于的解决方案fossfreedom 对另一个问题的回答使用 Unison 同步两个 Ubuntu 系统Unison 手册我对另一个问题的回答

设置

两台电脑

  1. sudo apt-get install openssh-server unison
  2. 测试从每台计算机到另一台计算机的 SSH 链接。

在可能位于 NAT 后面的计算机上

  1. mkdir ~/.unison
  2. nano default.prf- 创建一个轮廓名为 default.
  3. 编写配置文件,例如:

    root = /home/user
    
    root = ssh://[email protected]//home/user
    
    path = Documents
    

同步

unison -auto default通过在可能位于 NAT 后面的计算机上运行来同步计算机。这将同步~/Documents。我在笔记本电脑与台式机离开 LAN 之前和之后执行此操作,以保持它们的文档同步。

相关内容