我很高兴使用 rsync 来备份我的服务器,尽管我对--delete-excluded参数有疑问。
/usr/bin/rsync -a --delete --numeric-ids --relative --delete-excluded --rsh=/usr/bin/ssh root@server01:/etc /.snapshot/hourly.0/server01
Run Code Online (Sandbox Code Playgroud)
来自man rsync:
--delete-excluded also delete excluded files from dest dirs
Run Code Online (Sandbox Code Playgroud)
对我来说,一个非英语母语者,这意味着 rsync 将从远程服务器上的实际目标目录中删除排除的目录,所以如果我有/home/backup并且/home/settings在我的排除文件夹中,这些文件夹实际上将从远程服务器中删除。
从其他几个资源来看,它似乎会从本地备份文件夹中删除文件以节省空间。例如,您可以在服务器本身上创建小型备份并排除这些数据,这样您就不会浪费存储空间。
尽管 rsync 只能以一种方式完成它的工作,但对我来说这很重要,因为人们说它可以正常工作,但我不想在拥有删除远程服务器上的文件/目录的软件时冒任何风险。
我们使用 rsnapshot 进行备份。它保留了备份文件的大量快照,但它确实删除了旧文件。这很好。然而,rm -rf在一个巨大的目录树上做一个大约需要 7 个小时。文件系统是 XFS。我不确定那里有多少个文件,但可能有数百万个。
有没有办法加快速度?是否有任何命令可以执行相同的操作rm -rf并且不需要花费数小时和数小时?
我使用 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。你怎么认为?
我正在使用 rsnapshot 开始备份 CentOS 5.5 安装,我需要一个我可能应该从备份中排除的文件夹列表。该服务器主要是 LAMP Web 服务器,将在备份时提供服务,但容量应该相对较低。备份 /var/lib/mysql 是个坏主意吗?
我假设我不应该担心备份 /proc,还有哪些其他文件夹不需要备份?
好的,我在 fstab 中有这个
//windows_mashine/Backup /backups cifs credentials=/root/.credentials,rw,_netdev,iocharset=utf8,uid=1000 0 0
Run Code Online (Sandbox Code Playgroud)
我的 cron 中有 rsnapshot,它将 /etc/ 和 /usr/local/ 以及其他一些文件备份到 /backups
最近我发现当其他 mashine 关闭并且 /backups 无法安装 rsnapshot 备份到物理文件夹 /backups 时,它会占用分区/空间。我怎样才能避免这种情况?
我可以在未挂载时阻止对 /backups 的任何写入吗(rsnapshot 以 root 身份运行,因为它需要备份一些系统文件)
我正在开展一个向青年教授 Linux 的项目。知道他们倾向于删除或损坏其主目录中的项目,我们正在寻找一个好的快照选项。我们将无法访问主要存储供应商提供的精美工具,并希望在文件系统级别找到解决方案。
我读了很多关于 btrfs 的书,但经验很少。我对 LVM 有一些经验,但我不熟悉它的快照功能。文件系统或其他文件系统是否可以选择按需或计划创建快照?然后让这些快照在没有 root 的情况下始终可用,就像每个主文件夹中的 .snapshot 文件夹一样?
理想情况下,该解决方案允许用户在 24 到 48 小时内按需自行恢复备份。我们将为系统进行另一个备份过程和更多的全局备份。但我们不希望这个过程被那些只是犯“错误”的学生使用。
我不确定标题是否真的正确。我的 rsnapshot.conf 中有一行
backup root@123.123.123.123:/mnt/rsnapshot/ srv01/
Run Code Online (Sandbox Code Playgroud)
所以 rsnapshot 创建一个导演RSNAPSHOT_ROOT/daily.0/srv01/mnt/rsnapshot并将备份文件放在那里。对我来说,这/mnt/rsnapshot部分是不必要的;我宁愿将备份文件直接放在RSNAPSHOT_ROOT/daily.0/srv01/. 有没有办法实现这一目标?
我使用许多 OSX 客户端机器,这些机器通过TimeMachine备份到 Ubuntu Linux 文件服务器上的 AFP 共享,由 netatalk/afpd 导出。这些客户端每天在任意时间备份。服务器上还有其他重要的非 TimeMachine AFP 共享。
在服务器上,TimeMachine 备份表示为sparsebundles——一种涉及许多“带”的数据存储格式——存储在标准的 EXT4 文件系统上。在这个 sparsebundle 中埋藏着 TimeMachine 使用的带有 HFS+ 文件系统的磁盘映像,但从服务器端来看,它只是带文件和一些顶级元数据的集合。
rsnapshot在服务器上每 4 小时运行一次,并将 sparsebundle 带文件和元数据备份到可移动媒体上(用于异地存储)。因此 rsnapshot 也在一天中的任意时间备份这些 sparsebundle 频带。rsnapshot 使用 rsync 来执行复制。
问题是,如果 rsnapshot 在客户端机器安装了 sparsebundle 时运行,我担心 rsnapshot 可能会捕获 sparsebundle 的不一致状态,因为在备份过程中频段可能会发生变化。显然这不利于保证可恢复的备份!
我正在努力想办法解决这个问题。在 rsnapshot 尝试进行备份时未安装 sparsebundle 似乎很重要。从服务器端,我目前能看到的唯一方法是关闭 aftp 守护进程,也许是在等待 OSX 客户端卸载 sparsebundle 之后。这样做的缺点是它也使其他非 TimeMachine AFP 导出也脱机,这对用户来说是不可接受的。据我所知,afpd 没有提供(轻松)添加或删除导出的方法 - 尽管一个选项可能是自动重写 afpd 的配置文件以在 rsnapshot 备份期间禁用 TM 导出,但这仍然会失败法新社短时间分享。
有没有更好的办法?
我有一个名为 的大目录servers,其中包含许多由rsnapshot. 这意味着结构或多或少类似于:
./servers
./servers/daily.0
./servers/daily.0/file1
./servers/daily.0/file2
./servers/daily.0/file3
./servers/daily.1
./servers/daily.1/file1
./servers/daily.1/file2
./servers/daily.1/file3
...
Run Code Online (Sandbox Code Playgroud)
快照是以rsnapshot节省空间的方式创建的:如果/servers/daily.0/file1与 相同/servers/daily.1/file1,它们都使用硬链接指向同一个 inode,而不是每个周期都复制一个完整的快照。/servers/daily.0/file1/servers /daily.0/file1
我尝试使用硬链接结构复制它,以节省目标驱动器上的空间,使用:
nohup time rsync -avr --remove-source-files --hard-links servers /old_backups
Run Code Online (Sandbox Code Playgroud)
一段时间后,rsync 冻结 - 没有新行添加到nohup.out文件中,并且似乎没有文件从一个驱动器移动到另一个驱动器。删除nohup并没有解决问题。
知道出了什么问题吗?
亚当
我为一个小型工作组管理 CentOS 4.8 服务器。去年,我通过软件 RAID(RAID 1,两个镜像驱动器)将文件系统转换为 LVM。
我现在在 LVM/RAID 上有以下文件系统:
/dev/mapper/vg-home 619G 231G 358G 40% /home
/dev/mapper/vg-tmp 7.9G 55M 7.5G 1% /tmp
/dev/mapper/vg-usr 7.9G 2.7G 4.9G 36% /usr
/dev/mapper/vg-var 7.9G 3.1G 4.5G 42% /var
Run Code Online (Sandbox Code Playgroud)
为了备份这些文件系统,我使用了 rsnapshot 和几个每周轮换的外部 2TB USB 驱动器。在实践中,效果非常好。我将 rsnapshot 配置为每四个小时做一次快照。
鉴于这种配置,我还应该考虑做 LVM 快照吗?LVM 快照是否更有效?我是否可以比每 4 小时执行一次 rsnapshot 备份更频繁地执行这些操作,而不会显着影响系统性能?
我知道 LVM 快照可用于确保备份的数据库一致性,但是该服务器不运行数据库,因此这不是真正的问题。
似乎有一种方法可以以免费的方式同时进行 LVM 和 rsnapshot 备份,但我无法确定。