我有一个项目名称snaplogger我使用它将日志发送到文件、系统日志、控制台或远程计算机(syslogd 的功能与它类似,但还具有更多功能)。
每当另一个项目想要使用时snaplogger
,它都应该创建一个日志子目录。例如,我的传播者项目是这样做的:
PACKAGENAME=communicatord
USERNAME=communicatord
GROUPNAME=communicatord
[...snip...]
LOGDIR=/var/log/${PACKAGENAME}
LOGFILE=${LOGDIR}/${PACKAGENAME}.log
mkdir -p ${LOGDIR}
touch ${LOGFILE}
chown ${USERNAME}:${GROUPNAME} ${LOGFILE}
chmod 640 ${LOGFILE}
我想做的是将最后 6 行移到项目snaplogger
提供的脚本中。然后communicatord
只需使用脚本定义的函数即可。可能是这样的:
prepare-snaplogger ${PACKAGENAME} ${USERNAME} ${GROUPNAME} true
最后的意思true
是我们还想要一个安全日志子文件夹。
由于 postinst 脚本以 root 身份运行,它可以创建所有这些,而服务将以自身身份运行(即我有一个communicatord
用户),因此它将无法创建这些文件夹。
我的问题是:在 Debian 和/或 Ubuntu 中是否有提供此类扩展脚本的记录方式?
我的想法是每个项目都应该在 下提供这样的内容/usr/share/<project-name>/[debconf/?]
。但也许我们可以使用该/var/share/debconf/...
文件夹?
因此,我需要在communicatord.postinst
脚本开头附近添加一行来获取该文件,如下所示:
. /usr/share/snaplogger/debconf