sendmsg
사용법
sendmsg -V
sendmsg -s server -m "message" [-p port][-A tagmsg | -a tagmsg]
sendmsg -s server -f file [-E][-p port][-l n][-A tagmsg | -a tagmsg]
sendmsg -s server [-E][-p port][-l n][-A tagmsg | -a tagmsg]
Options are as follows:
-? print this help
-A tagmsg append tagmsg at the first line of messages
-a tagmsg append tagmsg at the first line of messages without NEWLINE
-E send '((Empty Line))' if file has no data
-f file message file
-l n limit the number of lines of message; def:100, max:100
-m message message to be sent
-p port TCP port number; def: 9812
-s server server name which runs logviewer
-t seconds set connection timeout; def: 10 seconds
-T seconds set read timeout when receiving response; def: 10 seconds
-V show version
The standard input is used if both -f and -m options are omitted
설명
sendmsg 명령어는 TCP port 9812 에 socket connection를 맺고 logviewer
프로세스에게 메세지를 전달한다.
전달되는 메세지의 최대 크기는 16 KB이고, 최대 라인 수는 100 라인 이다. 최대 크기를 넘는 부분은
전송되지 않는다.
다음은 sendmsg 명령어를 사용하여 logviewer
에게 간단한 메세지를 보내는 예제이다.
# /opt/JSparm/bin/sendmsg -s mypc -m 'Test message'
|
이렇게 명령어를 실행하면 다음과 같이 logviewer 화면에 메세지가 나온다.
-f 옵션을 지정하면 지정한 파일에서 최대 100 라인까지의 데이타를 읽어서
logviewer 에게 보낸다. 데이타를 보낼 때, TCP socket connection을
맺고 메세지를 보낸 후에 socket를 close한다.
sendmsg 명령어가 메세지를 보낼때, 시스템의 호스트명과 데이타를 읽은 시간을
함께 보내준다.
다음의 명령어는 /var/adm/messages 파일에서 WARNING 메세지가 있는 것을 찾아서 mypc 라는
시스템에 있는 logviewer 프로그램에 전달하는 예제이다.
# grep WARNING /var/adm/messages | /opt/JSparm/bin/sendmsg -s mypc
|
jlogmon 명령어와 sendmsg 명령어와 결합하여 사용하면, 시스템의
로그 파일을 모니터하고 있다가 오류 메세지가 발생하면 logviewer
프로그램에게 그 내용을 보낼 수 있다.
자세한 것은 jlogmon 메뉴얼을 참조하십시오.
다음은 간단하게 jlogmon과 결합한 예제이다.
# jlogmon -a '|sendmsg -s mypc' -p '-root' -i 60 /var/adm/sulog
|
위의 명령어는 60초 간격으로 /var/adm/sulog 파일을 조사하여 -root 라는 문자열이
포함된 메세지가 새로 저장되면 'sendmsg -s mypc' 명령어를 실행하고 그 메세지를
sendmsg 명령어의 표준입력으로 보내준다.
위의 명령어가 하는 기능은 일반 사용자가 su 명령어를 사용하여 root 사용자로
전환했을 경우에 그 메세지를 logviewer 에게 보낸다.
su 명령어를 실행하면 /var/adm/sulog 파일에 전환된 내용이 저장된다.
root 사용자로 전환했을 경우 다음과 같은 메세지가 기록된다.
SU 07/11 04:31 + pts/4 guest-root
시스템에서 어떤 명령어를 실행하고, 그 명령어가 끝나면, logviewer
에게 메세지를 보내려면 다음과 같이 할 수 있다.
# do_job1.sh | /opt/JSparm/bin/sendmsg -s mypc -m 'Job1 done'
|
작업을 실행하는 명령어의 출력을 받기 위해 | 파이프를 사용한다.
sendmsg 명령어에 -f 나 -m 옵션을 사용하지 않으면 표준입력으로
부터 데이타를 읽는다. 최대 100 라인까지의 데이타를 읽고 나머지는
읽어서 그냥 버린다. 파이프 앞단의 프로세스가 완전히 종료되면, 그때 메세지를
logviewer 로 보낸다. 메세지의 크기가 0이면
메세지를 전달하지 않고 정상 종료한다.
위의 명령어를 다음과 같이 사용해도 동일한 작용을 한다.
# do_job1.sh > /tmp/job1.log; /opt/JSparm/bin/sendmsg -s mypc -A 'Job1 done' -f /tmp/job1.log
|
다음은 sendmsg 명령어의 옵션에 대한 설명이다.
옵션 | 설명 |
-A tagmsg |
-A tagmsg 옵션에 지정한 태그 메세지를 첫번째 라인으로 사용하고,
두번째 라인부터 실제 메세지 데이타를 보낸다.
# do_job1.sh | sendmsg -s mypc -A 'Result of Job1'
|
| -a tagmsg |
-a tagmsg 옵션에 지정한 태그 메세지를 실제 메세지의 첫라인 앞에 덧붙여
데이타를 보낸다.
첫번째 줄은 다음과 같이 변경된다.
tagmsg:> line 1 of real messages
|
-E |
-E -f 옵션을 지정하여 파일을 읽거나, -f 옵션과 -m 옵션 둘다 지정하지 않아서 표준입력에서
데이타 라인을 읽을 때, 입력되는 라인이 없으면, sendmsg 명령어는 아무런 데이타를 보내지 않는다.
이런 경우에 -E 옵션을 지정하면, '((Empty Line))' 이라는 데이타를 보낸다.
|
-f file |
-f file 옵션은 logviewer 에게 전달할
데이타 파일을 지정한다.
파일의 내용을 전부 보내는 것이 아니고, 처음부터 최대 100 라인의 데이타만 보낸다.
라인 수가 100 라인보다 적더라도 데이타의 크기가 16K 이상되는 것은 보내지 않는다.
|
-l n |
파일이나 표준입력에서 데이타를 읽을 때, 첫 라인부터 n 라인까지 읽어서
logviewer 에게 전달한다.
최대값은 100이다. n 이 100보다 크면, 100으로 지정된다.
|
-m message |
-m 옵션은 명령어 상에서 지정한 메세지를 logviewer 에게 전달한다.
# sendmsg -s mypc -m 'Hi this is a test message'
|
|
-p port |
-p 옵션은 TCP 포트 번호를 지정한다. logviewer 프로그램이
디폴트 포트번호(9812)가 아닌 다른 포트에서 실행되고 있을 때 사용된다.
|
-s server |
logviewer 명령어를 실행하고 있는 시스템명을 지정한다. IP를 지정하여도 된다.
|
-t second |
TCP socket connection을 맺을 때, 지정한 시간이 지나도 connection을 맺지 못하면,
connection을 포기하고 프로세스를 종료한다.
-t 옵션으로 이 시간을 조정할 수 있다. 디폴트는 10초 이다.
|
-T second |
sendmsg 는 데이타를 전송한 후 데이타를 잘 받았는지에 대한 응답을 기다린다.
지정한 시간이 지나도 응답이 오지 않으면 더 이상 기다리지 않고 프로세스를 종료한다.
-T 옵션으로 이 시간을 조정할 수 있다. 디폴트는 10초 이다.
|
-V |
-V 옵션을 지정하면, 명령어의 버전 정보를 보여준다.
|
|