跳转到主要内容

Rsync包装器,使同步变得简单

项目描述

此程序是围绕rsync的包装器。它将帮助您

  • 如果您需要经常从远程服务器同步文件

  • 无需记住文件的位置。它会为您找到它们。

要求

  • Python >= 2.6 (Python >= 2.7 for tests)

  • 已安装rsync

  • 远程系统上已安装带有最新数据库的locate

第一步

如果您是ssh的新手,首先设置ssh配置。如果您处理许多服务器,为它们提供一个别名会使它们更容易记住,并且您不需要输入太多。

  1. 在您的SSH主目录中创建一个ssh配置,例如。

    vim ~/.ssh/config

    您可以使用以下示例作为起点

    Host spameggs
    Hostname  12.112.11.122
    Compression yes
    CompressionLevel 9
    User guido

    但请确保检查文档ssh_config的手册页(5)

  2. 仅允许所有者读取此配置

    chmod 600 ~/.ssh/config
  3. 测试您是否可以使用别名仅登录到您配置的主机

    ssh spameggs

示例

  1. 从配置在~/.ssh/config中的远程服务器spameggs同步ZODB。我们选择第二个数据库而不是第一个

    $ zyklop spameggs:Data.fs .
    Use /opt/otherbuildout/var/filestorage/Data.fs? Y(es)/N(o)/A(bort) n
    Use /opt/buildout/var/filestorage/Data.fs? Y(es)/N(o)/A(bort) y
  2. 同步提供路径段的目录

    $ zyklop spameggs:buildout/var/filestorage$ .
  3. 同步以blobstorage结尾的目录,排除任何其他带有后缀的blobstorage目录(例如:blobstorage.old

    $ zyklop spameggs:blobstorage$ .
  4. 如果您确切知道从哪里复制,请使用绝对路径

    $ zyklop spameggs:/tmp/Data.fs .
  5. 同步需要更高权限的目录。我们使用-s参数

    $ zyklop -s spameggs:blobstorage$ .
  6. 干运行会打印出所有找到的远程路径,然后退出

    $ zyklop -d spameggs:blobstorage$ .
    /opt/otherbuildout/var/blobstorage
    /opt/otherbuildout/var/blobstorage.old
    /opt/buildout/var/blobstorag
  7. zyklop自动同步第一个找到的结果,而无需提示

    $ zyklop -y spameggs:blobstorage$ .

已知问题

zyklop只是卡住不动

这可能是由paramiko和不够充分的SSH设置引起的。请确保您可以通过简单地发出命令来无问题地登录

ssh myhost

如果这不能解决问题,请尝试从源提供绝对路径。有时用户在远程服务器上没有很多权限,而paramiko只是等待远程命令的输出

zyklop myhost:/path/to/file .

动机

我大部分时间都在处理Zope服务器。其中一些有非常大的Data.fs - 一个面向对象的数据库。在99%的情况下,我的PC上有客户端数据库的旧版本。复制整个数据库将花费我很多时间。使用rsync并简单地下载二进制补丁,使更新本地数据库变得很快。

总结来说,使用zyklop我想解决两个问题

  1. 下载大的ZODB需要很长时间和带宽。我根本不想等那么长时间,下载那么多。

  2. 大多数时候,我记不起远程服务器上要复制的项目的确切路径。

待办事项

  • TTY支持:有时如果SSH配置为仅允许tty连接,则需要

  • 如果仅配置了SSH密码认证,则不要挂起

开发

如果您对黑客攻击感兴趣,请在github上克隆zyklop

https://github.com/romanofski/zyklop

变更

0.5.2 (2013-02-12)

  • 修复:使用一个函数来检索用户名。

0.5.1 (2013-02-12)

  • 命令行实用程序现在显示版本信息。

  • 修复:现在使用ssh配置中配置的“用户”,并回退到环境用户

0.5 (2013-02-06)

  • 添加-d或–dry-run开关,以仅由zyklop打印出找到的远程路径

  • 添加-y或–assume-yes开关以同步找到的第一个结果

  • 修复损坏的README.rst

0.4 (2013-02-05)

  • 改进文档

  • 修复了导致在发出远程命令以查找目标路径时出现挂起命令的bug

0.3 (2013-01-14)

  • 更改主机、匹配参数:现在您可以在一个参数中指定源主机和路径匹配,类似于scp(例如:foohost:/path)

  • 允许提供要复制的文件的绝对路径。

0.2 (2012-03-08)

  • 添加了对sudo在查找和同步(rsync)中的基本支持

  • 添加argparse作为依赖项,因为Python 2.6不会有它

  • 添加新位置参数以提供要复制文件/目录的目标位置

项目详情


下载文件

下载适合您平台的文件。如果您不确定要选择哪个,请了解有关安装包的更多信息。

源分发

zyklop-0.5.2.zip (29.7 kB 查看散列)

上传

由以下组织支持

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误日志 StatusPage StatusPage 状态页面