Answers:
要查找所有已更改为默认值的Debian托管配置文件,可以使用如下命令。
dpkg-query -W -f='${Conffiles}\n' '*' | awk 'OFS=" "{print $2,$1}' | md5sum -c 2>/dev/null | awk -F': ' '$2 !~ /OK/{print $1}'
编辑(适用于本地化系统):
dpkg-query -W -f='${Conffiles}\n' '*' | awk 'OFS=" "{print $2,$1}' | LANG=C md5sum -c 2>/dev/null | awk -F': ' '$2 !~ /OK/{print $1}' | sort | less
编辑(使用文件名中包含OK的软件包):
dpkg-query -W -f='${Conffiles}\n' '*' | awk 'OFS=" "{print $2,$1}' | LANG=C md5sum -c 2>/dev/null | awk -F': ' '$2 !~ /OK$/{print $1}' | sort | less
md5sum --quiet
避免过滤OK文件awk
(以及本地化问题?)。顺便说一句:您不知道如何在/ etc中包括未跟踪的文件?例如/ etc / apache2 / sites-available中的那些?
debsums -ec
)的实际工作方式将很有趣,因为它似乎得到的结果要少得多。
debsums -ec
:如果我使用此方法恢复软件包版本,则通过此方法列出的某些文件不会更改。
来自man debsums
:
debsums -ce
List changed configuration files.
很抱歉necro,但是@ naught101的答案对于修改后的文件是正确的,但对于添加的文件却无济于事。@Graeme的解决方案很好,但取决于etckeeper;我不想修改文件系统。
find /etc -type f | grep -vFf <(debsums -e -r /etc | sed 's/[[:space:]]*OK$//')
查找在/ etc /的文件debsums
并没有报道为有效。这意味着未跟踪的文件或不是“确定”的文件(哈希不匹配)。
debsums --list-missing
一个程序来检查一个或多个软件包是否缺少所包含文件的校验和。如今,输出应该为空。
我通常很喜欢立即在系统上设置etckeeper。使用etckeeper之类的工具,我不仅可以找到文件不同的时间,而且还可以找到文件不同的确切区别。
看到:
这可能是多余的,但是由于有人提到过etckeeper,并且在我调查我遇到其他宝石时,如果您尝试“事后”解决问题,这可能会更有用。
http://devstructure.com/blueprint/
蓝图是对服务器进行反向工程的简单配置管理工具。它找出您手动完成的工作,将其本地存储在Git存储库中,生成能够重新创建工作的代码,并帮助您将这些更改部署到生产中。
这与原始问题有所不同,因为它还会提供ADDED配置文件,而不是仅仅修改的文件。尽管未包含在任何deb软件包中的文件也会被捕获。两种行为都可能是理想的。
最好从一开始就将etckeeper与git vcs一起使用,尽管如果您在第一次提交后专门添加并提交先前更改的文件,它也可以工作。请注意,这里的一个陷阱是Ubuntu默认配置etckeeper使用Bazaar(规范赞助商Bazaar),而不是etckeeper开发人员设置的git default。
这个想法是获取所有在apt运行之后没有自动进行的提交的列表。然后列出除了第一次提交外所有文件中更改的文件:
filter_sed="/committing changes in \/etc after apt run\$/d"
etckeeper vcs log --oneline |
sed "$filter_sed; \$d; s/ .*//" |
xargs etckeeper vcs show --name-only --format=format: |
sort |
uniq |
sed "/^\$/d"
如果一致地命名过滤器字符串,那么它们也可以扩展为包含其他提交。直接从deb文件或从源代码安装可能会有所帮助。
我会注意到的一个值得注意的文件是我的文件xorg.conf
-当前,如果需要,您必须自己将其添加到/ etc / X11中。另外,我的default/grub
更改也被提取,似乎是通过安装后脚本从/ usr / share复制的,而不是作为软件包的一部分列出的。如果对这样的文件进行了更改,则与dpkg相关的方法将不会显示该文件。
git log
现在有一个--invert-grep
选项,无需使用即可过滤掉无用的提交sed
。