我正在将文件从一台 Debian 机器移到另一台,以便将旧机器用于其他用途。我不想错过任何文件,因为我将不可恢复地格式化旧机器的硬盘。
仔细考虑一下,我意识到我需要复制的所有文件和文件夹都不是由任何已安装的 Debian 软件包维护的。有没有一种简单的方法来列出此类文件和文件夹?
答案1
cruft
正是用于此目的的一个有用工具:它对文件系统和已安装的 Debian 软件包的数据库进行比较。除了列出未知文件之外,它还列出了丢失但应该存在的文件。
debsums
当我需要开始系统管理或升级我之前没有处理过的机器上的工作时,我经常使用它。这使我能够发现任何本地修改和安装并为其制定计划,而不是客户在升级后告诉我他们的软件不再工作。
安装:
apt-get install cruft
列出所有“cruft”但忽略指定目录:
cruft --ignore "/dev /proc /sys /root /home /tmp"
更多信息:
man cruft
zless /usr/share/doc/cruft/README.gz
答案2
如果您没有做过任何不寻常的事情,那么答案是/bin
、/boot
、/lib*
和中的所有内容/sbin
都/usr
来自 Debian 软件包,除了那/usr/local
是您的;系统的其余部分是你的。您需要备份的典型位置是/home
和/etc
(总是)、/var
(大部分;例如/var/cache
不需要备份)、/srv
(如果您使用它)、以及/usr/local
可能/opt
。
/
要列出文件系统上非来自 Debian 软件包的常规文件:
find / -xdev -type f | sort >/tmp/root.list
sort /var/lib/dpkg/info/*.list >/tmp/dpkg.list
comm -23 /tmp/root.list /tmp/dpkg.list
如果您有单独的文件系统/usr
,请将其包含在find
命令中。如果您有单独的文件系统/home
或/var
或其他自定义位置,请将其包含在您的备份中。