나무 벽이 있나요?

나무 벽이 있나요?

밤낮으로 작동하는 도구는 때때로 중요한 정보를 벽에 게시합니다. 잠자는 동안 이 출력을 파일로 리디렉션할 수 있는 방법이 있나요? 또는 담벼락에 게시된 메시지 로그를 보관합니까, 아니면 이를 활성화할 수 있는 방법이 있습니까?

답변1

wall시스템 로그에 기록하는 몇 가지 구현이 있습니다 .http://salsa.debian.org/debian/sysvinit/blob/master/src/wall.c. 존재하다 맨페이지그것은 말한다:

Wall에 대한 각 호출에 대해 LOG_USER 기능 및 BR LOG_INFO 레벨을 사용하여 syslog에 알림이 기록됩니다.

애플리케이션의 동작을 제어할 수 없거나 logger 대신 쓰기를 사용하도록 지시할 수 없는 경우 일반 명령을 실행하고 write 를 사용하는 래퍼를 wall만들 수 있습니다 . 새 디렉터리에 이 래퍼를 생성하고 새 디렉터리에 추가한 후 새 설정 으로 프로그램을 다시 시작할 수 있습니다 . 특히 프로그램을 다시 시작할 수도 없는 경우 절차에 대한 충분한 권한 범위가 있는 경우 모든 사람을 위해 시스템을 교체할 수 있습니다 . 이 예에서는 후자를 수행하는 방법을 보여 드리겠습니다. 먼저 기존 프로그램의 이름을 다음으로 바꿉니다 .wallwallloggersyslog$PATHwall$PATHwallwallwall.orig

$ command -v wall
/usr/bin/wall
$ sudo mv /usr/bin/wall /usr/bin/wall.orig

/usr/bin/wall래퍼 스크립트는 다음과 같습니다.

#!/usr/bin/env sh

# wall wrapper - run wall commands with specified arguments and write
# a notification to syslog

wall.orig "$@"
logger "wall was ran with the following options: $*, result: $?"

실행 가능하게 만드는 것을 잊지 마세요:

sudo chmod +x /usr/bin/wall

일반처럼 사용하십시오 wall.

$ wall "test message"

Broadcast message from ja@comp (pts/14) (Sat Sep 14 22:34:43 2019):

test message

작업이 있고 실행 중인 경우 logger메시지가 라우팅되는 syslogd파일 중 하나에 다음 메시지 로그가 표시 되어야 합니다./var/logsyslogd

Sep 14 22:34:43 comp ja: wall was ran with the following options: test message, result: 0

물론 내장된 업그레이드 메커니즘을 사용하여 시스템을 업그레이드할 때마다 원본 /usr/bin/wall바이너리가 다시 복원될 수 있다는 점을 명심하세요.

답변2

월을 사용하여 로그인한 모든 사용자에게 기록되는 로깅 수준이 있습니다.

logger -p emerg 'The sky is falling in'

로거는 메시지를 작성합니다 /var/log. 긴급한 우선순위 메시지의 경우 를 사용하여 사용자에게 보냅니다 wall.

관련 정보