标签: rsync

无法让 rsync 在 daemon-over-ssh 模式下工作

我正在尝试设置 rsync 以每天从服务器复制数据。为了尽可能限制系统,我尝试使用手册页中描述的模式:“通过远程外壳连接使用 RSYNC-DAEMON 功能”

所以我在根目录文件夹中放置了一个名为 rsyncd.conf 的文件:

[root]
path = /
read only = true
Run Code Online (Sandbox Code Playgroud)

并尝试复制 /etc/passwd 作为测试:

rsync -vv -e ssh myserver::root/etc/passwd .
Run Code Online (Sandbox Code Playgroud)

但我得到以下信息:

opening connection using: ssh myserver rsync --server --daemon . 
rsync: connection unexpectedly closed (0 bytes received so far) [receiver]
rsync error: error in rsync protocol data stream (code 12) at io.c(635) [receiver=3.0.3]
Run Code Online (Sandbox Code Playgroud)

我做这一切的原因是,一旦我开始工作,我计划通过指定命令来限制访问

rsync --server --daemon .
Run Code Online (Sandbox Code Playgroud)

在 ~/.ssh/authorized_keys

ssh rsync

11
推荐指数
2
解决办法
2万
查看次数

相当于文件系统 IO 的“nice”?

当我运行rsync涉及复制大文件的备份作业时,运行备份的机器(Mac 台式机和 Linux 服务器)会停止工作,平均负载会飙升。

我试过了:

  • nice处理rsync过程(无济于事 - 瓶颈是磁盘)
  • 在 Linux 上,reniceing a kjournald( 有帮助,但似乎是一个 hack 并且在 Mac 上不起作用)
  • 使用--bwlimit rsync标志(有帮助,但这意味着所有传输都很慢 - 即使它们不需要)

那么,有没有什么办法可以让“ nicersync的 IO 使机器在备份运行时可用?

PS:我知道rsync在 Mac 上的危险……但是我已经使用BackupBouncer来验证我的备份,而且它们看起来还不错

backup rsync nice

11
推荐指数
1
解决办法
2346
查看次数

有没有人在 ESXi 中使用 rsync 实现了真正的差异同步?

稍后责备我使用服务控制台在 ESXi 中执行任何操作的事实...

我有一个可以在 ESXi 4.1U1 中使用的有效 rsync 二进制文件 (v3.0.4)。将虚拟机或备份从一个本地数据存储复制到另一个本地数据存储时,我倾向于使用 rsync over cp。我已经使用 rsync 将数据从一个 ESXi 盒子复制到另一个盒子,但这仅适用于小文件。

现在尝试在我的主要 ESXi 机器和辅助机器之间通过ghettoVCB进行备份的真正差异同步。但即使我在本地执行此操作(一个数据存储到同一台 ESXi 机器上的另一个数据存储),rsync 似乎也能完整地复制文件。我有两个总大小为 80GB 的 VMDK,而 rsync 仍然需要 1 到 2 个小时,但 VMDK 的每天增长并不多。

下面是我正在执行的 rsync 命令。我正在本地复制,因为最终这些文件将被复制到从远程系统上的 LUN 创建的数据存储上。它不是由远程系统上的 rsync 守护程序提供服务的 rsync。

rsync -avPSI VMBACKUP_2011-06-10_02-27-56/* VMBACKUP_2011-06-01_06-37-11/ --stats --itemize-changes --existing --modify-window=2 --no-whole-file
sending incremental file list
>f..t...... VM-flat.vmdk
 42949672960 100%   15.06MB/s    0:45:20 (xfer#1, to-check=5/6)
>f..t...... VM.vmdk
         556 100%    4.24kB/s    0:00:00 (xfer#2, to-check=4/6)
>f..t...... VM.vmx
        3327 100%   25.19kB/s …
Run Code Online (Sandbox Code Playgroud)

rsync vmware-esx vmware-esxi

11
推荐指数
1
解决办法
7935
查看次数

如何将时间戳和文件列表添加到 rsync 日志?

我想将时间戳和文件列表添加到日志中。目前,我只能得到一个。以下命令可以跟踪更新的文件列表,但不会添加时间戳。

rsync -avz --progress --delete /web/path/public_html/ $newhost:/web/path/public_html >> /var/log/rsync.log

sent 2345743 bytes  received 43205 bytes  530877.33 bytes/sec
total size is 14828110173  speedup is 6206.96
sending incremental file list
error_log  5740980 100%   36.98MB/s    0:00:00 (xfer#1, to-check=1405/1524)

sent 2344322 bytes  received 51694 bytes  684576.00 bytes/sec
total size is 14828115593  speedup is 6188.65
Run Code Online (Sandbox Code Playgroud)

下面的命令可以向日志添加时间戳,但它不会告诉哪些文件被更新。

rsync -avz --progress --delete /web/path/public_html/ $newhost:/web/path/public_html --log-file=/var/log/rsync1.log --log-file-format="%t \n"

2012/01/03 17:30:05 [10505] Total transferred file size: 6170062 bytes
2012/01/03 17:30:05 [10505] Literal data: 5470 bytes
2012/01/03 17:30:05 [10505] Matched …
Run Code Online (Sandbox Code Playgroud)

rsync

11
推荐指数
2
解决办法
3万
查看次数

将文件部署到多个服务器

我们在 .server-1 中有一个文件的中央存储库/srv/www。然后我们也有 N 台服务器。我们希望 server-1 能够/srv/www尽可能快速有效地将其文件部署到所有服务器。

是否有类似 rsync 的东西,但不是指定单个目标,而是指定目标集群(N 个服务器)?

我在想git可能有用,但是我们也可以指定多个遥控器来推送吗?

假设 N 个服务器最终可能达到数百个,最好的解决方案是什么。

deployment rsync git

11
推荐指数
2
解决办法
3845
查看次数

rsync - 未能设置权限 - 不允许操作

我收到以下命令并出现此错误

rsync -avz --links -O /home/jansiatest/.jenkins/workspace/svn_to_demo/trunk/CPS/ jansia@ps27670.dreamhost.com:/home/tasklite/temp
sending incremental file list
./
rsync: failed to set permissions on "/home/tasklite/temp/.": Operation not permitted (1)
Run Code Online (Sandbox Code Playgroud)

但问题是我不想更改“/home/tasklite/temp/”的权限。我该如何设置?

linux rsync chmod

11
推荐指数
2
解决办法
3万
查看次数

当远程 rsync 在路径中时,rsync 需要 rsync-path

我很困惑为什么 rsync 需要 --rsync-path 标志,即使远程 rsync 在路径中。

考虑:

$ rsync -avze 'ssh -p 22' --delete public/ pmatos@domain.com:~/public_html
bash: /usr/local/bin/rsync: No such file or directory
rsync: connection unexpectedly closed (0 bytes received so far) [sender]
rsync error: remote command not found (code 127) at io.c(601) [sender=3.0.7]
Run Code Online (Sandbox Code Playgroud)

然后我尝试添加 --rsync-path

$ rsync -avze 'ssh -p 22' --rsync-path=/usr/bin/rsync  --delete public/ pmatos@domain.com:~/public_html
sending incremental file list
...
Run Code Online (Sandbox Code Playgroud)

因此,第一个 rsync 没有成功,因为它正在 /usr/local/bin 中搜索 rsync,但是一旦我使用 --rsync-path 传递了 rsync 的明显路径,它就会起作用。

为什么是这样?(此命令行是 octopress 中 rake deploy 发出的命令行)

rsync path

11
推荐指数
1
解决办法
2万
查看次数

为什么 rsync 会自己分叉?为什么一个这样的分叉进程几乎是空闲的(如 iotop 中所见)?

这是指这里提到的问题,我也遇到了同样的情况。

在我的一台服务器上,我运行了一个 rsync,将一个巨大的目录(大小大于 300 Gb)备份到安装在同一台机器上的不同磁盘上。被 rsync 的目录包含数千个目录和文件。我使用“nohup”发出了一个 rsync 命令,然后使用“&”命令将其推送到后台。在远程 bash shell(使用 putty)上给出的完整命令是:

nohup rsync -avh /some/local/dir /backup/ >> /opt/rsync.dec22.log &
Run Code Online (Sandbox Code Playgroud)

然后只是为了检查复制数据的速度,我使用了“iotop”命令,发现有 3 个 rsync 使用相同的参数运行。在搜索时,我发现上面的链接说这是正常的。

但是在执行 iotop 以仅监视系统上运行的那些和唯一的 rsync 进程时,我看到一个进程正在读取文件,一个正在写入文件,但一个进程处于空闲状态。行为似乎很好,因为一个进程一次只做一件事,但是第三个进程在做什么(如下图中间的一个)?

我使用的 iotop 命令是:

iotop -p22250 -p22251 -p22252
Run Code Online (Sandbox Code Playgroud)

这是 iotop 命令输出的屏幕截图:

显示 3 个 rsync 进程的 iotop 命令输出

我问这个是因为我经常使用 rsync,并想了解它的行为以获得长期利益。我什至阅读了手册,但它没有提到分叉。

linux rsync command

11
推荐指数
1
解决办法
3842
查看次数

使 cronjob 等待上一个 rsync 作业完成

我正在使用 rsync 将一些数据从一台服务器备份到另一台服务器。一切正常,但可能需要更长的时间才能完成,具体取决于要传输的数据量。

是否有任何保证方法可以确保 rsync 命令在上一个使用 cronjob 完成之前不会启动?

例如,我每小时运行 rsync 命令,但传输可能需要 1 个多小时才能完成,因此下一个将在前一个完成之前开始。

linux rsync cron

11
推荐指数
2
解决办法
1万
查看次数

如何从特定日期向前同步文件/文件夹?

我想从特定日期和转发 rsync 文件夹。例如。我想同步我 3 天前(当然还有 2 天前、一天前等)创建的文件夹。我知道我需要使用 find 和 rsync 但我不确定如何使用。任何的想法?谢谢!多坦。

linux rsync find centos

11
推荐指数
3
解决办法
5万
查看次数

标签 统计

rsync ×10

linux ×4

backup ×1

centos ×1

chmod ×1

command ×1

cron ×1

deployment ×1

find ×1

git ×1

nice ×1

path ×1

ssh ×1

vmware-esx ×1

vmware-esxi ×1