2012.03.09 03:33
리눅스 서버에서 일반적으로 history 라는 명령어를 통해서 로그인한 사용자가
작업했던 커맨드를 확인할 수 있습니다.
1. SHELL 마다 각기 다른 HISTFILE이 지정되는데,
Redhat Linux 계열에서 Default SHELL은 BASH이며 HISTFILE은 아래와 같습니다.
~/.bash_history
로그인한 순간부터의 입력한 커맨드는 버퍼에 기록되며,
로그아웃시 버퍼에 기록된 history는 ~/.bash_history 파일에 추가 기록이 됩니다.
2. history 라는 명령어를 입력하면 ~/.bash_history 와 buffered/cache history 가
아래와 같이 화면에 나열됩니다.
[root@rootnya root]# history
204 dmesg
205 clear
206 df -TH
207 ls -alR /var/tmp
208 ls -alR /tmp
209 cd /var/tmp
210 clear
211 ls -la
212 rm -f rpm-tmp.64248
213 clear
214 ls -la
215 clear
216 ls -al
217 history
[root@rootnya root]#
출력된 결과를 살펴보면 Column 1 은 ~/.bash_history 와 buffered/cache history 에
저장된 커맨드의 히스토리 순번이며 Column 2 은 입력하였던 명령어들이다.
그러나, 정작 언제(명령어를 입력한 시각)라는 항목은 보이지 않고 있습니다.
3. bash 에서는 다양한 HIST 변수를 지정할 수 있습니다.
man bash 후 /HISTTIMEFORMAT 이라는 변수를 조회해보면,
우리가 알고 싶은 명령어를 입력한 시간을 hostory 에 남길 수 있는 방법을 제시하고 있습니다.
HISTTIMEFORMAT
If this variable is set and not null, its value is used as a format string for strftime(3)
to print the time stamp associated with each history entry displayed by the history builtin.
If this variable is set, time stamps are written to the history file so they may be preserved
across shell sessions. HOME The home directory of the current user; the default
argument for the cd builtin command.
The value of this variable is also used when performing tilde expansion.
4. HIST 변수의 적용은 /etc/profile 파일에 아래와 같은 라인을 추가합니다.
# Add timestamp to .bash_history
HISTTIMEFORMAT="%Y-%m-%d_%H:%M:%S "
export HISTTIMEFORMAT
위와 같이 /etc/profile 파일에 추가 후 source /etc/profile 또는 ssh 로 재로그인 후 부터는
history 명령어 입력시 Column 2 에 연/월/일/시/분/초 의 시간 정보를 확인할 수 있습니다.
[root@rootnya root]# history
959 2007-06-23_02:08:59 vi /home/com/www/bbs/skin/member_list/list_main.php
960 2007-06-23_02:10:00 ps aux
961 2007-06-23_02:10:01 ps ax
962 2007-06-23_05:24:47 vi /etc/procmailrc
963 2007-06-23_05:25:07 /etc/init.d/qmail reload
964 2007-06-23_05:25:08 ps aux
965 2007-06-23_05:25:11 /etc/init.d/qmail restart
966 2007-06-23_05:25:12 ps aux
967 2007-06-23_05:25:20 tail -f /var/log/qmail/procmail
968 2007-06-23_05:25:31 vi /etc/procmailrc
969 2007-06-23_05:25:39 /etc/init.d/qmail restart
970 2007-06-23_05:25:47 vi /var/log/qmail/procmail
971 2007-06-23_05:26:38 vi /etc/procmailrc
972 2007-06-23_05:26:49 /etc/init.d/qmail restart
[root@rootnya root]# history
단, bash-3.0-alpha 이상의 bash 부터 HISTTIMEFORMAT 변수를 지원합니다.
이전 버전의 bash 는 위 이상의 버전으로 업데이트 후 부터 지원이 됩니다.
번호 | 제목 | 글쓴이 | 날짜 | 조회 수 |
---|---|---|---|---|
386 | cdp 백업 프로세스 관련 | 호스트웨이 | 2015.09.07 | 1007 |
385 | Linux vmstat 명령어 | 호스트웨이 | 2015.09.08 | 1094 |
384 | 현재 접속 사용자(머신/디바이스)수 알아내기 | 호스트웨이 | 2012.11.16 | 1130 |
383 | 잘못푼 압축파일(tar.gz) 지우는 방법 | 호스트웨이 | 2012.12.07 | 1272 |
382 | sftp 서비스 막기 | 호스트웨이 | 2012.12.27 | 1320 |
381 | 우분투 서버에 JDK7 설치하기 | 호스트웨이 | 2015.09.13 | 1360 |
380 | Linux 외장 저장장치 mount | 호스트웨이 | 2015.09.10 | 1397 |
379 | 2015년 7월1일 윤초 발생 관련 점검 방안 | 호스트웨이 | 2015.06.30 | 1558 |
378 | 리눅스 whereis 명령어 | 호스트웨이 | 2012.09.28 | 1634 |
377 | Log file 주기적으로 정리하기 | 호스트웨이 | 2015.09.08 | 1644 |
376 | 특정 파일이 소속된 rpm 패키지 찾기 | 호스트웨이 | 2012.12.14 | 1781 |
375 | arch 명령어를 통해 컴퓨터 종류 알기 | 호스트웨이 | 2012.11.16 | 1797 |
374 | 리눅스 free 명령어 | 호스트웨이 | 2012.12.26 | 1819 |
373 | locate 명령어를 이용해 빠르게 지정한 파일 찾기 | 호스트웨이 | 2012.12.12 | 1859 |
372 | queryperf 설치 및 사용 방법 (DNS 스트레스 테스트) | 호스트웨이 | 2012.11.29 | 1869 |
371 | kbd_mode 명령어를 통해 인식중인 키보드모드 출력 및 변경하기 | 호스트웨이 | 2012.11.06 | 1896 |
370 | /proc 디렉터리내 파일 정보 알아보기 | 호스트웨이 | 2012.11.21 | 1917 |
369 | top 사용 추가 tip | 호스트웨이 | 2015.09.15 | 2016 |
368 | limits.conf 설명 | 호스트웨이 | 2012.11.09 | 2132 |
367 | free -m 에서 free (남는 메모리 양) 최소량 제한하기 | 호스트웨이 | 2012.12.21 | 2147 |