关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。
想改进这个问题?将问题更新为 on-topic对于堆栈溢出。
6年前关闭。
Improve this question
对于我正在学习的当前类(class),我们正在使用远程计算机来运行我们的代码。
我在我的 MacBook 上进行本地编码,我正在寻找一种让我的本地代码在集群上保持最新的好方法。
我这样做的方式是打开一个终端以运行 SCP 以复制目录,并打开另一个终端,该终端通过 SSH 连接到集群中以制作和运行我的代码。
这对我来说似乎不太理想。有没有一种方法可以在修改文件时自动将文件发送到集群?
还是我坚持使用单行命令来移动所有内容?
最佳答案
除了分布式版本控制之外,您最好的选择是使用 rsync over ssh。我通过对每台机器执行以下操作来保持几台机器同步:
rsync -urltv --delete -e ssh /src.dir user@othermachine:/src.dir
您提到使用 MacBook - rsync 在 Mac OS X 上。据我所知,它不需要额外安装。 rsync 的美妙之处在于它查找修改并且只复制修改过的文件。它不会像分布式版本控制系统那样合并同时修改,但如果你像我一样在笔记本电脑上做一些工作,然后在桌面上做一些工作,rsync 是发送所有更改文件的最佳方式(并且只有更改的文件)在您切换模式时从一个到另一个。
注意:这里使用的 rsync 选项是:
-u
, --update 跳过接收器上较新的文件 -r
, --recursive 递归到目录 -l
, --links 将符号链接(symbolic link)复制为符号链接(symbolic link) -t
, --times 保留修改时间 -v
, --verbose 增加详细程度 --delete
从 dest 目录中删除无关文件,充当 --delete-during
最后,
-e
是允许您指定远程 shell 的选项,在本例中为 ssh
关于synchronization - 如何使用 ssh 将我的代码同步到远程机器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/662006/