我正在寻找如何将 CentOs 7 中的用户主目录自动备份到远程主机或 NAS 或仅备份到 ~/.snapshot。在某些 Linux 设置中,我在用户的主目录 (~/.snapshot/) 中看到了一个 .snapshot 文件夹,其中保存了其主目录每小时、每晚和每周的备份(即 ~/.snapshot/weekly1 ,用于保存其主目录的副本) 1 周前位于用户的主目录中)。
/home/username/.snapshot/ 目录对于用户来说是只读的。它不是为了防止硬件故障而进行的备份。如果您不喜欢所做的更改,那么能够恢复昨天或今天早上的文件真是太好了。
我看过几篇有关堆栈溢出的相关帖子,但到目前为止,我还没有看到解释完整工作流程的指南。
这是我目前所知道的:
rsync将给定文件夹的内容复制到远程主机、NAS 或 (~/.snapshot/hourly0)rsync命令#!/bin/bash
sudo rsync -av --progress --delete --log-file=/home/username/$(date +%Y%m%d)_rsync.log --exclude "/home/username/.snapshot" /home/username/ /home/username/.snapshot/hourly1
sudo chmod +x /home/username/myscript.sh
用于crontab按所需的备份间隔安排 rsync 命令
在运行计划的每小时 rsync 之前,以某种方式将 hourly0 移动到 hourly1
rsync 成功完成后删除最旧的备份
是否有任何指南介绍如何执行此操作?我不明白如何随着时间的推移自动重命名文件夹(即 Week1 到 Week2),或者如果我决定只保留最多 9 周,如何删除“week10”。这是另一项cron工作吗?
更新:经过更多谷歌搜索后,我发现 NetApp 创建了快照文件夹。我只是目前没有 NetApp NAS。https://library.netapp.com/ecmdocs/ECMP1635994/html/GUID-FB79BB68-B88D-4212-A401-9694296BECCA.html
我想.zshrc在我的~/目录中创建文件的备份,并避免对所有其他项目进行版本控制。如何排除所有子目录及其内容?
例如:
cd ~/subdirectory/ && git status
Run Code Online (Sandbox Code Playgroud)
应该输出:
fatal: Not a git repository (or any parent up to mount point /)
Run Code Online (Sandbox Code Playgroud)
如何实现这一目标?
我预期的事件顺序如下:
备份大部分根目录
sudo rsync -aAXv --delete --exclude={/dev/*,/proc/*,/sys/*,/mnt/*,/media/*} / /BACKUP
反转过程
sudo rsync -aAXv --delete --exclude={/dev/*,/proc/*,/sys/*,/mnt/*,/media/*} /BACKUP /
我很紧张尝试第二部分而不首先进行一些健全性检查,因此这篇文章。输出--dry-run看起来都不错,但仍然想先检查一下
在使用备份工具时duplicity,我注意到如果我重命名源上的文件,数据将通过网络再次重新发送到目的地,这有点令人难过。由于内部duplicity使用librsync,我决定看看rsync.
这个ArchWiki 页面指出:
\n\n\n处理重命名
\n
\n检测到移动/重命名的文件,并且不会存储或传输两次。\xc2\xa0\n它\xc2\xa0通常意味着计算文件或其块的校验和。\xc2\xa0\n可以补充缺少此功能的应用程序通过与AUR组合,它仅同步重命名。hsync
\n\nrsync:处理重命名:否
\n
这是否真的意味着,在使用 时rsync,如果我在源计算机上重命名为 ,则无法阻止 10 GB 通过网络重新传输到目的地/test/10GBfile?/test/10GBfile_newname
鉴于 的长期流行rsync,是否有更好的处理方式?
如何将正在运行的 Linux 文件系统 (Debian 10) 克隆到文件.img?我想将其闪存到另一个 SSD,并希望新系统能够以完全相同的方式运行。Clonezilla 不适合我。新机器的硬件将完全相同。
在使用 Ubuntu 虚拟机一段时间后,我想我已经准备好获得一台真正的物理机并在其上使用 Ubuntu。
由于我对 Linux 世界还比较陌生,是否有可靠的解决方案来定期备份我的系统的文件和设置(可能类似于 Apple 的 Time Machine?),当我的硬盘出现故障时,我可以依赖它,或者有什么不好的事情发生吗?
我的家庭网络上有一台 WD MyBook World NAS。我目前将此用于 Mac 的 Time Machine 备份,但我也想将其用作运行 Ubuntu Server 的 linux 机器的备份位置。如何在 linux 服务器上安装此驱动器,以便我的 cron 备份可以将其用作备份目标?
我已经使用静态 IP 地址配置了 WD 驱动器,我认为这在解决方案中很重要。
有没有办法将音频 CD 翻录为 ISO9660 文件?我曾尝试过像dd过去这样的简单事情,但没有奏效。我想基本上拥有磁盘上内容的镜像,甚至不一定是 WAV 文件的文件夹。
我知道我可以将 CD 翻录为 WAV 文件甚至 FLAC 文件,但是有没有办法将光盘复制到一个文件中,以便稍后从中提取 WAV 或 FLAC?这个想法是能够制作源媒体的几乎相同的副本。
我阅读了很多关于使用 gpg 加密电子邮件的文章,但我想用它来加密一些文件——主要是一堆 *.iso。我将描述我认为我会做什么,所以你可以拍我或者只是添加一些建议。
我打算去做
tar -cvjf myiso.iso.tar.bz2 myiso.iso
Run Code Online (Sandbox Code Playgroud)
他们我计划使用 gpg 生成的密钥来加密这个 myisio.tar.bz2(不知道如何做到这一点。我将阅读手册页)。他们,我要将这个生成的 gpg 密钥保存在闪存驱动器中,并使用对称密钥对这个密钥本身进行编码。
是不是疯了?
cmp(1) 当然会告诉我两个文件的内容是否相同,但为了测试从备份恢复,我还想比较相关的 (!) 文件属性。
所以如果我做了一些简单的事情
mv foo.bar foo.bar.save
deja-dup --restore foo.bar # or some other backup tool
Run Code Online (Sandbox Code Playgroud)
我如何比较 foo.bar 和 foo.bar.save 的属性并在 shell 脚本(或类似脚本)中测试是否足够相等。我可以
stat foo.bar{,.save}
Run Code Online (Sandbox Code Playgroud)
并手动检查输出,记住忽略 inode、atime 和 ctime(以及链接计数,出于某种原因?),但这很容易出错。某处是否有包含 SELinux 和其他属性的 cmp-with-attributes 工具?必须在 Fedora 和 ext4 文件系统上工作;理想情况下,在“所有”系统上。我需要在 perl 中修改一些东西吗?
(如果您不测试它们是否正常工作,则备份毫无意义。)