我正在尝试通过 10MB 链接将 75 GB 的 tgz(mysql lvm 快照)从我们洛杉矶数据中心的 Linux 服务器复制到我们纽约数据中心的另一台 Linux 服务器。
我得到大约 20-30Kb/s 的 rsync 或 scp,它在 200-300 小时之间波动。
目前它是一个相对安静的链接,因为第二个数据中心尚未激活,我从小文件传输中获得了极好的速度。
我遵循了通过谷歌找到的不同的 tcp 调整指南,但无济于事(也许我读错了指南,得到了一个好的指南?)。
我已经看到了 tar+netcat 隧道提示,但我的理解是它只适用于大量小文件,并且在文件有效完成传输时不会更新您。
在我求助于运送硬盘之前,有没有人有任何好的意见?
更新: 嗯......毕竟它可能是链接:(见下面我的测试......
从纽约到洛杉矶的接送:
得到一个空白文件。
[nathan@laobnas test]$ dd if=/dev/zero of=FROM_LA_TEST bs=1k count=4700000
4700000+0 records in
4700000+0 records out
4812800000 bytes (4.8 GB) copied, 29.412 seconds, 164 MB/s
[nathan@laobnas test]$ scp -C obnas:/obbkup/test/FROM_NY_TEST .
FROM_NY_TEST 3% 146MB 9.4MB/s 07:52 ETA
Run Code Online (Sandbox Code Playgroud)
获取快照 tarball。
[nathan@obnas db_backup]$ ls -la db_dump.08120922.tar.gz
-rw-r--r-- 1 root root 30428904033 Aug …Run Code Online (Sandbox Code Playgroud) 我正在使用 rsync 上传/下载一个非常大的文件 (20Gb)。我知道 --progress 选项,但它在我的情况下所做的只是在最后向我展示结果。
我的问题是在一些不稳定的连接期间 - 我不知道它是否仍在下载/上传或出现问题。有没有办法显示单个文件的进度条?类似于默认情况下 wget 所做的事情?
谢谢!
我熟悉使用 rsync 从我的系统备份各种文件,但完全恢复机器的最佳方法是什么。
我过去尝试过的是:
这种方式是有效的,但我不认为安装的每个包之后都可以 100% 工作。
我希望能够以最少的努力恢复我的系统,并且一切都与进行备份时一样。此外,如果可能的话,安装到其他机器上,并且基本上有两台具有相同包和数据的机器。
我想将大约 200 个目录和子目录从一个位置复制到另一个位置,但我不想复制这些目录中的数千个文件。我在 Linux 上。
注意:我没有足够的空间来复制所有内容然后删除所有文件。
基本上我要问的是,有没有人遇到过将 rsync 包装在 ssh 中的方法。
使用 OpenSSH v4.9+ sftp 有一些不错的选项,允许您对传入的连接进行 chroot 等 - 这是我会考虑的解决方案,但是我坚持使用 RHEL,并且 RHEL4 或 RHEL5 都不支持该版本SSH。
我目前的解决方案是使用客户端用户的密钥向服务器端添加这样的东西......
server% cat ~/.ssh/authorized_keys command="cd /srv/rsync/etl && tar --exclude './lost+found' -pcf - ./" ssh-rsa...
......因此客户端将被限制为一件事,只有一件事......
客户端% ssh -T -i ${HOME}/.ssh/id_rsa oracle@database.com > sensative.tar
这确保了连接以及服务器(来自客户端)的安全,但是效率低下,因为将一遍又一遍地检索所有文件。
我正在使用 rsync 做类似(或更好)的事情。
我正在尝试使用以下命令将数千个小文件从一台服务器传输到另一台服务器:
rsync -zr --delete /home/user/ user@10.1.1.1::backup
目前转移需要很长时间(我没有计时)。有没有办法让它更快?我应该使用其他工具吗?我应该通过 ssh 使用 rsync 而不是使用 rsync 协议吗?
一段时间以来,我一直使用 rsync/ssh 将我的共享主机内容备份到我的个人 Synology NAS(212j),并且效果很好。有关信息,我使用无密码ssh连接。
3 天前,我更新了我的 NAS 软件,因为(或者至少我相信是从那以后),备份将不再起作用。我在主机上收到以下错误:
rsync: writefd_unbuffered failed to write 4 bytes to socket [sender]: Broken pipe (32)
ERROR: module is read only
Run Code Online (Sandbox Code Playgroud)
..我不明白。除了我所知道的与rsyncor相关的源和目标中没有任何变化之外ssh,我确实检查了一些事情,一切似乎都很好:
ssh好用户从主机连接到我的 NAS,所以像密钥这样的 ssh 东西没有改变。rsyncthrough使用的用户创建文件、目录等ssh)。我在这里和那里读到错误意味着我必须确保我rsyncd.conf拥有read only = no它的权利,但据我所知,我从来没有使用rsyncd过,因为我从来没有为它配置过任何东西,直到现在它就像一个魅力。 .
我使用以下命令进行备份:
rsync -ab --recursive \
--files-from="$FILES_FROM" \
--backup-dir=backup_$SUFFIX \
--delete \
--filter='protect backup_*' \
$WDIRECTORY/ \
remote_backup:$REMOTE_BACKUP/
Run Code Online (Sandbox Code Playgroud)
所以我被卡住了,真的无法弄清楚发生了什么。
编辑:
正如评论中所建议的那样,我还尝试将命令传递给 ssh(但不是从 ssh …
我目前正在使用rsync一个脚本,该脚本将 PHP 应用程序从登台部署到生产服务器。方法如下:
rsync -rzai --progress --stats --ignore-times --checksum /tmp/app_export/ root@app.com:/var/www/html/app/
Run Code Online (Sandbox Code Playgroud)
这当前正在输出正在比较的每个文件的列表(项目中的每个文件),但我希望它只输出修改过的文件,所以我可以运行它并--dry-run选择检查每个部署是否只更新所需的文件。
注意:到目前为止我能做的最好的是grep fcst结果,但我正在寻找一个rsync选项,我确定它在那里,但我在手册页中找不到它。
提前致谢!
我们使用 rsync 来备份服务器。
不幸的是,某些服务器的网络速度很慢。
rsync 最多需要五分钟才能检测到大型目录中没有任何变化。这些巨大的目录树包含很多小文件(大约 80k 个文件)。
我猜 rsync 客户端会为每个 80k 文件发送数据。
由于网络很慢,我想避免发送有关每个文件的 80k 次信息。
有没有办法告诉 rsync 对子目录树进行哈希和?
这样 rsync 客户端将只为巨大的目录树发送几个字节。
更新
到目前为止,我的策略是使用rsync. 但是如果不同的工具更适合这里,我可以切换。两者(服务器和客户端)都在我的控制之下。
更新2
一棵目录树中有 80k 个文件。每个单个目录不超过 2k 个文件或子目录
更新3
有关网络缓慢的详细信息:
time ssh einswp 'cd attachments/200 && ls -lLR' >/tmp/list
real 0m2.645s
Run Code Online (Sandbox Code Playgroud)
tmp/list 文件大小:2MByte
time scp einswp:/tmp/list tmp/
real 0m2.821s
Run Code Online (Sandbox Code Playgroud)
结论:scp 速度一样(不出意外)
time scp einswp:tmp/100MB tmp/
real 1m24.049s
Run Code Online (Sandbox Code Playgroud)
速度:1.2MB/s
我想使用 Rsync 将大量文件/文件夹从 Windows 传输到 Linux。在 linux 服务器(目标)上,我希望文件权限设置为 644,文件夹权限设置为 755。如果可能,我希望所有文件/文件夹的所有权设置为 root.root。我试过 -p 选项,但它不起作用。感谢您的任何帮助。