有没有办法让 Ed 创建当前加载到缓冲区的文件的备份。有时我会不小心覆盖我的文件,发现它无法恢复。即制作一个备份文件,在原始文件名后附加一个波浪号(例如,myfile.txt~),其中包含该文件的先前版本。
在计算机发生故障后,我刚刚从 borg 备份存储库恢复了我的数据。
我的~/.gnupg
文件夹看起来不错,私钥在那里,权限看起来正确。通常博格在这方面做得很好。当我查看cat
私钥文件时,没有数据损坏的迹象。
但是我无法列出或使用私钥。pacman
我只能与在安装过程中导入的公钥进行交互。
我遇到过一些类似的帖子,这些问题涉及从一台机器复制到另一台机器后无法识别私钥的问题,通常,按照使用重复传输的建议,gpg —export-key
然后使用相反的命令导入它们,问题就会得到解决。
不幸的是,我没有这样的奢侈,因为我的旧机器已经崩溃并且无法恢复。我知道导入和导出密钥,但我始终认为这只是移动密钥的安全过程。
所以我有两个问题:
我是否必须检查我的备份脚本并对我的 gpg 密钥使用导出命令?
我还能恢复我的密钥吗?
=======编辑======
我在 arch 论坛上发现了一篇帖子,其中一位用户遇到了与我完全相同的问题,所以我得到了更多线索可以关注。
到目前为止我尝试过的:
gpg --version
> gpg (GnuPG) 2.4.5
ps aux | grep gpg-a
> /usr/bin/gpg-agent --supervised
#About ownership:
chown -R $USER:$USER .gnupg
# Checking UID/GID with show a result of `1000` both on filesystem # # and backup archive.
ls -vn .gnupg/private-keys-v1.d
gpg --export-secret-keys
> gpg: WARNING: nothing exported
gpg -v --list-secret-keys
> gpg: enabled compatibility flags:
> gpg: using pgp trust model
# Most relevant results of:
strace -f -o /tmp/gpg.strace gpg --list-secret-keys
cat /tmp/gpg.strace
> 76220 access("/etc/ld.so.preload", R_OK) = -1 ENOENT (No such file or directory)
> 76220 access("/home/$USER/.gnupg/secring.gpg", F_OK) = -1 ENOENT (No such file or directory)
# Listing public keys
gpg --list-keys
> Returns one public key imported by pacman during install
gpg -K
> Returns nothing
ls -ln .gnupg/
.rw-r----- 12 1000 13 Mar 10:45 common.conf
drwx------ - 1000 6 Sep 2023 crls.d
.rw------- 2.0k 1000 13 Sep 2023 gpg-agent.conf
.rw------- 703 1000 5 Mar 18:48 gpg.conf
drwx------ - 1000 30 Aug 2023 private-keys-v1.d
drwxr-x--- - 1000 14 Mar 19:27 public-keys.d
.rw-r--r-- 0 1000 24 Aug 2023 pubring.gpg
.rw-r--r-- 7.7k 1000 5 Mar 12:13 pubring.kbx
.rw-r--r-- 7.0k 1000 7 Sep 2023 pubring.kbx~
.rw------- 600 1000 8 Mar 07:20 random_seed
.rw-r----- 676 1000 30 Aug 2023 sshcontrol
.rw------- 1.6k 1000 2 Sep 2023 trustdb.gpg
original/
将整个目录(例如 )镜像到新目录(例如 )的最佳方法是什么mirror/
,该目录具有结构mirror/data/
和mirror/tree/
,这样
- 目录
original/
或其任何子目录中的每个文件都硬链接到mirror/data
- 其文件名是其内容的唯一标识符,例如其内容的哈希值,以及
- 它是从一个点开始符号链接的,
mirror/tree
该点的相对路径对应于 中原始文件的相对路径original
,
以便可以轻松恢复?
这个功能可能是由现有的某种工具实现的吗?– 允许灵活选择命令来根据文件内容创建唯一标识符的命令。
例如,假设只有一个文件original/something
,它是一个包含单词“data”的文本文件。然后我想在 上运行脚本或命令original
,结果是:
$ tree original mirror
original
└── something
mirror
├── data
│ └── 6667b2d1aab6a00caa5aee5af8…
└── tree
└── original
└── something -> ../../data/6667b2d1aab6a00caa5aee5af8…
5 directories, 3 files
在这里,该文件667b…
是一个硬链接original/something
,其文件名是该文件的 sha256sum 哈希值。请注意,为了便于阅读,我已缩写了文件名。
我希望能够通过它的镜子完美地还原原来的样子。
我知道我可以编写一个脚本来做到这一点,但在我这样做之前,可能会犯错误并丢失一些数据,我想知道是否有任何工具已经安全地实现了这一点(我没有找到任何工具)远)或者是否有任何陷阱。
背景:我想保留跟踪重命名的目录的存档,但我不需要版本控制。我知道git-annex
使用 git 存储库会产生大量开销,但我只需要使用目录结构的符号链接将目录的内容镜像到文件名是其内容的哈希值的文件。然后我可以使用 git-diff 来跟踪重命名。我不完全理解 git-annex 在做什么,所以我不想信任它来归档我的数据。所以我正在寻找一种更轻、干扰更少的替代方案。
当我在 opensuse Leap 15.5 中使用 grsync 来同步随身碟时,它工作得很好,只有当我在 windows10 操作系统中插入其中一个随身碟时,它们才会被视为已损坏并建议进行更正。如果我跳过修正,它们就可以正常工作,然后,当我尝试卸载它们时,Windows 会指出有打开的文件,如果我不希望它们损坏,我应该在卸载之前关闭它们。没有文件打开,也无法阻止窗口来声明它。
其他随身碟不会发生这种情况。
我想/home
每周用 Linux (Lubuntu 20.04) 备份我的计算机分区。问题是我拥有的唯一额外硬盘驱动器连接到 Windows 计算机。看来Windows如果没有一些第三方工具就无法管理ext3
或分区(我不知道这些工具有多可靠)。ext4
看起来我别无选择,只能在 NTFS 卷上进行备份。
那么,问题来了。怎样做才正确呢?
我在这个帖子上发现了一个类似的问题,但十年前就有人提出并回答了这个问题(我说的是第二个答案,它比公认的答案更具体)。为了方便起见,我把相关部分复制在这里。
备份:
ionice -c2 -n5 nice -n9 tar czvf - /media/somelinuxdrivepath | split -b 16m - /media/usb/ntfsmounted/back.tar.gz.
要从备份副本恢复:
ionice -c2 -n5 nice -n9 cat /media/usb/ntfsmounted/back.tar.gz.* | tar xzvf - /media/somenewlinuxpath
但我对这个答案有三个疑问,如下:
- 十年已经很长了,那么从那以后是否有可能出现比(专门为此目的而设计的特殊工具)更可靠和/或更方便的东西?
- 我真的不明白命令之前的部分
tar
,我已经尝试过,但这超出了我的范围。 - 就我而言,/home 分区大小超过 200 GB。如果我在一周内只更改了少数文件,那么每个周末备份所有内容是否合理?类似的东西
Rsync
听起来像是一个合乎逻辑的选择,但它会是可用于完全恢复分区的完整副本吗?
我想使用口是心非将我的主文件夹的大部分备份到 Backblaze。我正在尝试将其设置为每月进行一次完整备份。为此,我使用每天运行的以下命令:
LOCAL_DIR="/home/username"
EXCLUDE="\
--exclude /home/username/temp \
--exclude /home/username/.cache \
"
duplicity \
backup --full-if-older-than 1M ${EXCLUDE} --progress \
${LOCAL_DIR} b2://${B2_ID}:${B2_KEY}@${B2_BUCKET}
这每天都会成功创建一个备份,但是口是心非永远不会创建新的链——九月份有一次完整备份,从那以后只有增量备份。我想启动一个新的链,每月进行一次完整备份。
我尝试过一些没有运气的事情:
- 将 1M 更改为 30D
- 更改选项的顺序(例如首先排除)
- 改成
backup
_incremental
有任何想法吗?谢谢!
以下是该命令的输出示例:
+ duplicity backup --full-if-older-than 1M --exclude /home/username/temp --exclude /home/username/.cache --progress /home/username b2://B2_ID:B2_KEY@B2_BUCKET
Local and Remote metadata are synchronized, no sync needed.
Last full backup date: Thu Sep 21 16:19:13 2023
3.9MB 00:01:12 [291.5KB/s] [========================================>] 100% ETA 0sec
--------------[ Backup Statistics ]--------------
StartTime 1702050982.47 (Fri Dec 8 16:56:22 2023)
EndTime 1702051043.61 (Fri Dec 8 16:57:23 2023)
ElapsedTime 61.15 (1 minute 1.15 seconds)
SourceFiles 540202
SourceFileSize 77232368533 (71.9 GB)
NewFiles 39
NewFileSize 15434498 (14.7 MB)
DeletedFiles 11
ChangedFiles 78
ChangedFileSize 70757910 (67.5 MB)
ChangedDeltaSize 0 (0 bytes)
DeltaEntries 128
RawDeltaSize 19617995 (18.7 MB)
TotalDestinationSizeChange 3410741 (3.25 MB)
Errors 0
-------------------------------------------------
这是收集状态:
+ duplicity collection-status --progress b2://B2_ID:B2_KEY@B2_BUCKET
Last full backup date: Thu Sep 21 16:19:13 2023
Collection Status
-----------------
Connecting with backend: BackendWrapper
Archive dir: /home/username/.cache/duplicity/a52568672c187fdf7e6d79e12a4df37f
Found 0 secondary backup chain(s).
Found primary backup chain with matching signature chain:
-------------------------
Chain start time: Thu Sep 21 16:19:13 2023
Chain end time: Fri Dec 8 16:55:20 2023
Number of contained backup sets: 72
Total number of contained volumes: 331
Type of backup set: Time: Num volumes:
Full Thu Sep 21 16:19:13 2023 222
Incremental Fri Sep 22 13:41:57 2023 1
Incremental Fri Sep 22 14:04:53 2023 1
Incremental Fri Sep 22 14:07:21 2023 1
Incremental Sat Sep 23 23:07:51 2023 1
Incremental Sun Sep 24 14:38:12 2023 1
Incremental Sun Sep 24 15:44:06 2023 1
Incremental Mon Sep 25 14:49:06 2023 1
Incremental Tue Sep 26 10:31:05 2023 1
Incremental Wed Sep 27 14:24:04 2023 1
Incremental Thu Sep 28 11:10:04 2023 1
Incremental Fri Sep 29 14:29:04 2023 1
Incremental Sat Sep 30 12:08:39 2023 2
Incremental Sun Oct 1 11:33:05 2023 1
Incremental Mon Oct 2 10:22:05 2023 2
Incremental Tue Oct 3 15:37:05 2023 6
Incremental Wed Oct 4 13:50:36 2023 1
Incremental Thu Oct 5 14:28:05 2023 1
Incremental Fri Oct 6 13:39:05 2023 1
Incremental Sat Oct 7 14:42:07 2023 2
Incremental Sun Oct 8 08:21:05 2023 1
Incremental Mon Oct 9 19:11:05 2023 1
Incremental Tue Oct 10 10:06:05 2023 2
Incremental Wed Oct 11 11:07:05 2023 2
Incremental Thu Oct 12 11:21:05 2023 2
Incremental Fri Oct 13 21:04:58 2023 1
Incremental Sat Oct 14 13:27:15 2023 1
Incremental Sun Oct 15 12:13:05 2023 1
Incremental Mon Oct 16 11:27:06 2023 1
Incremental Tue Oct 17 12:10:05 2023 1
Incremental Thu Oct 19 14:37:53 2023 2
Incremental Fri Oct 20 19:13:03 2023 1
Incremental Sat Oct 21 14:26:06 2023 1
Incremental Sun Oct 22 11:49:55 2023 3
Incremental Mon Oct 23 12:20:05 2023 8
Incremental Wed Oct 25 17:05:08 2023 1
Incremental Wed Oct 25 18:28:05 2023 1
Incremental Thu Oct 26 21:35:52 2023 1
Incremental Fri Oct 27 14:36:05 2023 1
Incremental Sat Oct 28 09:06:04 2023 1
Incremental Sun Oct 29 20:04:52 2023 1
Incremental Mon Oct 30 13:30:05 2023 1
Incremental Tue Oct 31 11:24:05 2023 1
Incremental Wed Nov 1 18:36:05 2023 2
Incremental Fri Nov 3 09:49:05 2023 1
Incremental Sat Nov 4 03:27:05 2023 2
Incremental Sun Nov 5 19:50:06 2023 2
Incremental Mon Nov 6 17:49:17 2023 1
Incremental Tue Nov 7 12:38:34 2023 1
Incremental Tue Nov 7 19:10:04 2023 1
Incremental Wed Nov 8 18:12:09 2023 1
Incremental Thu Nov 9 13:43:17 2023 1
Incremental Fri Nov 10 20:29:17 2023 2
Incremental Sat Nov 11 14:19:05 2023 1
Incremental Sun Nov 12 21:27:09 2023 3
Incremental Mon Nov 13 14:29:05 2023 1
Incremental Tue Nov 14 18:05:55 2023 3
Incremental Wed Nov 15 10:06:05 2023 3
Incremental Thu Nov 16 14:45:06 2023 5
Incremental Fri Nov 17 10:40:05 2023 4
Incremental Sun Nov 19 18:14:08 2023 1
Incremental Mon Nov 20 16:51:05 2023 1
Incremental Wed Nov 22 14:23:07 2023 1
Incremental Thu Nov 23 16:27:06 2023 1
Incremental Sun Dec 3 17:10:06 2023 1
Incremental Mon Dec 4 21:17:05 2023 1
Incremental Tue Dec 5 13:51:06 2023 1
Incremental Thu Dec 7 11:14:04 2023 1
Incremental Fri Dec 8 15:38:05 2023 1
Incremental Fri Dec 8 15:48:07 2023 1
Incremental Fri Dec 8 16:26:20 2023 1
Incremental Fri Dec 8 16:55:20 2023 1
-------------------------
No orphaned or incomplete backup sets found.
我想在我的电脑上备份FROM [email protected]:/home/user/mc
TO 目录/local/backup-folder
。
为什么这不起作用?
restic init --repo /local/backup-folder
restic -r /local/backup-folder backup sftp:[email protected]:/home/user/mc
sftp:[email protected]:/home/user/mc does not exist, skipping
init does not exist, skipping
Fatal: all target directories/files do not exist
使用ssh [email protected] ls /home/user/mc
有效,并且远程目录确实存在。
假设有一个名为domains
in的文件夹glassfish
。它有domain1
,domain2
...。domainN
我想从目录中取出所有内容domain1
并将logs
它们保存到/home/user/backup
目录中。
我可以手动执行此操作,
cp -R /home/user/glassfish/domains/domain1 /home/user/backup
rm -rf /home/user/backup/domain1/logs
但我怎样才能更轻松地做到这一点呢?
我目前正在测试环境中通过“转储”和“恢复”来测试 RHEL 6.4 操作系统的备份/恢复,我确实知道 RHEL 6.4 现在看起来太过时了。但一些企业仍在使用此类版本的RHEL来加载他们的服务。
以下是场景:在发生主机崩溃/故障事件时备份系统和关键程序。
- 用于备份的测试 RHEL 6.4 主机利用 Windows Hyper-V VM 作为基础设施,操作系统根安装在 LVM 逻辑卷上。
- 为了备份系统,我将系统置于单用户模式并使用命令备份根文件系统
dump -0uf /<path_to_a_second_storage_to_store_dump>/mybackup.dump /
- 转储在屏幕上显示“DUMP IS DONE”,并且创建的转储文件大小约为 2.2GB,因此我相信备份成功。
为了模拟主机崩溃事件,我利用LVM逻辑卷重新安装了RHEL 6.4系统,并在恢复之前将系统引导到单用户模式。
但是,使用恢复根文件系统后
restore -rf /<path_to_a_second_storage_to_store_dump>/mybackup.dump
屏幕显示内核恐慌和其他一些错误,并最终挂起。
我重试了几次但总是失败。
谁能给我一些提示,为什么恢复无法完成?
编辑:忽略这个问题。今天发生了奇怪的错误。
我正在使用 Timeshift 进行完整的系统备份。(包括所有主文件夹)。
如何~/Dropbox
从备份中排除主文件夹的子文件夹?
我试过
+ /home/nils/**
+ /root/**
- /home/nils/Dropbox/***
我试过了
编辑:这是怎么做的。我一定是打错了什么。
- /home/nils/Dropbox/***
+ /home/nils/**
+ /root/**
在这两种情况下,Dropbox 文件夹(包括其内容)都包含在备份中,这是我不想要的。