아무도 내가 여기서 잘못한 것을 말해 줄 수 있습니까?
궁극적 인 질문은 다음과 같습니다.
logger 명령을 사용할 때 왜 사용자 정의 로그 파일로 출력 할 수 /var/log
없습니까?
내 스크립트에서 :
logger -i -t ANM -p local7.info "This is a local 7 test"
에서 rsyslog.conf
나는 파일의 마지막에 다음을 추가 :
local7.* /var/log/anm.log
또한 스크립트에는 /var/log/anm.log
파일에 대한 권한이 있습니다
* 업데이트 *
그래서 로깅 서비스를 다시 시작하는 것을 잊었습니다. 재부팅을 시도했지만 " service rsyslog restart
"여전히 변경 사항이 없습니다. 테스트 텍스트 /var/log/anm.log
는 나타나지 않지만에 나타납니다./var/log/syslog
* 업데이트 *
어떤 권한이 /var/log/"yourlogfilehere"
필요합니까? Owner
, Group
, rwx
?
grp와 own을 root와 logger 명령을 실행하는 사용자 이름으로 설정하려고했습니다. 어느 쪽도 변경되지 않습니다.
또한의 사용자 정의 디렉토리에 로그 파일을 작성하려고 시도했습니다 /var/log
. 즉 /var/log/anm/anm.log
, 디렉토리에 대한 두 가지 유형의 권한을 설정합니다.
* 업데이트 *
rsyslogd가 실행 중입니다
syslog 598 0.0 0.1 31060 1292 ? Sl 03:02 0:02 rsyslogd -c5
여기 내 /etc/rsyslog.conf
파일 의 출력이 있습니다.
# /etc/rsyslog.conf Configuration file for rsyslog.
#
# For more information see
# /usr/share/doc/rsyslog-doc/html/rsyslog_conf.html
#
# Default logging rules can be found in /etc/rsyslog.d/50-default.conf
#################
#### MODULES ####
#################
$ModLoad imuxsock # provides support for local system logging
$ModLoad imklog # provides kernel logging support (previously done by rklogd)
#$ModLoad immark # provides --MARK-- message capability
# provides UDP syslog reception
#$ModLoad imudp
#$UDPServerRun 514
# provides TCP syslog reception
#$ModLoad imtcp
#$InputTCPServerRun 514
###########################
#### GLOBAL DIRECTIVES ####
###########################
#
# Use traditional timestamp format.
# To enable high precision timestamps, comment out the following line.
#
$ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat
# Filter duplicated messages
$RepeatedMsgReduction on
#
# Set the default permissions for all log files.
#
$FileOwner syslog
$FileGroup adm
$FileCreateMode 0640
$DirCreateMode 0755
$Umask 0022
$PrivDropToUser syslog
$PrivDropToGroup syslog
#
# Where to place spool files
#
$WorkDirectory /var/spool/rsyslog
#
# Include all config files in /etc/rsyslog.d/
#
$IncludeConfig /etc/rsyslog.d/*.conf
local7.* /var/log/anm.log
나는 또한 그것을 넣어 보았습니다 /etc/rsyslog.d/50-default.conf
(우분투 12.04 LTS를 실행 중입니다)
# Default rules for rsyslog.
#
# For more information see rsyslog.conf(5) and /etc/rsyslog.conf
#
# First some standard log files. Log by facility.
#
auth,authpriv.* /var/log/auth.log
*.*;auth,authpriv.none -/var/log/syslog
#cron.* /var/log/cron.log
#daemon.* -/var/log/daemon.log
kern.* -/var/log/kern.log
#lpr.* -/var/log/lpr.log
mail.* -/var/log/mail.log
#user.* -/var/log/user.log
local7.* /var/log/anm.log
* 업데이트 *
글쎄, 나는 마침내 그것을 알아 냈습니다. 누군가 나에게 이것을 대답하기를 바랍니다. 무엇이 잘못되었는지 파악하기 위해 며칠이 걸렸지 만 수퍼 유저 사용자가 많지 않은 것 같습니다.
문제는 원래 이론화 한대로 사용자 지정 로그 파일의 파일 권한에 관한 것입니다. 나는 올바른 권한을 가지고 있다고 생각했지만 소유자 syslog
는 그룹 이어야 합니다 adm
. 나는 user.log
파일 과 비교하여 이것을 결정했다 . 권한이 수정되고 다시 테스트되면 모든 것이 완벽하게 작동합니다! 나는 이것이 내가 대답을 찾을 수 있었던 것보다 더 빨리 다른 누군가를 돕기를 바랍니다.