리눅스(Linux) #10 - 로그관리, 자동화[LEE'Today]

ieed0205·2020년 4월 13일
0

Linux

목록 보기
10/10
post-thumbnail

오늘 하루엔 뭐했니?

그냥 적어봐! LEE렇게!


2020.04.12 LEE'Today_회고록

목차

1. 운영체제와 리눅스의 기초
2. 리눅스 설치
3. 리눅스 둘러보기
4. 터미널에서 리눅스 사용하기
5. 파일과 프로세스
6. 리눅스용 문서편집기
7. 리눅스 각종 서버 프로그램 이해
8. 리눅스 별도 프로그램 설치
9. 다중 터미널 환경 사용하기
**10. 로그관리와 반복작업 자동화**

10. 로그관리와 반복작업 자동화

드디어 마지막 10차시에 도달했습니다.
총 10일간의 한번의 오차도 없이 꾸준히 작성함에 뿌듯함을 느꼈습니다.
꼭 누군가가 보지않더라도 몇 개월 뒤 Linux에 대한 업무를 하게되는 제 자신에게 뿌듯함을 느낄 수 있을 것이라 장담합니다!

이제 마지막 차시에는 로그관리와 반복작업의 자동화에 관련되어 cron, crontab에 관하여 작성해보도록 하겠습니다.
이번 10차시에서는 요약정리가 없습니다.

10-1. 로그(log)란?

컴퓨터 운영체제 및 각종 프로그램이 수행하는 내역에 대한 이력을 기록해 놓는 것을 로그라고 합니다.

Ex)

# tail -f /var/log/messages

10-2. 로그의 활용?

  • 컴퓨터 시스템의 모든 사용 내역 확인
  • 프로그램 오류에 대한 정보 확인
  • 해킹 사고 발생 시 사고의 원인파악, 해커 추적

10-3. 주요 리눅스의 로그들

  • 시스템로그

    • /var/log/messages
      • 관련프로그램 : syslogd
      • 리눅스커널과 관련된 시스템에 전반적인 기록
  • 콘솔로그

    • /dev/console
      • 시스템관련 중요 내역을 관리자에게 직접 출력
  • 보안로그

    • /var/log/secure
      • 관련프로그램 : inetd
      • 인터넷서비스(FTP)의 슈퍼데몬으로 TCP/IP 통신 관련 기록
  • 메일로그

    • /var/log/maillog
      • 관련프로그램 : sendmail, postfix
      • 메일 전송이력 기록
      • 리눅스와 긴밀하게 연결되어있다.
  • 부팅로그

    • /var/log/boot.log
      • 시스템 부팅 시 관련 내용을 기록
  • 크론로그

    • /var/log/cron
      • 관련프로그램 : crond
      • 정해진 시간에 반복 업무를 수행하는 crod 프로그램의 로그 기록

10-4. 로그 파일 보기

$ cd /var/log/

$ less messages ( 전체 내용 열람, Ctrl+f(앞), Ctrl+b(이전), q(종료))
$ head messages ( 앞부분 10줄 출력 )
$ head messages -n 20 ( 앞부분 20줄 출력 )
$ tail messages ( 뒷부분 10줄 출력 )
$ cat mssages | grep "Feb 18" ( 2월 18일 내용만 출력, 특정부분 출력 )
$ tail -f message ( 실시간 로그 출력, Ctrl+c(나가기) )

10-5. Cron

작업 스케줄러 프로그램

  • 서버에 동작 중인 프로그램의 주기적인 백업, 로그, 반복 작업에서 실행
  • 주기적은 아니더라도 새벽시간이나, 접속이 어려운 시간대에 작업해야하는 경우
  • Cron은 데몬 프로그램 부팅과 동시에 실행되며, 대부분 리눅스에 탑재

    데몬 프로그램
    특정한 서비스를 위해 백그라운드에서 계속 실행되는 프로세스.
    : 일반적으로 쉘이 종료될 때 같이 종료되나, 강제 종료를 시키지 않는 이상 계속 상주함

10-6. Crontab

$ crontab -h ( 도움말 )

$ crontab -l ( 현재 등록된 스케줄링 목록 조회 )
$ crontab -e ( cron에 실행된 명령어 등록(vim이 실행) )
ex) 10 11 27 10 * "test_log" > /home/log.txt
: 10월 27일 11시 10분에 "test_log"라는 글자를 log.txt에 작성

1) crontab 문법

*       *      *      *      *      ls -al
분      시      일     월     요일    매분 명령 수행
(0~59) (0~23) (1~31) (1~12) (0~7)

2) 특수한 기한 설정

* : 매번(모든)
*/5 : 매 5분마다
12,23 : 12,23 사이에만 동작(분과 시간에 해당)
12-15 : 12~15분 동안만 동작

3) crontab -e (vim실행)

# vim이 실행되면 아래와 같이 입력 후 종료(:wq)
* * * * * /____/ >> ____.txt

# Cron에 입력된 명령 확인
$ crontab -l

# 이후 1분마다 log항목이 갱신됨.

10-7. 그 밖의 유용한 기능들

1) 시작프로그램 등록

/etc/rc.local 파일에 리눅스가 부팅될 때 같이 실행해야 할 프로그램 혹은 명령어를 등록할 수 있음.

# vim /etc/rc.local

echo "Hello CentOS!"

#

이후 재부팅 시, 항상 "Hello CentOS!" 가 출력됨.

2) 디스크 자동 마운트

/etc/fstab 파일에 자동으로 마운트해야 할 디스크, NFS(네트워크 파일 공유) 정보를 등록할 수 있음

3) 원격 호스트명 관리

/etc/hosts 파일에 자주 접속해야 할 원격 서버 주소를 관리할 수 있다.

# vim /etc/hosts

127.0.0.1 localhost localhost.localdomain
1.2.3.4 mySever mySever.net

# ssh mySever 
# ssh 1.2.3.4와 같다.

10차시 Linux 회고록이 끝났습니다!

드이어 Linux의 회고록들이 모두 끝났고, 유용했던 정보도 있고 유용하지 않았던 부분이 더 많았을지도 모르겠습니다.
하지만 이론적으로 정리를 해놓으면 머릿 속에 가장 오래 남겠다는 생각을 바탕으로 velog에 글을 작성해 보았습니다.
감사합니다.

기억보단 기록하자! LEE'Today로!

profile
하루를 기억하고 기록하는 개발자 LEE'Today입니다.

2개의 댓글

comment-user-thumbnail
2020년 4월 23일

^^b

1개의 답글