Articles of rsync

如何防止rsync用户使用-t?

我运行一个服务器,我们向客户端提供sftp凭据,以传送各种大小的文件。 保留上传时间对我来说非常重要,而且我真的不能在原始系统上创build或修改时间。 不幸的是,我们的许多客户坚持使用rsync -av来上传文件。 我已经做了很多 – 使用chroot来沙盒用户,防止ssh访问等,但这仍然是一个痛苦的我们的屁股。 有没有办法阻止rsync或sftp更改创build/修改时间服务器端? 我尝试了谷歌search,但我似乎无法提供正确的星座条款,以淘汰所有的人试图从客户端使用 rsync的文章/问题。

数千个小文件的服务器之间的实时文件同步

我已经完成了创build两个CentOS 7服务器的任务,不仅数据库将被复制,还有文件。 现在我的问题是,如果不是从几千字节到大约1千兆字节的大小不等的一百万个文件,那么将会有成千上万个文件。 我读过 incrion lysncd git的附件 ChironFS 现在我想问你的经验,如果你一直在使用它或正在使用它们。 性能如何与文件更改有关的复制和删除? 我非常害怕使用任何rsync,因为我的经验是它有很多小文件不是很快,所以我不能真正使用它来进行实时文件复制。 还是我错了? 请certificate我错了。 🙂 或者,也许我需要第三和第四台服务器作为文件服务器? 如果是,那么问题仍然存在:如何在两台服务器之间实时复制文件? 干杯!

ext3 / 4上的不可变硬链接?

在我对fs级别的文件版本,快照和相关的想法的研究中,我看了一下硬链接,看看它们是什么以及它们是如何performance的。 使用rsync,你可以得到一个非常漂亮的穷人的快照系统,并在本地不支持的文件系统上运行。 但是,你可以在ext3 / 4或其他文件系统上获得不可变的硬链接吗? 我对不变硬链接的定义是:一个硬链接,当在一个位置上改变时,变成一个普通的副本而不再是一个硬链接。 我想这样做是因为它可以使源数据的快照使用链接而不是数据副本(在使用rsync快照技术的情况下)。 我有几千兆字节的数据,由于空间限制而无法复制,但是如果我可以智能地快照单个更改的文件,而其余链接到源而不是副本,则我有足够的空间。 鉴于这一切,有没有其他的技术,function或技术,我真的在寻找?

通过cron w / Ubuntu 10.04的ssh错误间歇性rsync:无法解释的协议数据stream

我有一些rsync客户端试图连接到一个rsync服务器的例行公事,他们间歇性地失败与几个错误消息之一。 或者: rsync: connection unexpectedly closed (0 bytes received so far) [Receiver] rsync error: unexplained error (code 255) at io.c(601) [Receiver=3.0.7] 要么: rsync: connection unexpectedly closed (0 bytes received so far) [Receiver] rsync error: error in rsync protocol data stream (code 12) at io.c(601) [Receiver=3.0.7] 我使用的rsync命令的当前版本是: rsync –rsync-path="/usr/bin/rsync" –stats –compress –times –links \ –log-file=/home/ubuntu/rsynclog.txt –exclude […]

每日增量备份+每周完整备份

我有一台装有CentOS 5.6的服务器,上面有SVN,我想每天进行一次增量备份,每周进行一次完整的备份。 我需要将其备份到将连接到服务器的外部硬盘上。 我尝试过使用rsync提供的由Mike Rubel提供的示例,但实际上并没有进行增量备份 – 它正在进行完整备份。 不幸的是,我不太熟悉bash脚本:/ 任何帮助表示赞赏

从服务器C将文件从远程服务器A传输到远程服务器B.

我正在尝试解决一个有趣的问题。 我有一个JumpBox服务器,为了安全地ssh进入客户端的服务器。 这是我的客户端打开端口22的唯一服务器。 但是,这个JumpBox服务器非常小,没有足够的空间容纳大文件(大于5GB)。 所以,我为这个目的build立了一个更大的磁盘服务器,但是我不希望客户端必须打开端口22到另一个IP地址。 服务器T =传送箱 服务器J =跳箱 服务器C = Clientbox 从服务器J,我可以将服务器T上的文件传输到服务器C吗? 谢谢,让我知道如果我需要澄清任何事情

只复制整个文件

有什么方法可以将目录从一个文件系统复制到另一个文件系统,但是如果我们在目标文件系统上的磁盘空间不足时删除部分文件? 我search了cp和rsync手册,但没有find任何东西; 我可以在一个shell脚本中做到这一点,但如果可能的话,要避免它。 目前我做: cp -r /source /dest 要么 rsync -avr /source /dest 米

使用rsync的Git风格的增量备份

我正在尝试在Ubuntu上设置一个备份脚本。 我每天都想将本地源目录复制到以date唯一命名的远程服务器上的备份目录。 (例如,backup-jan1 /,backup-jan2 /等)应该存储最早状态的镜像并使用差异文件来重新创build新的备份点。 rsync很简单。 我已经设置了一个脚本来做备份,在当天命名备份目录,并且创build一个符号链接到最近的备份(IP已被编辑): date=`date "+%m%d"` rsync -ave ssh /srv [email protected]:/backup/backup-$date/ ssh [email protected] rm -rf /backup/current ssh [email protected] ln -s backup-$date/ /backup/current 但是,这里是棘手的部分: 我不希望它复制没有改变的文件。 所以,如果自上次每日备份以来有任何文件发生了变化,它将像正常一样复制它们。 否则, 它会将先前已备份的文件从其第一个备份目录符号化为新备份。 (有点像git) 因此,举个例子,假设我开始备份Jan 1。backup-jan1 /目录将包含所有的原始备份文件。 第二天1月2日的备份应该只复制在24小时内更改的文件。 对于所有其他文件,它将从Jan 1备份文件中创build符号链接。 在1月3日,我添加了一个文件并删除了另一个文件。 如果一个文件被删除,它不应该继续被链接。 示例目录/文件结构: backup-jan1/ (initial backup) file_a file_b backup-jan2/ (no changes) file_a (symlink to ../backup-jan1/file_a) file_b (symlink to […]

BackupPC – 传输间歇性失败

BackupPC在我的LAN上工作良好,但在备份我的远程服务器时遇到问题。 我通过ssh使用rsync,并将最大ping增加到500,因为远程服务器很远。 这里是我的错误日志(用户和1.2.3.4是掩码信息): / usr / bin / ssh -p 2222 -q -x -l user 1.2.3.4 / usr / bin / rsync –server –sender –numeric-id –perms –owner –group -D –links –hard-links –times –block-size = 2048 –recursive –ignore-times。 / Xfer PIDs are now 5705 Got remote protocol 30 Negotiated protocol version 28 Sent include: /home Sent […]

Rsync:常规文件/文件夹同步

我有一个文件服务器,负责每天从多个工作站中提取一个文件夹树。 我目前使用的方法是使用rsync(提供的目录名称和/或文件保持不变),但是,当文件被重命名或在subdir1中移动时,rsync会将它们复制到服务器,创build重复项。 我必须手动查找并删除以前同步期间留在服务器上的无关文件/文件夹。 请注意,我不能使用rsync的 – 删除标志,因为从工作站的任何同步将镜像该特定的文件夹树,而不是合并到服务器。 可视图: Server: Workstation1 Workstation2 Workstation(n) Folder* Folder* Folder* Folder* -subdir1 -subdir1 -subdir1 -subdir(n) -file1 -file1 -file2 -file(n) -file2 -file(n) 有一个简单的脚本(最好在bash中,没有什么奇特的),可以在文件被重命名或移动到不同的子目录时完成删除多余的文件/文件夹? 有没有一个不同的程序,很像rsync,可以自主完成这个任务,并以一个更简单的方式? 我一致看过,但是我不喜欢它为同步信息保留本地数据库的事实。 任何提示,我应该如何解决这个问题? 先进的谢谢您的帮助。 编辑:我刚刚尝试过统一,我可以放心地说现在是不可能的。 unison是一个双向同步工具,从我的testing中,它将服务器上存在的文件映射到所有工作站。 – 这是不需要的。 最好,我想文件/文件夹留在其各自的工作站,只是合并到服务器。 AKA单向同步; 但重命名/移动传播到服务器。 我可能不得不像Kyle提到的Git / Mercurial / Bazaar一样,但是仍然不确定他们是否适合这份工作。