Questions tagged «rsync»

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

1
为什么要在rsync目标后面添加斜杠?
根据此网页,在rsync目标的末尾添加“ /”会产生与未添加结果不同的结果。 我已经尝试过测试,但是无法验证: $ mkdir dir{1..3} $ touch dir1/file $ rsync -r dir1/ dir2 $ rsync -r dir1/ dir3/ $ ls dir* dir1: file dir2: file dir3: file 有时将'/'附加到目的地实际上有用途吗?
13 rsync 

1
rsync从目录中排除空格
我正在尝试排除rsync的“ Mendeley Desktop”目录。 exclude-from =如下: Downloads *.o *.iso Dropbox Documents/Mendeley\ Desktop 但是rsync仍在备份Mendeley Desktop。 如何使rsync忽略带空格的目录?
13 rsync  quoting 

1
如何将现有的gz(gzip)文件转换为rsyncable
我正在使用rsync备份包含很多gz文件的存储库,其中包括每天很多新文件。rsync备份的进行速度比预期的要慢,因为这些gz文件不是使用gzip的--rsyncable选项构建的(这会使gz文件更加“ rsync友好”,而不会显着增加其大小或影响其兼容性)。而且我无法在创建时解决问题,因为文件是由使用python的gzip模块的python脚本(rdiff-backup)生成的,并且不支持与gzip的--rsyncable等效的文件。 因此,在运行rsync之前,我可以识别源数据中的任何新gz文件(即自上次运行rsync以来的新文件)。现在,我想“重新gzip”这些文件,以便将它们以rsyncable-format格式压缩。然后,我可以从优化源运行rsync。 我认为这意味着先通过gunzip然后再通过gzip --rsyncable运行每个文件,但是我不太确定如何以不会冒丢失数据或元数据风险的方式来执行此操作。收到的建议不胜感激。
12 rsync  gzip 

2
rsync即使使用-a也不会保留目录所有权
我使用此rsync调用来备份我的主目录: rsync -aARrx --info= --force --delete --info=progress2 -F "$USER_HOME" "$BACKUP_MNTPOINT" rsync手册页说-a意味着-g和-o(以及其他开关),它们应该保留所有权。但是,我已经注意到,如果目录下不存在目录$BACKUP_MNTPOINT/$USER_HOME,则将使用root:root所有权而不是正确的目录创建该目录。(这仅适用于下方的目录$BACKUP_MNTPOINT/$USER_HOME)。这是为什么? $BACKUP_MNTPOINT是本地安装的驱动器。$BACKUP_MNTPOINT/$USER_HOME具有正确的所有权和权限。既不$USER_HOME也不$BACKUP_MNTPOINT与斜线结束。 源文件系统和目标文件系统均为XFS,运行时mkdir $BACKUP_MNTPOINT/$USER_HOME会创建具有预期所有权的目录。

1
使用cp / rsync保留扩展属性
使用复制时cp,即使保留显式属性,扩展属性也不会保留 cp -a --preserve=all /source /dest 要么 cp -a --preserve=xattr /source /dest 与相同rsync,即 rsync -aq -A -X --delete /source /dest 但是,在目标文件系统上,我可以手动创建扩展属性(使用chattr)。这意味着目标文件系统支持xattr。 为什么我不能xattr用cp或保存rsync? 附加信息: 源文件系统和目标文件系统均为ext4 源文件系统和目标文件系统都是本地的(不是nfs) 我正在使用Debian Wheezy
12 filesystems  rsync  cp  xattr 

4
为什么rsync无法在Linux中从/ sys复制文件?
我有一个bash脚本,用于rsync在Archlinux中备份文件。我注意到rsync无法从复制文件/sys,但cp效果很好: # rsync /sys/class/net/enp3s1/address /tmp rsync: read errors mapping "/sys/class/net/enp3s1/address": No data available (61) rsync: read errors mapping "/sys/class/net/enp3s1/address": No data available (61) ERROR: address failed verification -- update discarded. rsync error: some files/attrs were not transferred (see previous errors) (code 23) at main.c(1052) [sender=3.0.9] # cp /sys/class/net/enp3s1/address /tmp ## …

5
抑制rsync中的服务器消息
当我rsync或scp从一台特定服务器上收到一条长消息时,会告诉我服务器规则。但是,当我设置常规提取时,我希望能够在日志中隐藏这些消息。浏览手册页建议这样做-q应该可行,但这只会使来自scp本身的消息安静下来。我怎样才能做到这一点?

4
默认情况下,如何使用rsync排除文件?
默认情况下,如何使用rsync排除文件?这是我正常的rsync语法开始的方式: rsync --exclude ".ht*" --exclude "error_log" --exclude ".DS*" --exclude "old" ... 我已经看到了很多有关配置/etc/rsyncd.conf文件的信息,但是对于守护程序而言,这可能比rsync命令更多。 从命令行调用时,是否有一些默认的rsync排除项,就像上面我的默认语法一样?

2
远程安装的sshfs上的rsync与本地的rsync之间的区别?
如果我将远程主机(ssh://)作为源/目标运行rsync或使用本地路径通过sshfs共享安装目录,有什么区别吗? 在不使用任何开关的情况下,在安全性或复制速度方面是否可能存在差异,只需使用rsync存档模式和远程主机路径(ssh)。sshfs的安装方式与源和目的地相同(无密码更改,仅默认设置)。

2
加快/避免计算rsync文件列表
我使用rsync 3.1.1来同步两张光盘,其中一张在网络上,并作为samba共享安装在上/mnt/ROUTER_WD_2TB/。这是源,由于网络限制,速度最高为30-40MB / s。另一个是目的地,安装在本地(峰值110MB / s),并且是/mnt/BACKUP_HITACHI_2TB/。 我使用以下rsync命令: rsync -haAXi --quiet --append-verify --delete /mnt/ROUTER_WD_2TB/* /mnt/BACKUP_HITACHI_2TB/. 磁盘包含许多文件,其中大多数很小。 问题是,rsync 在开始移动任何文件之前需要花费相当长的时间(10-20m),我想是因为它必须计算大量小文件的文件列表。在此期间,网络利用率为200-500KB / s,而传输文件时的速度约为40MB / s。 通常,rsync大约需要15m才能找到它必须复制的内容,然后花费5秒钟来复制它,然后再继续检查其他一些文件再复制5分钟。总而言之,一个5秒钟的文件副本将持续20分钟! 除了排除文件夹之外,在复制文件之前,我是否可以采取任何其他措施来避免这一长时间?我可以实现哪种“缓存”,以便rsync不必从头开始重建所有文件列表?
12 rsync  backup 

2
如何检查rsync是否对bash进行了任何更改?
我有一个脚本,该脚本使用rsync在远程->本地方案中同步数据。运行rsync命令后,立即检查错误代码是否等于零。如果其为零,则执行其他命令。但是,这没有考虑到rsync可能已经成功运行但实际上并未进行任何更改的事实。因此,无论如何都将等于零条件运行,这有点多余。 rsync -aEivm --delete /path/to/remote/ /path/to/local/ if [ $? -eq 0 ]; then # Success do some more work! else # Something went wrong! exit 1; fi 将其扩展为检查是否确实存在基于运行的rsync命令的任何更改的最佳方法是什么。我已经读过-i标志可以将输出提供给stdout,但是如何将其放在条件块中呢?

4
Rsync --bwlimit不起作用
我目前正在使用rsync将大型文件从主机传输到另一个主机。我想限制这次转帐的借方。阅读手册页后,我找到了--bwlimit选项,该选项期望KB / s值。 我想将传输限制为大约100Mbit / s,所以我使用了以下设置: rsync --progress -v --bwlimit=10000 --temp-dir=/tmp srv:/tmp/* /tmp/ 但是根据rsync的输出,这似乎没有受到尊重: file.sql.gz 570851702 100% 33.90MB/s 0:00:16 (xfer#5, to-check=34/39) file.sql.gz 11195140 100% 7.45MB/s 0:00:01 (xfer#6, to-check=33/39) file.sql.gz 51439169 100% 19.41MB/s 0:00:02 (xfer#7, to-check=32/39) file.sql.gz 34022 100% 1.55MB/s 0:00:00 (xfer#8, to-check=31/39) file.sql.gz 2305698 100% 6.96MB/s 0:00:00 (xfer#9, to-check=30/39) file.sql.gz …
12 linux  rsync 

1
如果旧文件已经存在,如何使rsync用--link-dest选项链接相同文件?
可能有人认为,--link-dest在所有情况下都可以对相同文件进行操作。但是,即使文件已过期/具有不同的内容,当文件存在时也不会。 因此,在rsync手册页上--link-dest: “此选项在复制到空的目标层次结构中时效果最佳,因为rsync将现有文件视为权威文件(因此,当目标文件已存在时,rsync永远不会在链接目标目录中查找)” 这意味着,如果y/file与源存在相同且z/file已过期, rsync -a --del -link-dest=y source:/file z 将导致使用两个inode(和磁盘空间的两倍)y/file和z/file,它们将具有相同的内容和日期戳。 之所以遇到此问题,是因为我基本上每天备份一次,而该脚本每天运行一次: mv $somedaysago $today; yest=$today; today=`date +%Y%m%d`; rsync -avPShyH --del --link-dest=../$yest host:/dirs $today 因为我的备份最多可以存储1000万个文件,所以这样做rm -rf $olddir; rsync source:$dir newdir会花费太长时间(尤其是每天仅更改0.5%的文件时,会导致删除和创建10M目录条目只是为了处理5万个新文件或更改过的文件,这会使我备份未在第二天及时完成)。 这是情况的演示: a是我们的来源,1通过4我们的编号备份: $ mkdir -p 1 2; echo foo > 1/foobar; cp -lrv 1/* 2 `1/foobar' -> `2/foobar' $ ls …
11 rsync 

4
`cp -al`快照,其硬链接在编辑后会定向到新文件
我正在尝试定期为大型文件夹拍摄快照。 我在这里阅读过:http : //www.mikerubel.org/computers/rsync_snapshots/#Incremental ,它cp -al可以通过简单地复制硬链接来获取文件夹快照。 很好,但问题是在此快照中,如果我更改文件,则所有快照中的文件都会更改。相反,我希望系统在更改时创建一个新文件并链接到该文件。这样,每个快照都不会在编辑第一个文件时失效。 我该如何实现? ps我试过了rsync -a --delete --link-dest=../backup.1 source_directory/ backup.0/,但是有同样的问题。

3
将文件访问限制为仅追加
我有一个包含日志文件的目录,并将用户启动的脚本中的日志放入其中。在这种情况下,似乎无法使用syslog登录。(非守护进程rsync) 我希望用户仅对日志文件具有写权限。问题在于,必须进一步限制写权限,以便用户(脚本)只能追加到该文件。底层文件系统是XFS。 以下内容不起作用: # chattr +a test.log chattr: Inappropriate ioctl for device while reading flags on test.log 还有其他解决方案吗?谢谢您的提示。
11 linux  permissions  logs  rsync  xfs 

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.