安装包后向日志文件发送消息

安装包后向日志文件发送消息

安装软件包后如何向日志文件(而不是 apt 日志)发送消息。我只是想记录安装了哪个包(包名称)。 IE。 “链接安装成功”

答案1

logger可以用于此目的,例如

logger package installed successfully

答案2

/var/log/dpkg.log应包含您想要的信息:

man dpkg

--log=文件名

将状态更改更新和操作记录到文件名,而不是默认的 /var/log/dpkg.log。

如果多次给出此选项,则使用最后一个文件名。

日志消息的形式为:

YYYY-MM-DD HH:MM:SS startup type command对于每个 dpkg 调用,其中类型为档案(使用 unpack 或 install 命令)或软件包(使用 configure、triggers-only、remove 或 purge 命令);

YYYY-MM-DD HH:MM:SS status state pkg installed-version用于状态变更更新;

YYYY-MM-DD HH:MM:SS action pkg installed-version available-version对于操作为安装、升级、配置、trigproc、消失、删除或清除之一的操作;

对于YYYY-MM-DD HH:MM:SS conffile filename decision配置文件更改,决定是安装还是保留。

例如,我今天早上安装是为了调查和ksh之间的区别。mkshksh93

# grep ksh /var/log/dpkg.log
2015-11-18 09:39:52 install ksh:amd64 <none> 93u+20120801-2
2015-11-18 09:39:52 status half-installed ksh:amd64 93u+20120801-2
2015-11-18 09:39:52 status half-installed ksh:amd64 93u+20120801-2
2015-11-18 09:39:52 status unpacked ksh:amd64 93u+20120801-2
2015-11-18 09:39:52 status unpacked ksh:amd64 93u+20120801-2
2015-11-18 09:39:57 configure ksh:amd64 93u+20120801-2 <none>
2015-11-18 09:39:57 status unpacked ksh:amd64 93u+20120801-2
2015-11-18 09:39:57 status unpacked ksh:amd64 93u+20120801-2
2015-11-18 09:39:57 status half-configured ksh:amd64 93u+20120801-2
2015-11-18 09:39:57 status installed ksh:amd64 93u+20120801-2

如果您只想知道软件包何时安装或升级,请尝试以下操作:

# zgrep -E '(install|upgrade) bash[: ]' /var/log/dpkg.log*
/var/log/dpkg.log.12.gz:2014-11-25 12:19:59 upgrade bash:amd64 4.3-11 4.3-11+b1
/var/log/dpkg.log.2.gz:2015-09-12 18:52:44 upgrade bash:amd64 4.3-13 4.3-14
/var/log/dpkg.log.4.gz:2015-07-29 10:27:33 upgrade bash:amd64 4.3-12 4.3-13
/var/log/dpkg.log.9.gz:2015-02-09 11:54:56 upgrade bash:amd64 4.3-11+b1 4.3-12

正则表达式中的尾随是为了从列表中排除其他包,[: ]例如bash-builtins、等。bash-completionbash-doc

答案3

您可以使用:

sudo apt-get install somepackage && echo somepackage installed successfully >> mylogfile.log

这有点傻,但它回答了您提出的确切问题。如果安装成功,它只会将消息放入 mylogfile.log 中。

(如果这没有帮助,请为您的问题添加更多详细信息,我会尽力提供帮助。)

相关内容