我有一個項目名稱快照記錄器我用它來將日誌發送到檔案、syslog、控制台或遠端電腦(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