Articles of rsync

在不良连接上传输大文件时,Rsync挂起

一直有问题通过一个非常糟糕的连接(我试图上传文件在云服务器上)通过rsync传输文件。 大概一分钟左右,rsync就会挂起。 这是我试图执行上传的方式: rsync -avz –progress -e "ssh" ~/target.war root@my-remote-server:~/ 没有错误信息或其他信息。 它只是挂起显示像这样的东西: 7307264 14% 92.47kB/s 0:07:59 据我所知,ping远程terminal似乎不会丢包。 我的本地机器是Mac。 如何克服这个问题的任何帮助将是很好的。 谢谢。

rsync备份远程服务器维护组和所有者

这可能看起来像一个应该已经被覆盖了数百万次的问题,但我遇到的问题是,在networking冲刷的几天之后,我仍然可以修复。 我有一个我想完整备份的远程服务器。 我从本地机器上运行rsync,用户seb可以通过ssh使用公共rsa密钥访问服务器。 遥控器有两个用户, seb和git都有自己的文件夹。 用户seb是远程的sudoer。 我从本地运行的命令 sudo rsync -av –rsync-path="sudo /usr/bin/rsync" seb@remote:/ /path/to/backup/ 这在身份validation和权限方面运行良好。 我必须以root身份远程运行sudo,因为否则,我会得到root和git拥有的权限被拒绝的权限。 我使用sudo在本地以root身份运行,因为rsync手册指出,为了保持组和所有者设置与-a标志一样,接收用户应该是root用户 。 但是,在rsync完成后, git拥有文件的组和所有者将分别更改为rtkit和bluetooth 。 现在我认为它只对git用户而言是失败的,而对于root和seb则不然,因为后两个用户都存在于两台机器上。 有没有办法保持组和所有者设置,而不在本地机器上创build用户git ? PS的全面披露,因为我不知道这是否会有所影响,但我不这么认为,我运行rsync通过非标准的端口与-e "ssh -p PORT"

我可以使用rsync同步各个方向的文件吗?

我正在build立一个networking服务器集群,并有一些file upload的设施。 这可能发生在任何networking节点上,我试图找出将每个networking服务器上的文件分发给其余所有网站的最佳方法。 这是可以用rsync实现的吗? 我所见过的所有例子都是关于本地 – >远程的,但在这种情况下,新文件可能出现在任何节点上。 如果没有,我会写我自己的过程,但我想我会检查之前重新发明轮!

防止rsync更改ctime

我有以下情况: 我有一个文件在一个目录中有一个进程正在改变一些文件,并更新所有文件的ctime。 我想将所有文件rsync同步到目标目录,但是保留那些只更新了ctime的文件的ctime。 我试过以下(〜/ source / test.txt是我的源文件,〜/ target / test.txt是我的目标文件)。 chmod a+w source/test.txt (updates ctime but not mtime) rsync -a -v -c –copy-dirlinks –delete –partial –inplace source/test.txt target 我的期望是那些在源目录中只更新了ctime的文件不会被rsync检测到,显然是这样的。 但目标目录中的相应文件仍然会更新其ctime更新,这正在导致我的备份过程出现问题。 有什么办法让rsync不更新文件的ctime没有被修改?

EC2之间的同步代码

ELB内部有多种EC2盒子,其中一种专门用于SVN。 我目前有一个脚本被调用作为后提交钩的一部分,这是为了在不同的EC2之间同步文件。 问题是新的文件/文件夹是同步的,但删除不是。 我想同步一切,删除(文件/文件夹),更新等 这是我目前使用的: #!/bin/bash rsync -avz ~/testing/* -e "ssh -i ./testing.pem" ec2-user@ipgoeshere:/home/ec2-user/testing 再次,我希望从源头将所有内容同步到EC2,包括添加,更改,删除等。 我错过了什么? 谢谢!

SVN发布提交问题(调用Bash)

所有, 我想调用一个bash脚本(做一些rsync魔术)到我的post-commit hook结束。 这是我的后提交钩子看起来像: #!/bin/bash REPOS="$1" REV="$2" SVNLOOK="/usr/bin/svnlook" AWK="/usr/bin/awk" temp_dir="/var/www/vhosts/domain.com/temp"$(date +"%s") # to avoid conflict, append unix timestamp webroot_dev="/var/www/vhosts/domain.com/dev.project.com" webroot_alpha="/var/www/vhosts/domain.com/alpha.project.com" webroot_beta="/var/www/vhosts/domain.com/beta.project.com" webroot_live="/var/www/vhosts/domain.com/project.com" repo_dev="file:///var/svn/Echo/branches/Dev" repo_alpha="file:///var/svn/Echo/trunk" repo_beta="file:///var/svn/Echo/branches/Beta" repo_live="file:///var/svn/Echo/branches/Live" is_dev=`$SVNLOOK dirs-changed -r "$REV" "$REPOS" | grep -c "Dev"` is_alpha=`$SVNLOOK dirs-changed -r "$REV" "$REPOS" | grep -c "trunk"` is_beta=`$SVNLOOK dirs-changed -r "$REV" "$REPOS" | grep -c "Beta"` is_live=`$SVNLOOK dirs-changed […]

在/etc/rsyncd.conf中使用主机名而不是IP地址不起作用

从我所了解的rsync文档中,我应该可以使用主机名与主机允许。 但是,它不起作用。 这工作: pid file = /var/run/rsyncd.pid syslog facility = rsync.log hosts allow = 123.123.123.123 这不起作用: pid file = /var/run/rsyncd.pid syslog facility = rsync.log hosts allow = myaddress.dynalias.org @ERROR: access denied to devf from unknown (123.123.123.123) 如果我把主机添加到/ etc / hosts,它确实可行! 但是,我试图通过使用我的dynamicDNS主机名来避免每次更改我的IP地址。 有什么我需要做的,以告诉rsync做一个DNS查找,而不是只参考主机文件?

带有–backup的rsync

我正在尝试rsync一个文件目录,并在目的地存储时间戳修订。 这是我目前使用的: rsync –verbose –progress –stats –compress –no-whole-file –inplace –recursive \ –times –perms –owner –group –links –delete –backup –suffix=.`date +%y%m%d_%H%M` \ user@remote:/backups/mysql/ /data/backups/mysql/remote/ user@remote:/backups/mysql/中的文件如下所示: db1.gz db2.gz 当我第一次运行rsync时,如预期的那样,我在/data/backups/mysql/remote/得到了两个文件的复制。 当文件发生变化后再次运行时,旧文件得到时间戳,新文件转移到dest: db1.gz.150522_1328 db2.gz.150522_1328 db1.gz db2.gz 这似乎是我想要的,除了当我第三次运行它(与更改文件)输出显示“删除”消息之前的同步: deleting db1.gz.150522_1328 deleting db2.gz.150522_1328 我的目标是留在这里: db1.gz.150522_1328.150522_1515 db2.gz.150522_1328.150522_1515 db1.gz.150522_1515 db2.gz.150522_1515 db1.gz db2.gz 如何将后缀添加到现有的备份文件? 另一件我需要深入的是,当我rsync没有加速,甚至考虑到99%的文件是相同的,而我使用–rsyncable时,我gzip他们。 (是否在增量转移之前重命名备份文件?)

多台服务器Rsync同时安装到一个NAS中

场景: 1台NAS(Synology Cubestation CS407) 各种实体零售商店中的20台远程服务器(每个商店1台服务器) 总部和商店之间的networking位于MPLS / VPN中。 我已经从每个商店服务器创build了无密码访问到我们的NAS。 我已经创build了一个bash脚本,用于备份特定的一组文件夹,数据从2.5到14个数据库,具体取决于商店。 bash脚本在各个存储服务器上运行,并使用Rsync将文件夹复制到NAS中 rsync -azv –delete-after –stats /u/archive/ root@nas01:/volume1/bak/$HOSTNAME/u/archive$(date +%u)/ 题: 我可以安全地在多个服务器上同时安全地执行这个脚本,每晚在ie 2AM – NAS上的Rsync可以同时处理来自多个服务器的传入数据/连接吗? 更新: 所以我昨天凌晨2点运行了备份脚本,只在最老的/最大的存储(store1)上运行备份脚本,备份了大约9.5G的数据。 这新鲜/完整的Rsync花了1小时6分钟。 我做了testing的商店昨天早些时候运行(store8)也同时备份到store1。 Store8拥有2.4G的数据,耗时29分钟。 我昨天早些时候用store8testing新鲜/完整的Rsync,花了9分钟才完成。 而立即连续3分钟的Rsync,意味着没有文件变化。 正如已经提到的那样,我打算错开/安排Rsyncs来平衡负载。 附加信息: 什么是备份: 3个目录,bash脚本运行3个Rsync命令 – 方向1:存档数据/销售数据,不更新数据,每天添加约30个文件的1个文件夹。 – 方向2:主数据目录,POS系统的设置,今天的销售数据。 – 方向3:PostgreSql数据库目录。 计划在Rsync之前运行pg_dump。 数据如何分割: – 方向1:这是增量目录,从8.3G(store1,15年)到70M(store17,3个月) – 方向2:0.5G到1G,平均90K文件和4000 dirs – 方向3:0.1G到0.4G,数据库文件,平均450个文件和13个目录 带宽: 总部:100 / 100Mbit光纤。 存储:ADSL,根据手边的铜线,在1到2 Mbit之间上传。 […]

为什么glusterfs在rsync导入过程中重命名文件?

在失败的初始rsync数据到glusterfs之后search错误时,我在/var/log/glusterfs/data-nfs.log中find了以下条目: [MSGID:109066] [dht-rename.c:1410:dht_rename] 0-volume1-dht:renaming / source / .filename.jpg.bWVXS4 (hash = volume1-replicate-0 / cache = volume1-replicate-0)= > /dest/filename.jpg(hash = volume1-replicate-0 / cache =) 没有一个以点开头的文件名,我只是再次检查它。 这个条目是关于什么的? 有成千上万的。