如果通过rsync传输一个目录下的所有文件,rsync确定的文件一个一个传输的顺序是什么?
一开始好像rsync是按字母顺序传输文件的,后来发现rsync在第一次按字母顺序扫的时候跳过了一些文件,然后又回去传输第一次跳过的文件,这次还是按字母顺序.
感谢致敬!
我有一个服务器配置为运行 rsync 作为恶魔 /etc/rsyncd.conf 文件:
log file = /var/log/rsyncd.log
pid file = /var/run/rsyncd.pid
lock file = /var/run/rsync.lock
[documents]
path = /home/user/work
comment = User's Documents folder
uid = user
gid = user
read only = no
auth users = user
secrets file = /etc/rsyncd.secrets
Run Code Online (Sandbox Code Playgroud)
/etc/rsyncd.secrets 文件:
user:more
Run Code Online (Sandbox Code Playgroud)
在客户端我运行:
rsync my_file user@ip_address::documents
Run Code Online (Sandbox Code Playgroud)
我收到以下错误:
@ERROR: auth failed on module documents
rsync error: error starting client-server protocol (code 5) at main.c(1524) [sender=3.0.7]
Run Code Online (Sandbox Code Playgroud)
在服务器上,我有一个名为 user 的 root 用户,具有不同的密码。在客户端,我尝试了两个密码,结果相同。
我做错了什么?
我有这个场景: dir1 /home/arek/, dir2 /mnt/home/arek/(用 sshfs 安装)。
当我发出: 时rsync -avz /mnt/home/arek /home/arek,我得到/home/arek/arek了全部内容。有些目录在 中是可以的/home,有些则不是。没有链接(既不是硬链接也不是符号链接)。
有谁知道发生了什么以及如何保护自己?
程序 rsync 可以选择--max-size=SIZE禁止传输任何大于SIZE. 统一有类似的选择吗?
我在使用 rsync 同步文件权限时遇到问题。我正在尝试将我的 /home/bin 文件夹与远程机器上的 /home/bin 文件夹同步。问题是,当我编写一个新脚本并使用 'chmod +x' 使其可执行时,然后在执行 rsync 后,该文件恢复为不可执行。
如果我使用 --perms,当我更新远程机器上的文件权限,然后在主机上使用 rsync 时,文件权限不会在主机上更新,而在远程机器上它们会恢复。
有没有办法正确同步文件权限?
更新:我忘了发布我使用的脚本:
#!/bin/bash
rsync -e ssh -avz --recursive --progress --update --perms /home/bin username@example.com:/home
rsync -e ssh -avz --recursive --progress --update --perms username@example.com:/home/bin /home
Run Code Online (Sandbox Code Playgroud) rsync 是否可以不在目标上创建目录?
想象一下我有那个来源:
a/
a/x.txt
b/
b/y.txt
Run Code Online (Sandbox Code Playgroud)
而且我有这个目的地:
a/
a/z.txt
Run Code Online (Sandbox Code Playgroud)
想要的结果rsync source destination:
a/
a/x.txt
a/z.txt
Run Code Online (Sandbox Code Playgroud)
当然,我的真实情况涉及数千个文件/文件夹结构,我不想要涉及显式同步文件夹列表的解决方案,我可以这样做。我正在寻找一种干净的方法来防止在目标上创建任何文件夹。通过排除或过滤......这甚至可能是 rsync 之外的东西,比如如果 rsync 不能做到这一点,则具有权限的黑客攻击......
有关信息,这真的很容易出现这种情况,就我而言,我有:
A& B。和一个本地驱动器C。rsync用来同步(和合并)远程A&B到本地C。C文件同步回A和B。(只是新文件......不是目标上不存在的文件夹)我正在使用以下命令将文件从一个文件夹同步到我本地 OSX 系统上的另一个文件夹:
rsync -avC ./src ~/Sites
里面./src有几个子文件夹:
./src/assets./src/core ./src/css ./src/js所有文件夹和内容都按预期复制,除了./src/core. 重命名文件夹可以解决问题,但不是一种选择。例如,命名为./src/core2,它的工作原理。
由于错误的目标参数导致 rsync 删除错误文件的严重事故后,我想限制 rsync(或运行它的 bash 脚本)只能删除/修改某个目录下的文件。我想到了:
在仅具有该目录权限的用户下创建并运行 rsync/script。这里的问题是:如何动态使用/创建这样的用户?(这是构建脚本的一部分,应该为其他用户“运行”)。
验证提供给 rsync 的目标路径是否在某个目录下。方向好像是在使用test命令,但是我想不通怎么正确使用,也不是那么安全,因为path参数的测试还是会与实际运行的path参数不同步,所以我认为(1)更健壮。
我目前 rsync 文件:(i)本地和(ii)通过 WAN 远程(连接 c. 8mbps down / 1.5mbps up)。
我正在考虑添加到 rsync:
-z
压缩文件。
或者添加到 ssh:
-C
哪一个更好,事实上,有什么大的好处吗?
rsync ×10
bash ×2
macos ×2
ssh ×2
command-line ×1
compression ×1
linux ×1
permissions ×1
shell ×1
unison ×1
unix ×1