Linux 에 서 는 Shell 을 통 해 로그 저장

2589 단어 Linux서버 운영
Shell 스 크 립 트 를 사용 하여 DNS 실행 중인 로 그 를 매일 정기 적 으로 저장 하고 zip 압축 파일 을 생 성 하 며 DNS 서버 에 최근 15 일 동안 기 록 된 로 그 를 저장 하고 매일 로 그 를 FTP 에 업로드 하여 백업 합 니 다.
1. 로그 가 져 오기
DNS 로 그 는 보통/var/named/data 에 저장 되 며, 디 렉 터 리 에 있 는 파일 을 임시 디 렉 터 리 에 백업 합 니 다. 이 디 렉 터 리 는 로그 압축 과 업 로드 를 합 니 다.
#!/bin/bash

#          

path="/var/named"

#      

time=`date +%Y%m%d`;

mkdir ${path}/${time}-"log"

\cp -r ${path}/data/* ${path}/${time}-"log"/

2. 로그 압축
임시 디 렉 터 리 의 로 그 를 압축 하고 압축 한 후 임시 디 렉 터 리 파일 을 삭제 합 니 다.
Linux 에서 압축 을 하려 면 DNS 서버 에 'zip' 명령 을 설치 해 야 합 니 다. 그 조작 명령 은 다음 과 같 습 니 다 (CentOS 7 을 예 로 들 면).
# yum install zip

설치 가 완료 되면 'zip - help' 명령 을 통 해 설치 성공 여 부 를 확인 할 수 있 으 며, 설치 에 성공 하면 zip 압축 명령 의 도움말 정 보 를 볼 수 있 습 니 다.
설치 완료 후 임시 디 렉 터 리 를 zip 압축 합 니 다.
zip -r ${time}-"log.zip" ${path}/${time}-"log"/
#         
rm -rf ${path}/${time}-"log"/

3. 압축 파일 업로드
zip 압축 파일 을 FTP 를 통 해 FTP 서버 에 업로드 하여 로그 백업 을 합 니 다. 이 때 Shell 스 크 립 트 는 FTP 명령 을 호출 하고 DNS 서버 에 ftp 를 설치 해 야 합 니 다. 작업 명령 은 다음 과 같 습 니 다 (CentOS 7 의 경우).
# yum install ftp

설치 가 완료 되면 "ftp?"명령 을 통 해 설치 가 성 공 했 는 지 확인 할 수 있 으 며, 설치 가 성공 하면 FTP 명령 실행 에 들 어 갑 니 다.
파일 을 업로드 하고 FTP 에 당일 날짜 (예: 연월일) 의 디 렉 터 리 파일 을 만 듭 니 다. 디 렉 터 리 파일 이 존재 하면 디 렉 터 리 를 새로 만 들 필요 가 없습니다.
#            

ftp -n <

4. 로 컬 저장
zip 압축 파일 을/var/named/log 디 렉 터 리 에 저장 하고 이 디 렉 터 리 에 있 는 파일 의 개수 가 15 개 를 초과 하 는 지 판단 하 며 15 개 를 초과 하면 15 일 이상 의 로그 기록 파일 을 삭제 합 니 다.
#               

mv ${time}-"log.zip" ${path}/log/

#    LOG       ,  15          

cd ${path}/log/

FileNum=$(ls -l | grep ^- | wc -l)

ReservedNum=15

while(( ${FileNum} > ${ReservedNum} ))

do

    #      ,*.*          

    OldFile=$(ls -rt *.* | head -1)

    rm -f ${path}/log/${OldFile}

    let "FileNum--"

done

5. 로그 비우 기
로그 에 기 록 된 모든 파일 을 삭제 하고 로그 파일 을 새로 만 들 며 DNS 서 비 스 를 통 해 로 그 를 계속 기록 할 수 있 는 권한 을 부여 합 니 다.
#             

rm -rf ${path}/data/query/*

touch ${path}/data/query/  .log

#             

chown -R named ${path}/data/

chgrp -R named ${path}/data/

6. 정시 퀘 스 트
리 눅 스 의 정시 작업 을 통 해 셸 스 크 립 트 를 정기 적 으로 실행 할 수 있 습 니 다. 로 그 는 매일 정시 (매일 저녁 23.59) 에 백업 을 저장 하고 정시 작업 을/etc/crontab 파일 에 기록 할 수 있 습 니 다. 작업 명령 은 다음 과 같 습 니 다.
# vi /etc/crontab

59     23      *       *       *       root     /bin/bash       /file.sh

좋은 웹페이지 즐겨찾기