首页 / 知识
关于linux:保持最新的远程目录
2023-04-12 02:27:00

Keep Remote Directory Up-to-date我绝对喜欢Winscp中的"保持远程目录最新"功能。不幸的是,我找不到在OS X或Linux中使用起来那么简单的东西。从理论上讲,我知道可以使用更改文件或rsync来完成同一件事,但是我始终发现这两种工具的教程都缺乏和/或矛盾。 我基本上只需要一个可以在OSX或Linux上运行的工具,并在对本地目录进行更改时使远程目录与本地目录保持同步(镜像)。 更新资料 通过这些解决方案,我看到了一对夫妇,它们解决了手动保持远程目录与本地目录同步的一般问题。我知道我可以将cron任务设置为每分钟运行rsync,这应该非常接近实时。 这不是我一直在寻找的确切解决方案,因为winscp会执行此操作以及更多操作:它会检测目录中的文件更改(在我处理它们时),然后自动将更改推送到远程服务器。我知道这不是最好的解决方案(没有代码存储库),但是它允许我在开发代码时非常快速地在服务器上测试代码。有谁知道如何将rsync与其他命令结合使用以获得此功能? lsyncd似乎是完美的解决方案。它结合了inotify(内核内置函数,用于监视目录树中的文件更改)和rsync(跨平台文件同步工具)。
从github引用:
您希望如何"实时"同步?我仍然倾向于rsync,因为您知道它将在两个平台(Windows,也与cygwin)上完全受支持,并且您可以通过cron作业运行它。我有一个在系统上运行的超简单bash文件(这不会删除旧文件):
最好的选择是进行设置并尝试一下。 请记住,rsync(至少在cygwin中)不支持Unicode文件名(截至2008年8月16日)。 对于Linux远程访问,您要使用SSH文件系统'sshfs'。
然后将其视为网络安装,这是... 在我的博客上有更多详细信息,例如如何设置它,以便您可以以普通用户身份进行操作 如果您想要winSCP的异步行为,则需要将rsync与定期执行它的东西结合使用。上面的cron解决方案可以工作,但是对于winscp用例来说可能会显得有些过时。 以下命令每5秒执行一次rsync,将内容推送到远程主机。您可以根据需要调整睡眠时间以减少服务器负载。
如果您的目录结构非常大,并且需要减少轮询的开销,则可以使用"查找":
我说过cron可能会过分杀人?但是至少这一切都是从命令行完成的,可以通过ctrl-C停止。 千位 要检测更改的文件,您可以尝试使用fam(文件更改监视器)或inotify。后者是特定于linux的,fam具有一个bsd端口,该端口可能在OS X上运行。两者都具有可以与rsync一起在脚本中使用的用户空间工具。 我有同样的问题。我喜欢winscp"保持远程目录最新"命令。但是,为了摆脱Windows,我丢失了winscp。我确实编写了一个脚本,该脚本使用fileschanged和rsync来进行类似于实时的操作。 如何使用:
几个缺点:
您可以始终使用版本控制,例如SVN,因此您要做的就是每天晚上使服务器在文件夹中运行svn。如果您要公开共享文件,则会遇到安全问题,但是它可以工作。 如果您使用的是Linux,请学习使用rsync。确实没有那么困难,因为您可以使用-n测试每个命令。浏览手册页,您想要的基本格式是
我从学校服务器运行到家庭备用计算机的命令是这个
这将获取我主目录(?)中的所有文件,并使用rsync的存档模式(-a),详细地(-v),列出所有已进行的更改(-i),同时删除不再存在的任何文件(-删除),然后将放在我的远程服务器上的文件夹/ home / me / School /中。它打印出的所有信息(复制的内容,删除的内容等)也都附加到文件BackupLog.txt中 我知道这是rsync的旋风之旅,但我希望它能有所帮助。 我曾经在Windows下使用与您相同的设置,即本地文件树(版本化)和远程服务器上的测试环境,并使用WinSCP对其进行实时镜像。当我切换到Mac时,我不得不做一些挖掘工作才感到高兴,但最终还是使用了:
我真的可以推荐此设置,希望对您有所帮助! 好问题,我已经搜寻了几个小时的答案!
我已经测试过lsyncd,问题是默认延迟太长,并且没有示例命令行提供 另一个问题是默认情况下rsync每次都会询问密码! lsyncd解决方案:
另一种方法是在脚本中使用inotify-wait:
对于第二个解决方案,您将必须安装
为了避免每次更改都需要输入密码,只需使用 用户watcher.py和rsync可以自动执行此操作。在此处阅读以下分步说明: http://kushellig.de/linux-file-auto-sync-directories/ 根据icco对SVN的建议,我实际上建议,如果您正在使用Subversion或类似版本进行源代码控制(如果没有,则应该开始使用),可以通过以下命令使生产环境保持最新状态将存储库更新为提交后挂钩。 在执行此操作时,有很多变量,但是我看到的工作是将开发或活动站点作为工作副本,然后在提交后使用带有强制命令的ssh键登录到远程站点并触发工作副本上的svn。或者,在提交后挂钩中,您可以触发远程计算机上的svn导出,或者触发本地(到svn存储库)的svn导出,然后触发rsync到远程计算机。 我会担心检测到变化并推动变化的事物,甚至会因为种族条件而担心每分钟运行的事物。您怎么知道它不会在写入文件的那一刻传送文件?偶然碰到一次或两次,您将失去不断进行同步或类似操作所具有的所有节省时间的优势。 似乎您正在解决错误的问题。如果您要在远程计算机上编辑文件,则可以尝试使用诸如jedit的ftp插件之类的东西。 http://plugins.jedit.org/plugins/?FTP这样可确保您只有该文件的一个版本,因此它永远不会不同步。 DropBox(http://www.getdropbox.com/)会做什么吗? 好吧,我遇到了同样的问题,可以将它们一起使用:rsync,SSH无密码登录,Watchdog(Python同步实用程序)和Terminal Notifier(由Ruby制成的OS X通知实用程序)。不需要,但有助于了解同步完成后)。 我使用Dreamhost Wiki:http://cl.ly/MIw5的本教程创建了无密码登录的密钥。 1.1。完成后,测试是否一切正常……如果无法无密码登录,也许您必须尝试进行afp挂载。 Dreamhost(我的网站所在的位置)不允许afp挂载,但允许无密码登录。在终端中,键入:
我从Github页面安装了终端通知程序:http://cl.ly/MJ5x 2.1。我使用了Gem安装程序命令。在终端中,键入:
2.3。测试通知是否有效。在"终端"中,键入:
创建一个sh脚本来测试rsync +通知。使用您喜欢的名称将其保存在您喜欢的任何位置。在此示例中,我将其称为?/ Scripts / sync.sh我使用了" .sh扩展名,但是我不知道是否需要它。
3.1。请记住要授予对此sh脚本的执行权限。在终端中,键入:
最后,我从Github页面下载并安装了Watchdog:http://cl.ly/MJfb 4.1。首先,我使用Brew安装了libyaml依赖关系(如何安装Brew有很多帮助-就像OS X的"能力"一样)。在终端中,键入:
4.2。然后,我使用了" easy_install命令"。进入看门狗的文件夹,然后输入Terminal:
现在,一切都已安装!转到要同步的文件夹,根据需要更改此代码,然后输入Terminal:
它必须完全是这种方式,并带有斜线和换行符,因此您必须将这些行复制到文本编辑器,更改脚本,粘贴到终端并按回车键。 我尝试了没有换行符,但它不起作用! 在我的Mac中,我总是会收到一个错误,但似乎没有任何影响:
现在,在文件夹内的文件中进行一些更改,然后观看魔术! 我正在使用这个小的Ruby脚本:
适应您的需求! 您也可以将Fetch用作SFTP客户端,然后直接从中在服务器上编辑文件。还有SSHFS(将ssh文件夹安装为卷)选项。这与stims所说的一致-您确定要使内容保持同步,还是只想编辑服务器上的文件? OS X拥有自己的文件通知系统-这是Spotlight所基于的。我还没有听说过任何使用它来保持同步的程序,但这当然是可以想象的。 我个人使用RCS来进行此类操作:-尽管它具有手动方面的功能,但我不太可能想在不先进行测试的情况下将某些东西从我的开发机推入测试服务器。如果我在开发服务器上工作,则可以使用上面给出的选项之一。
如果您正在远程服务器上开发python,Pycharm可能是您的不错选择。您可以使用pycharm远程开发功能将远程文件与本地文件同步。指南链接为: |
最新内容
相关内容
python如何确定文件是否存在
python如何确定文件是否存在,检测,培训,名字,异常,文件,模块,文件夹,语句,操作,方法,python中的os模块os模块中的os.path.exists(path)可以检python怎么读文件最后几行
python怎么读文件最后几行,培训,代码,情况,异常,时间,位置,文件,指针,需求,开销,处理文件时,一个常见的需求就是读取文件的最后一行。那么这个python如何执行python文件
python如何执行python文件,代码,培训,文件,程序,命令,模式,事半功倍,后缀,文本,以上,用文本编辑器写Python程序,然后保存为后缀为.py的文件,就python怎么打开文件
python怎么打开文件,代码,系统,培训,信息,基础,环境,文件,源文件,目录,命令,一、使用python源文件的几种方法\运行python脚本:a.windows下打python怎么执行.py文件
python怎么执行.py文件,培训,位置,代码,文件,空格,路径,文件名,时候,右侧,单击,要运行一个已经编写好的.py文件,可以单击开始菜单,在“搜索程序python如何打开文件
python如何打开文件,培训,通用,文件,模式,对象,方式,字节,函数,操作,字符串,python中的文件对象:文件对象不仅可以用来访问普通的磁盘文件,而python怎么生成xml文件
python怎么生成xml文件,数据,培训,设计,标准,文件,标记,语言,实例,模块,宗旨,用python内置的xml.dom可以对xml文件进行解析处理。什么是xml?Xpython新手必看之文本文件的输入输
python新手必看之文本文件的输入输出,培训,标准,数据,文件,对象,输入输出,新手,模式,功能,内容,Python具有基本的文本文件读写功能。Python的python包和文件夹有什么区别
python包和文件夹有什么区别,培训,单位,公共,文件夹,显卡,模块,大小,字节,剩余,实例,python包和文件夹有什么区别1、一个或多个文件夹组成一python不同大小文件的复制方法
python不同大小文件的复制方法,培训,文件,内容,大小,方法,顺序,以上,教程,更多,python不同大小文件的复制方法1、小文件复制,打开一个已有文python如何判断文件夹内的重复图片
python如何判断文件夹内的重复图片,图片,照片,连续,培训,文件夹,文件,文件大小,剩余,图片大小,图片集,python如何判断文件夹内的重复图片步骤python按行读取文件的方法比较
python按行读取文件的方法比较,培训,文件,方法,内容,内存,末尾,指针,实例,以上,教程,python按行读取文件的方法比较1、read方法默认会把文件