본문 바로가기
개발/linux

bash 기초 - 리눅스 로그 파일 및 시스템 정보

by 가시죠 2021. 1. 18.
반응형

보통의 리눅스 로그는 /var/log/ 폴더에 저장된다.

$ tar -Pczf ${HOSTNAME}_log.tar.gz /var/log/

옵션설명

  • -P : 절대경로사용에 대해 경고 메시지를 무시 (tar 압축시 절대경로가 존재하면 경고메시지가 나온다.)
  • -c : 아카이브 파일을 생성하라는 의미
  • -z : 압축을 하라는 의미
  • -f : 출력파일이름을 지정
  • ${HOSTNAME} : 컴퓨터이름

리눅스 주요 로그 파일과 위치 (/etc/syslog.conf 또는 /etc/rsyslog.conf 파일에 명시되어 있다.)

위치 설명
/var/log/apache2/ 아파치 웹서버의 접근 및 오류 기록
/var/log/auth.log 사용자 로그인, 접근권한, 원격 인증에 관한 정보
/var/log/kern.log 커널 로그
/var/log/messages 일반적인 비치명적 시스템 정보
/var/log/syslog 일반적인 시스템로그

 

시스템 정보

명령 정보
uname -a 운영체제 버전 정보
cat /proc/cpuinfo 시스템 하드웨어 및 관련 정보
ifconfig 네트워크 인터페이스 정보
route 라우팅 테이블
arp -a ARP(Address Resolution Protocal) 테이블
netstat -a 네트워크 연결 정보
mount 파일 시스템 구성
ps -e
ps -ef
실행중인 프로세스들

 

위 내용을 토대로 시스템 정보를 출력하는 쉘 스크립트 샘플

function SepCmds()
{
  LCMD=${ALINE%%|*}
  REST=${ALINE#*|}
  WCMD=${REST%%|*}
  REST=${REST#*|}
  TAG=${REST%%|*}
  
  if [[ $OSTYPE == "MSWin" ]]
    then
      CMD="$WCMD"
    else
      CMD="$LCMD"
    fi
}

function DumpInfo()
{
  printf '<systeminfo host="%s" type="%s"' "$HOSTNAME" "$OSTYPE"
  printf 'date="%s" time="%s">\n' "$(date ''+%F)" "$(date '+%T')"
  readarray CMDS
  for ALINE in "${CMDS[@]}"
  do
    if [[ {$ALINE:0:1} == '#' ]] ; then continue ; fi
      SepCmds
      if [[ ${CMD:0:3} == N/A ]]
      then
        continue
      else
        printf "<%s>\n" $TAG
        $CMD
        printf "</$s>\n" $TAG
      fi
    done
    printf "</systeminfo>\n"
}

OSTYPE=$(./osdetect.sh)
HOSTNM=${HOSTNAME}
TMPFILE="${HOSTNM}.info"

Dumpinfo > $TMPFILE 2>&1

osdetect.sh

if type -t wevtutil &> /dev/null
then
    OS=MSWin
elif type - ts scutil &> /dev/null
then
    OS=MacOS
else
    OS=Linux
fi
echo $OS
반응형

'개발 > linux' 카테고리의 다른 글

bash기초 - awk  (0) 2021.01.18
bash 기초 - 파일 찾기 find  (0) 2021.01.18
bash 기초 - ssh를 이용한 원격 명령 실행  (0) 2021.01.18
무료 접속 유닉스(리눅스) 시스템  (0) 2021.01.18
bash기초 - cut, file, head  (0) 2021.01.18

댓글