我正在尝试将文件从一台服务器同步到另一台服务器,但出现此错误
rsync:无法在“/dept/intranet/dept/atest/”上设置时间。:不允许操作(1)
有人可以帮助我为什么会这样吗?
我想这是一些权限问题。
这是我的命令:
RSYNC=/usr/bin/rsync
SSH=/usr/bin/ssh
REMOTE_HOST=test.desktop
${RSYNC} -crlt -e ${SSH} ${LOCAL_DIR} ${REMOTE_HOST}:${REMOTE_DIR}
LOCAL_DIR = workplace1/f1/
permissions drwxr-xr-x 11 root root 4096 Mar 19 2009 f1
REMOTE_DIR=/dept/intranet/dept/atest/f1/
permissions :drwxr-xr-x 14 dbld a1 4096 Mar 19 2009 f1
Run Code Online (Sandbox Code Playgroud) 我今天有大约 200,000 个文件要传输到新服务器。我以前没有做过这么大规模的任何事情,想就我应该如何做这件事得到一些建议。我正在两个 Centos 6 发行版之间移动它们,它们位于该国的不同位置。我在原始服务器上没有足够的硬盘空间来将所有目录和文件压缩成一个巨大的 tarball,所以我的问题是我应该如何传输所有这些文件?同步?使用 rsync 的一些特殊方式?任何关于如何做的输入/建议都会很棒。
谢谢
编辑:对于那些想知道的人,我强烈建议screen在运行这样的大rsync命令时使用 a 。特别是当可能发生一些愚蠢的事情并且您失去与正在运行rsync命令的服务器 A 的连接时。然后只需分离屏幕并稍后恢复。
我正在尝试使用 cwrsync 端口在 Windows 上运行 rsync。
我发出以下命令(请注意,这只是试运行):
rsync -nPaAz foouser@webxx.example.com:/home/foobar/webapps/barbaz/ C:\\mybackupfolder\
Run Code Online (Sandbox Code Playgroud)
但我收到以下错误
The source and destination cannot both be remote.
rsync error: syntax or usage error (code 1) at main.c(1148) [Receiver=3.0.8]
Run Code Online (Sandbox Code Playgroud)
有人能指出我正确的方向吗?
我需要将目录 rsync 到远程服务器,以便源(本地)计算机上属于用户 X 和组 Y 的所有文件都映射到目标(远程)计算机上的用户 W 和组 Z。如果可能的话,使用 ssh 作为传输,但如果我需要使用 rsync 守护进程,它也很好。
有没有办法做到这一点?我正在寻找一种建立任意用户/组映射的方法,例如
local user X => remote user W
local group Y => remote group Z
... and as many of these as needed.
Run Code Online (Sandbox Code Playgroud)
这应该是一个非常常见的用例,不是吗?例如,我的本地计算机上有文件,我的用户名是 X,我需要将它们上传到 Web 服务器,在那里它们需要属于给定用户,该用户与我的用户名或 UID 不同我的个人电脑。
我在 rsync 的手册页上找不到那个...
本地和远程机器上的 LINUX(Ubuntu 本地,centOS 远程)
我试过的命令:rsync -avz /path/to/local root@myhost.com:/path/to/remote
是否可以rsync传输目录中已更改或已创建的所有文件?我不需要像 CRC 差异检查那样复杂的东西;具有不同时间戳和/或文件大小的文件计为更改。
我从手册页中得到的印象是它应该是可能的,但是我需要一些关于要传递哪些参数集的指导rsync。
我在 Windows 10 系统上安装了多个 Unbuntu WSL 2,我希望能够在它们之间运行 rsync 和 diff 等工具。是否可以挂载/查找这些其他副本的文件所在位置并对其运行 Linux 命令。我不想复制到该区域,只是能够“复制出来”。
为了使这一点更加具体,我有:
X:\WSL\U18.04_1 和 X:\WSL\U18.04_2
而且,我可以通过说以下内容进入第二个:
wsl -d X:\WSL\U18.04_2 -u myname
Run Code Online (Sandbox Code Playgroud)
这将在我的 U18.04_2 映像中的 home 方向上调出一个 bash shell。现在,我想有效地做到:
diff -rbitw /mnt/x/WSL/U18.04_1/home/myname /home/myname
Run Code Online (Sandbox Code Playgroud)
但当然,这不起作用,因为 /mnt/x/WSL/U18.04 实际上并不是一个文件系统(据我所知)。
我正在尝试从有硬件错误的磁盘中恢复文件。
磁盘已由磁盘实用程序修复,但它告诉我磁盘已损坏,因此我需要在发生故障之前备份所有内容。
所以我试图通过finder复制文件,但它卡住了。尝试了其他实用程序,当磁头碰到损坏的块时,他们在尝试复制文件时卡住了。
所以我尝试了 rsync,它似乎有效;但是当我遇到坏块时需要很长时间。
所以我想知道,是否有办法告诉 Rsync 甚至不打扰文件,如果它花费的时间太长?我可以指定每个文件的尝试次数,或者每个文件需要尝试多长时间?
我不确定这个驱动器能用多久,所以我想尽快把所有数据从里面取出,同时我仍然可以挂载它并在 finder 中看到它上面的数据。
这是我使用的命令;如果有任何方法可以减少对文件的尝试,请提出建议,这样我就可以让 rsync 尝试读取损坏的块,但要避免在特定扇区上停留太久。
rsync -arv -e--ignore-errors --partial-dir=/Volumes/backup/partial /Volumes/work /Volumes/backup
Run Code Online (Sandbox Code Playgroud)
提前致谢。
我正在尝试使用 rsync 将一些文件从内部硬盘备份到 USB 驱动器。(我正在开发 wd mybook world NAS)
我要备份两个文件夹。一个音乐文件夹和一个视频文件夹。音乐文件夹(864 个文件,大约 10gb)在大约 1 小时内完美运行(完整的进度)。
但是视频文件夹(1025 个文件,大约 700GB)现在仍然在“发送增量文件列表”上 8 小时。我认为没有任何东西被转移。什么可能导致这种差异?视频文件夹中没有那么多文件。是的,它要大得多,但我认为这不会对生成文件列表产生影响。
我正在使用这个 rsync 命令:
/shares/extern # rsync -avPc --stats /shares/Public/Shared\ Videos /shares/extern/
Run Code Online (Sandbox Code Playgroud)
我现在因为我在 NAS 上工作,所以我没有那么多的 CPU 能力,但我认为它太长了。
你怎么看,这种行为正常吗?有什么建议我可以做些什么来加快整个过程吗?
我正在使用 rsync 3.0.2
我想配置一个 linux 机器(可能是一个 Ubuntu 服务器),以便我可以设置用户,以便可以通过 rsync/scp/sftp 上传/下载文件,但不应该 ssh 到机器并获得一个交互式终端。
这可能吗?我将如何配置它?我知道我需要打开 ssh 服务器才能使 rsync/scp/sftp 工作,但我想应该有一种方法可以防止直接登录。
我试图通过在干模式下运行 rsync 来确定在同步两个文件夹时新复制的文件的大小,然后总结 rsync 输出中列出的文件的大小。
目前我被困在文件的父文件夹前缀上。我发现了如何使用 sed 为行添加前缀以及如何使用 sed 进行转义,但是我在将这两者结合起来时遇到了麻烦。
这是我走了多远:
source="/my/source/folder/"
target="/my/target/folder/"
escaped=`echo "$source" | sed -e 's/[\/&]/\\//g'`
du `rsync -ahnv $source $target | tail -n +2 | head -n -3 | sed "s/^/$escaped/"` | awk '{i+=$1} END {print i}'
Run Code Online (Sandbox Code Playgroud)
这是我从 bash -x myscript.sh 得到的输出
+ source=/my/source/folder/
+ target=/my/target/folder
++ echo /my/source/folder/
++ sed -e 's/[\/&]/\//g'
+ escaped=/my/source/folder/
+ awk '{i+=$1} END {print i}'
++ rsync -ahnv /my/source/folder/ /my/target/folder/
++ sed 's/^//my/source/folder//'
++ head -n -3
++ tail -n …Run Code Online (Sandbox Code Playgroud)