我有一台较旧的 ubuntu 服务器和一台较新的 debian 服务器,我正在将数据从旧服务器迁移到新服务器。我想使用 rsync 来传输数据,使最终迁移比等效的 tar/scp/untar 过程更容易、更快。
例如,我想一次将一个主文件夹同步到新服务器。这需要两端的 root 访问权限,因为并非源端的所有文件都是世界可读的,目标必须以正确的权限写入 /home。我不知道如何在双方都授予 rsync 根访问权限。
我看过一些相关的问题,但没有一个完全符合我想要做的。
我已经 sudo 设置并在两台服务器上工作。
我正在使用 rsync 从远程 FTP 备份到本地计算机。
我在互联网上读到 rsnapshot 更好。
只想知道生产环境用的是哪个
我在不同的提供商处运行 2 个 LAMP Web 服务器以用于灾难恢复目的 - 一个高功率的实时服务器和一个低功率的备份服务器。
目前我每 4 小时将所有数据从实时服务器同步到备份服务器。
这可以正常工作,但是在 rsync 确定哪些文件已更改时会增加系统负载。
由于所有网站都位于 git 存储库中,我想知道 git push 是否是更好的备份技术。
我必须在 git repo 中包含实时上传文件夹;然后备份过程将是:
live$ git add .
live$ git commit -a -m "{data-time} snapshot"
live$ git push backup live_branch
Run Code Online (Sandbox Code Playgroud)
然后在备份服务器上有一个提交后挂钩,以便在每次推送时进行结帐。
每个网站的大小从 50M 到 2GB 不等。我最终会得到大约 50 个单独的 git 存储库。
这是比rsync“更好”的解决方案吗?
谢谢!
---- 一些对比测试的数据 ------
1)52MB文件夹然后添加一个新的500k文件夹(主要是文本文件)
同步
sent 1.47K bytes received 285.91K bytes
total size is 44.03M speedup is 153.22
real 0m0.718s …Run Code Online (Sandbox Code Playgroud) 随着 btrfs 本月在 Oracle EL 14 日投入生产(连同工作 fsck 和从 Linux 3.2 擦洗),我正在考虑重新设计我当前的备份解决方案以利用它。请注意,我正在考虑为小于 10TB 的少量数据执行此操作,这是相当静态的(每天更改少于 1%)。简而言之,SMB/SOHO 备份解决方案。
备份应该做什么:
rsync/transfer 更改的数据到备份服务器上的 btrfs优点:
问题:
rsync解决方案吗?我使用 rsnapshot 为我的“工作”共享创建每小时/每天/每周/每月的备份。现在我正在尝试使用 rsync 将整个备份目录复制到外部驱动器上。
我在屏幕会话中使用了这个命令/参数(是的,rsync-exclude.txt 位于我运行命令的目录中)
rsync -avzHP --exclude-from 'rsync-exclude.txt' /share/backup/ /share/eSATADisk1/backup/;
Run Code Online (Sandbox Code Playgroud)
整个东西在QNAP TS-439上运行,内部驱动器是一个格式化为EXT4的单盘(无RAID),外部驱动器是格式化为EXT3。
发生的情况是:Rsync 跟随每个硬链接并且 复制实际文件,而不是在外部驱动器上重新创建更新的硬链接。我没有立即意识到这一点,因此外部驱动器最终被相同文件的 xxx 副本丢弃。
我想要实现的是:将 rsnapshot 生成的整个文件结构复制到外部驱动器,保留硬链接以节省空间。注意:这不一定是使用 rsync 完成的。
感谢您的想法和时间。我很感激你的帮助,很重要。
更新:我了解到,rsnapshot 不使用符号链接,它使用硬链接,所以我现在使用 -H 选项,它应该根据Rsnapshot 保留硬链接结构到多个目的地(或维护硬链接结构),但它仍然不起作用......我在这里错过了什么?
更新 2:我在这里找到了关于这个主题的另一个意见/声明:rsync with --hard-links freezes Steven Monday 建议不要尝试 rsync 包含硬链接的大文件结构,因为它会占用大量内存,这对 rsync 来说是一项艰巨的任务。所以可能更好的解决方案是制作我要备份的数据结构的 .img。你怎么认为?
我对 rsync 有问题:要么它向我显示我正在 rsync 的目录中的所有文件(如果使用标志-v),要么什么都不显示(不使用时-v)。
我想让 rsync 安静,除了实际上必须上传到远端的文件。是否有一个标志可以激活这种报告?我在文档中找不到这个
Rsync 具有用于压缩的命令行参数:
-z, --compress compress file data during the transfer
--compress-level=NUM explicitly set compression level
Run Code Online (Sandbox Code Playgroud)
什么--compress-level意思?哪些数字可以用作级别?
我有大量的相对性小数据文件,但它们占用了大约 50 GB,我需要将它们转移到另一台机器上。我试图想出最有效的方法来做到这一点。
我的想法是 gzip 整个事情,然后 rsync 它并解压缩它,依靠 rsync -z 进行压缩,gzip 然后使用 rsync -z。我不确定哪个最有效,因为我不确定 rsync -z 是如何实现的。关于哪个选项最快的任何想法?
比较两个目录结构并删除目标位置中无关文件和目录的最佳方法是什么?
我有一个正在开发的小型网络照片库应用程序。用户使用 FTP 添加和删除图像。我编写的网络画廊软件会即时创建新的缩略图,但它不处理删除。我想要做的是安排一个命令/bash 脚本以预定义的时间间隔来处理这个问题。
原始图像/home/gallery/images/使用子目录存储并组织在相册中。缩略图缓存在 中/home/gallery/thumbs/,使用与图像目录相同的目录结构和文件名。
我尝试使用以下方法来实现这一点:
rsync -r --delete --ignore-existing /home/gallery/images /home/gallery/thumbs
Run Code Online (Sandbox Code Playgroud)
如果所有缩略图都已被缓存,这会正常工作,但不能保证会是这种情况,当发生这种情况时,thumb 目录会将原始全尺寸图像复制到其中。
我怎样才能最好地实现我想要做的事情?
这可能是一个愚蠢的问题,但我想保持我的一些服务器干净并且不想安装任何其他软件。
但我一直认为 rsync 会通过 SSH 复制数据并且不需要远程端的 rsync ?
/usr/bin/rsync -a --delete --numeric-ids --relative --delete-excluded --rsh=/usr/bin/ssh root@server01:/etc /.snapshot/hourly.0/server01
rsync: command not found
Run Code Online (Sandbox Code Playgroud)