Questions tagged «rsync»

rsync是一种工具,可以通过强大的过滤器来决定要复制的内容,以本地或远程方式有效地复制目录层次结构。

6
使用GNU Parallel的Parallelise rsync
我一直在使用rsync脚本来将一台主机上的数据与另一台主机上的数据同步。数据中包含许多小型文件,这些文件几乎占了1.2TB。 为了同步这些文件,我一直使用rsync如下命令: rsync -avzm --stats --human-readable --include-from proj.lst /data/projects REMOTEHOST:/data/ proj.lst的内容如下: + proj1 + proj1/* + proj1/*/* + proj1/*/*/*.tar + proj1/*/*/*.pdf + proj2 + proj2/* + proj2/*/* + proj2/*/*/*.tar + proj2/*/*/*.pdf ... ... ... - * 作为测试,我选择了其中两个项目(8.5GB数据),并执行了上面的命令。作为一个顺序过程,它需要14分58秒才能完成。因此,对于1.2TB的数据,将需要几个小时。 如果我能多rsync在并行处理(使用&,xargs或parallel),这将节省我的时间。 我尝试使用下面的命令parallel(cd进入源目录后),花了12分37秒执行: parallel --will-cite -j 5 rsync -avzm --stats --human-readable {} REMOTEHOST:/data/ ::: …

1
同步文件的最佳方法-仅复制现有文件,并且仅复制比目标更新的文件
我正在Ubuntu 12.04上本地进行此同步。这些文件通常是小的文本文件(代码)。 我想从source目录复制(保留mtime戳)到,target但是我只想复制中的文件target 已存在并且早于中的文件source。 因此,我只复制中的较新文件source,但它们必须存在于其中target,否则将不会被复制。(source文件将比得多target。) 我实际上将复制source到多个target目录。我提到这一点是为了避免影响解决方案的选择。但是,target如果需要的话,我可以轻松地多次运行命令,每次都指定新命令。

1
以一定深度的子文件夹递归rsync
我想rsync递归地创建一个文件夹,但只希望包含一定深度的子文件夹。 例如,我想要像这样的1,2,3或4个子文件夹的深度: source/ ├── subfolder 1 │ ├── subsubfolder │ │ ├── subsubsubfolder │ │ │ └── wanted with depth 4.txt │ │ └── wanted with depth 3.txt │ └── wanted with depth 2.txt ├── subfolder 2 │ └── wanted with depth 2.txt └── wanted with depth 1.txt


3
使用rsync移动文件并删除目录?
最近,我需要删除大量文件(超过100万个),并且我读到这样做: rsync -av --delete `mktemp -d`/ ~/source && rmdir ~/source 是执行此操作最优化的方法之一,我可以保证它的速度比快rm -rf。 我不是这方面的专家,但是据我了解,rsync性能的原因与它列出文件的方式有关(我想是LIFO而不是FIFO)。现在,问题是,我还需要以有效的方式移动大量文件。经过一番搜索,我发现了这一点: rsync -av --ignore-existing --remove-source-files ~/source ~/destination 虽然这会删除所有移动的文件中~/source,该目录留在那里。由于我具有类似“循环”的目录结构files/directories,因此其数量非常接近1,因此我被迫再次运行第一个命令以完全摆脱该目录: rsync -av --ignore-existing --remove-source-files ~/source ~/destination && \ rsync -av --delete `mktemp -d`/ ~/source && rmdir ~/source 一条直线mv几乎可以立即完成,但是我的~/destination目录中有应保留的文件,因此mv不是一种选择。我找到了--prune-empty-dirsand --forcersync选项,但似乎都不如预期: --force force deletion of directories even if not empty --prune-empty-dirs prune …

3
如何使用`mv'强制覆盖非空目录
我想将一组文件/目录移动(而不是复制)到另一个目录,其中一些文件/目录的名称与目标目录中的文件/目录冲突。我的主要目标是移动文件,因此我可以忍受被覆盖的非空目录。 我目前正在使用mv ... destination,偶尔 mv:无法将“目标”移动到“ /目标/目标”:目录不为空 我尝试mv -f ... destination没有成功,并且由于我希望将文件从其原始位置删除,rsync因此似乎不合适。 另外,是否存在一个很好的解决方案,可以保留通过重命名以某种方式覆盖打算覆盖的文件?
17 files  rsync  rename 

2
与cp从nfs-share复制文件到本地目录的cp相比,rsync非常慢(8到10倍)
我有一个全新安装的Ubuntu服务器,它应该是我们VM存储的新备份服务器。该服务器有4个网卡,其中2个为10Gbit(实际上是具有最新驱动程序的Intel x540-T2),用于连接到SAN。我将nfs共享安装在本地,并在复制包含约30个文件,约15个vm映像和相应日志文件的目录时比较了速度差异。映像的大小在8 GB到600 GB之间。 使用方法: cp -rf /mnt/nfs-share /backup-storage/ 因此,bmon的显示速度约为600 MiB / s。 使用 rsync -av /mnt/nfs-share /backup-storage/ bmon在最初的几秒钟内显示一些数据包,暂停约30秒钟,然后累积速度达到约60-75 MiB / s。CPU约为60%。 我应该/应该改变什么以使其rsync具有相同的性能cp?
17 ubuntu  rsync  performance  cp 

3
基本的rsync命令用于位相同的副本
据我所知,以下命令: sudo rsync --delete -azvr /home/oshiro/Desktop/source/ /home/oshiro/Desktop/destination 我需要创建一个文件从一个位置到另一个位置的简单同步吗?还是上面的命令在后台执行了我不知道的更多操作?例如,它是否创建某种形式的版本控制,在这里我可以指定过去的时间来获取文件,传递的方式如何? 这是我目前不希望启用的功能。我想要的只是将文件从1个位置位复制到另一个位置。我可以摆脱这些参数中的任何一个吗,还是需要添加其他参数以使副本完全相同而无需版本控制。基本上,我不想像Mac Time Machine备份系统那样创建备份。
17 backup  rsync 


1
使用rsync输出的“对话框”制作进度条
我正在寻找一种过滤/重定向rsync输出的方式,可以将其输入到“ dialog --gauge”命令中,以便在文件同步过程中获得一个漂亮的进度条。目前,我仅在提示符下直接对其进行了测试,但我计划在(bash)shell脚本中进行此操作。 我环顾了互联网,发现了点点滴滴,但我仍然缺少使它正常工作的东西 (免责声明:这可能是完全错误的方法,并且是重定向/管道怪诞) 我目前汇总的内容: rsync -avz --progress -e "ssh" user@server:/home/user/data/ /home/user/data | awk -f /home/user/rsync.awk | sed 's/\([0-9]*\).*/\1/' | dialog --title "My Gauge" --gauge "Hi, this is a gauge widget" 20 70 首先,我有一个带有--progress选项的实际rsync命令。rsync的输出通过管道传递到awk中,并使用以下awk过滤器: { if (index($0, "to-check=") > 0) { split($0, pieces, "to-check=") split(pieces[2], term, ")"); split(term[1], division, …
16 linux  bash  scripting  awk  rsync 

1
如何包含rsync中排除的文件
我正在尝试设置一个rsync,它排除所有.*文件,.htaccess但不幸的是,这不起作用: rsync -avP --exclude=".*" --include="./.htaccess" ./. user@server:/dir 是否可以以某种方式排除一般排除规则?
16 rsync 

1
为什么找不到rsync?
rsync -avP /home/user/.profile hpux3:/home/user/.profile bash: rsync: command not found 如果我对hpux3机器执行了ssh rsync version 3.1.1 protocol version 31 Copyright (C) 1996-2014 by Andrew Tridgell, Wayne Davison, and others. Web site: http://rsync.samba.org/ output truncated 我已PATH在$HOME/.profile和$HOME/.bashrc。我应该在/etc/profile文件中设置它吗?
16 rsync  path 

1
为什么rsync不对网络上的单个文件使用增量传输?
我已经看过这个问题和这个问题,但是它们似乎并没有解决我所看到的症状。 我有一个试图通过蜂窝网络传输的大日志文件(大约600 MB)。因为它是一个日志文件,所以只是附加到日志文件中(尽管它实际上是在SQLite数据库中仅执行INSERT操作,因此它不是那么简单,但是最后一个4k页除外(或者可能是一个很少)文件每次都是相同的,重要的是只有更改(以及需要传输的校验和)才真正被发送,因为数据连接是按计量的。 但是,当我在未测量的连接(例如免费wifi热点)上执行测试时,没有观察到或报告加速或减少的数据传输。通过慢速的WiFi连接,我看到的速度约为1MB / s或更低,报告传输将花费近20分钟。通过快速的WiFi连接,我看到一个统一的更快的速度,但是没有加速报告,并且第二次尝试传输(由于两个文件相同,现在应该更快)现在显示出任何不同。 我正在使用的(经过清理以删除敏感信息)命令是: rsync 'ssh -p 9999' --progress LogFile michael@my.host.zzz:/home/michael/logs/LogFile 我最终得到的输出如下所示: LogFile 640,856,064 100% 21.25MB/s 0:00:28 (xfr$1, to-chk=0/1) 没有提及任何形式的加速。 我怀疑问题可能是以下之一: 我缺少一些命令行选项。但是,重新阅读手册页似乎表明默认情况下启用了增量传输:我只看到用于禁用它们的选项。 由于服务器位于仅允许ssh的防火墙后面,因此我正在ssh上使用rsync(甚至在非标准端口上)。不过,我还没有看到任何明确的说法,即如果rsync守护进程未运行,则增量传输将不起作用。我尝试使用“ ::”符号代替“:”,但是手册页中关于“模块”的含义不是很清楚,并且我的命令由于指定了无效的模块而被拒绝。 我排除了以下情况: 未在本地网络上执行增量传输。排除在外是因为我正在尝试通过Internet执行传输 由于校验和计算导致的开销。我已经在快速和慢速Wifi连接上都看到了这种行为,并且传输速率似乎不受计算限制。
15 rsync 

4
将数百万个文件从一台服务器传输到另一台服务器
我有两台服务器。其中一个拥有1500万个文本文件(约40 GB)。我正在尝试将它们转移到另一台服务器。我考虑过压缩它们并传输档案,但是我意识到这不是一个好主意。 因此,我使用了以下命令: scp -r usrname@ip-address:/var/www/html/txt /var/www/html/txt 但是我注意到该命令仅传输约50,000个文件,然后连接断开。 有没有更好的解决方案可以让我传输整个文件集?我的意思是要使用类似的方法rsync来传输丢失连接时未传输的文件。当另一个连接中断发生时,我将再次键入命令以传输文件,而忽略那些已经成功传输的文件。 使用不可能scp,因为它总是从第一个文件开始。

2
为什么我的rsync不允许块大小> 128K?
使用大* 运行rsync,--block-size如下所示: rsync -avvz --rsh 'ssh -c arcfour' --block-size 1048576 --inplace --progress example.com:/big.file /big.file 我收到以下错误: Invalid block length 1048576 [sender] 两端都运行64位CentOS 6.4。从谷歌搜索中,我看到--block-size使用了更高的值,为什么这对我不起作用? * 我使用的是大块数据块,因为我正试图解决一个错误,即rsync会将CPU永久旋转44%到300GB文件中
15 rsync 

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.