dolog
사용법
dolog -V
dolog [-L] {[-t] | [-p|-P] [-y]} [{-a | -n}] [{-o outfile [-h] | -O outfile} [-B]]
dolog [-L] {[-t] | [-p|-P] [-y]} [{-a | -n}] {-o outfile [-h] | -O outfile} [-B] ] command
dolog [-L] {[-t] | [-p|-P] [-y]} [{-a | -n}] {-o outfile [-h] | -O outfile} [-B] ] -T interval[,conut] command
dolog [-L] {[-t] | [-p|-P] [-y]} [{-a | -n}] {-o outfile [-h] | -O outfile} [-B] ] -k sec [-i signum] command
dolog [-L] {[-t] | [-p|-P] [-y]} [{-a | -n}] {-o outfile [-h] | -O outfile} [-B] ] -r n command
Options are as follows:
-? print this help
-a append command output to outfile
-B run in the background as a daemon
-h create file name according to hour
-i signum specify signal number; default:15 (SIGTERM)
-k sec kill the process after sec seconds
-L check LANG environment variable. def: LANG=C
-n make a new file with sequence number each time
-O outfile output file name: time info is not added to outfile
-o outfile output file name: outfile.yymmdd[.HHMMSS[.interval]]
if -a option is used, outfile.yymmdd
if -a and -h option is used, outfile.yymmdd.hh
if -T option is used, outfile.yymmdd.HHMMSS.interval
otherwise, outfile.yymmdd.HHMMSS
-p prefix time
-P prefix date and time
-r n run command n times
-T interval[,count] specify interval and count
interval time interval (seconds)
count times to get the info, default: forever
-t don't add date/time info to output file
-y put time information at each line
-V show version
EX) # dolog -o net -T 10,60 netstat -i
output file name: net.021101.183000.10
설명
시스템의 상태를 모니터하기 위하여 특정 명령어들을 사용하여 데이타를 수집하고,
그것을 분석한다. 이때 명령어들을 일정 시간 간격으로 실행하거나,
실행한 시간과 파일명을 일관성 있게 저장할 필요가 있다.
dolog 명령어는 이러한 것을 쉽게 할 수 있도록 도와 준다.
dolog 명령어는 지정한 명령어를 일정 시간 간격으로 지정한 횟수 만큼 실행하여
그 결과(표준출력과 표준오류)를 파일에 저장한다. 저장할 파일명은 -o 옵션으로 지정하는데,
실제 만들어지는 파일명에는 지정한 이름에 yymmdd[.HHMMSS[.interval]] 형식의 날짜와 시간
, 시간 간격이 추가된다.
-o 옵션으로 파일명을 지정하지 않으면, 표준출력(standard output)으로 명령어의 결과가 출력된다.
-T 옵션을 지정하지 않으면 한번만 실행한다.
다음은 "df -k" 명령어를 60초 간격으로 100번 실행하는 예제이다.
# dolog -o df -T 60,100 df -k
# ls
df.021124.182517.60
|
생성되는 파일명은 df.021124.182517.60 다음과 같다.
getdata 명령어로 데이타를 수집하지 않고,
간단히 vmstat 명령어를 실행하여 그 결과를 그래프로 그리고 싶을 경우 다음과
같이 할 수 있다.
# dolog -o vmstat.30 vmstat 30 60
# ls
vmstat.30.021205.164122
# gvmstat -t 164122 -i 30 vmstat.30.021205.164122
|
위와 같이 -o 옵션에 vmstat.30 를 지정하면 vmstat 명령어를 30 초 간격으로
실행했다는 것을 알 수 있을 것이고 실행한 날짜와 시간은 그 파일명에 추가된다.
다음과 같이 아무런 옵션 없이 실행하면, 명령어를 실행한 시간을 화면에
출력하는 효과가 있다.
# dolog swap -l
# DATE 2003/01/04 14:29:32
swapfile dev swaplo blocks free
/dev/dsk/c0t2d0s1 32,17 16 524384 490496
|
다음은 dolog 명령어에 -a 옵션을 사용하여 "df -k /" 명령어를
세번 실행한 명령어의 결과이다.
# dolog -a -o df df -k /
# sleep 2
# dolog -a -o df df -k /
# sleep 2
# dolog -a -o df df -k /
# ls
df.181124
# cat df.181124
# DATE 2002/11/04 14:45:48
Filesystem kbytes used avail capacity Mounted on
/dev/dsk/c0t2d0s0 1758462 1621623 84086 96% /
# DATE 2002/11/04 14:45:50
Filesystem kbytes used avail capacity Mounted on
/dev/dsk/c0t2d0s0 1758462 1621623 84086 96% /
# DATE 2002/11/04 14:45:52
Filesystem kbytes used avail capacity Mounted on
/dev/dsk/c0t2d0s0 1758462 1621623 84086 96% /
|
출력될 파일명에 오늘 날짜가 추가된다. 만일 여러 번 실행하는 도중에
날짜가 바뀌면 새로운 날짜가 추가된 파일명을 새로 만든다.
만일 1 시간마다 "df -k" 명령어는 실행하여 그 결과를 날짜 별로 저장하고
싶다면 다음과 같이 cron 테이블에 등록할 수 있다.
0 * * * * /opt/JSparm/bin/dolog -a -o /data/df-daily.log df -k
|
dolog 명령어에 실행할 명령어를 지정하지 않으면 표준입력을 읽어서 저장한다.
# ls -l | dolog -o ls-l.log
# ls -l ls-l.log*
-rw-r--r-- 1 guest other 1395 Jan 17 20:20 ls-l.log.120117.202007
|
다음은 dolog 명령어의 옵션에 대한 설명이다.
옵션 | 설명 |
-a |
-a 옵션은 실행한 명령어의 결과를 파일에 추가한다.
-o 옵션에 지정된 이름에 yymmdd 형식으로 날짜 정보가 파일명에 추가된다.
즉, -a 옵션을 사용하면 매 시간 간격마다 시스템 날짜를 조사하여
날짜에 맞는 파일명에 출력을 저장한다.
-h 옵션을 함께 사용하면, yymmdd.HH 형식으로 날짜 정보가 파일명에 추가된다.
매 시간 간격마다 시스템 날짜를 조사하여 해당되는 날짜와 시간(hour)에 맞는 파일명에 데이타를
추가한다.
|
-B |
-B 옵션을 지정하면 백그라운드에서 데몬 프로세스로 실행한다.
사용자가 명령어를 실행한 터미날에서 빠져 나와도 프로세스는 종료되지 않고 계속 실행된다.
|
-h |
-a 옵션 참조
|
-i signum |
-k 옵션을 지정하면, 지정된 시간이 지나면 프로세스에게 SIGTERM(signal number 15) 시그널을
보내서 종료시킨다. signal 15번이 아닌 다른 시그널을 보내고 싶을 경우에 -i 옵션을 시그널 번호를
지정할 수 있다.
-i 옵션을 지정하면, 프로세스가 종료되지 않아도 추가적인 SIGKILL 시그널을 보내지 않는다.
|
-k |
-k sec 옵션은 지정한 명령어를 실행한 뒤 sec 초 지난 후에 그 프로세스를 종료시킨다.
처음에는 그 프로세스에게 SIGTERM 시그널을 보내고, 그 프로세스가 종료되지 않으면
SIGKILL 시그널을 3초 후에 한번 더 보낸다.
-i 옵션을 지정한 경우 추가적인 SIGKILL 시그널을 보내지 않는다.
|
-L |
-L 옵션은 LANG 환경변수를 조사하여 사용한다. 이 옵션이
지정되지 않으면, LANG=C 로 프로그램 내부에서 설정한다.
|
-n |
-n 옵션을 지정하면 매번 명령어를 실행할 때마다 실행하는 횟수를 출력파일명에 추가한다.
다음은 생성되는 파일명을 보여주는 예제이다.
# dolog -n -r 3 -o vm.log vmstat 1 10
# ls
vm.log.050206.002229.001
vm.log.050206.002238.002
vm.log.050206.002247.003
|
|
-o |
-o 옵션은 명령어의 출력을 저장할 파일명을 지정한다. 실제 만들어지는 파일명에는 지정한
이름에 yymmdd[.HHMMSS[.interval] 형식의 이름이 추가된다.
-a 옵션이 지정되면 yymmdd 형식의 이름이 추가되고,
-a 옵션과 -h 옵션이 동시에 지정되면 yymmdd.HH 형식의 이름이 추가되고,
-T 옵션으로 지정되면 yymmdd.HHMMSS.interval 형식의 이름이 추가되고,
그렇지 않으면 yymmdd.HHMMSS 형식의 이름이 추가된다.
-o 옵션이 지정되지 않으면 표준출력으로 출력한다.
|
-O |
-O 옵션으로 출력 파일명을 지정하면, 파일명 그대로 만든다. 파일명에
시간정보를 포함시키지 않는다.
|
-p |
-p 옵션을 사용하면 시간정보를 출력물의 첫번째 라인 앞에 붙인다.
|
-P |
-P 옵션을 사용하면 날짜와 시간정보를 출력물의 첫번째 라인 앞에 붙인다.
|
-r n |
-r n 옵션은 지정한 명령어를 n 번 실행한다.
|
-T interval,count |
interval은 데이타를 수집할 시간 간격(단위: 초)을 지정하고,
count는 데이타를 수집할 횟수를 지정한다.
count가 지정되지 않으면 무한히 반복한다.
count 숫자 뒤에 h 또는 m 문자가 올 수 있는데,
h가 오면 count의 값이 데이타를 수집할 시간(hour)으로 간주하고, m이 오면
분(minute)으로 간주한다.
다음의 세가지는 모두 같은 횟수 만큼 데이타를 수집한다.
-T 10,1h -T 10,60m -T 10,360
-T 옵션을 지정하지 않으면, 한번만 실행한다.
데이타를 수집할 때, 지정한 시간 간격으로 명령어를 실행하여 데이타를 수집한다.
그런데 지정한 시간 간격이 지나도 앞에 실행했던 명령어가 종료되지 않았으면,
그 시간대의 데이타는 수집하지 않고 다음 데이타 수집 시간에 데이타를 수집한다.
|
-t |
-t 옵션을 지정하지 않으면, 매번 데이타를 수집할 때마다 다음과 같은 형식의
라인을 출력파일에 넣는다.
# DATE yyyy/mm/dd HH:MM:SS
예) # DATE 2002/11/26 18:03:51
-t 옵션을 지정하면, 위의 내용을 출력파일에 넣지 않는다.
|
-y |
-y 옵션을 사용하면 출력물의 각 라인 앞에 시간정보를 출력한다.
<-P> 옵션을 같이 사용하면 날짜와 시간정보를 각 라인 앞에 출력한다.
# dolog -y vmstat 1
00:17:55 procs memory page disk faults cpu
00:17:55 r b w swap free re mf pi po fr de sr dd dd f0 s1 in sy cs us sy id
00:17:55 0 0 0 745448 198680 0 50 7 0 0 0 0 1 1 0 0 324 627 138 3 1 95
00:17:56 0 0 0 739240 186336 0 3 0 0 0 0 0 0 0 0 0 304 255 94 1 0 99
00:17:57 0 0 0 739240 186336 0 0 0 0 0 0 0 0 0 0 0 311 244 93 0 0 100
00:17:58 0 0 0 739240 186336 0 0 0 0 0 0 0 0 0 0 0 410 349 123 1 1 98
00:17:59 0 0 0 739240 186336 0 0 0 0 0 0 0 0 0 0 0 414 364 124 0 0 100
|
|
-V |
-V 옵션을 지정하면, 명령어의 버전 정보를 보여준다.
|
|