2014-11-04 2 views
0

리눅스 환경에서 쉘 스크립트를 실행하여 일부 로그 (동적 로그 파일)를 텍스트 파일로 만듭니다.폴더에 런타임 로그 저장

생성 된 모든 로그 파일을 특정 시간 후에 단일 폴더에 저장하려고합니다.

어떻게하면됩니까? 누구든지 몇 가지 명령을 제안 할 수 있습니까?

미리 감사드립니다.

답변

0

스크립트에서 해당 디렉토리를 변수로 정의 할 수 있으며 스크립트에서이 디렉토리를 사용할 수 있습니다. 단지 크론 작업을 추가로 당신은 백업 로그를 할 수 있습니다

은 [로그 파일의 크기가 작은 경우 제안] 및 우편/타르를하기 :

#!/bin/bash 

LOG_DIR=/tmp/logs 
LOG_FILE=$LOG_DIR/log_file.$$ ## $$ will create the different log file for each and every run 
           ## You can also do it by using some time stamp using date command. 

<Your commands> >> $LOG_FILE 
+0

안녕하세요 Shriharsha, Linux 서버에서 일부 서버 통계 수집 명령을 실행 중이며 로그 파일 내용이 특정 시간 범위 동안 업데이트되고 있습니다. 그래서 특정 시간이 지나면 생성 된 모든 파일을 1 개의 폴더에 저장하여 수집하기가 쉽습니다. 한 가지 더 쉘 스크립트의 실행 완료 후 폴더를 만들어야합니다. – user3627319

+0

안녕하세요 Shriharsha, 나는 런타임 로그를 저장할 폴더 (사용 권한 포함)를 만들 수 있습니다. 나는 LOG_DIRECTORY1 = $ (mkdir -m 777 DEMO _ $ {HOST} _ $ {NOW1} _50users) 명령을 사용하여 권한을 가진 디렉토리를 만듭니다. 그 후 vmstat -n 10 400> VMStat_DEMO _ $ {HOST} _ $ {NOW} .txt 명령으로 로그를 생성합니다. 그런 다음 생성 된 파일을 생성 된 디렉토리로 이동하기 위해 mv -t $ LOG_DIRECTORY1 VMStat_DEMO _ $ {HOST} _ $ {NOW} .txt 명령을 사용하고 있습니다. 하지만 작동하지 않습니다. HOST 및 NOW는 미리 정의 된 변수입니다. 도와주세요. – user3627319

0

정말 당신의 상황에 따라 달라집니다 다른 폴더를 스냅 샷으로 만듭니다. 로그 파일이 작기 때문에 zip/tar도 하드 드라이브를 채우는 데 수년이 걸릴 수 있습니다.

[로그 파일이 큰 경우 제안]로그를 생성하는 스크립트에서 일요일에 log0에서 log.6과 같이 몇 개의 색인 된 파일을 일주일 동안 순환 게재 할 수 있습니다 토요일까지. 그리고 어제의 로그를 백업하는 또 다른 스크립트를 만들 수 있습니다 (로그 생성자와 로그 소비자 (즉, 로그 이동기/복사기)간에 경쟁 조건이 없도록). 당신은 얼마나 많은 일의 백업이 여전히 존재하는지, 그리고 얼마나 오래 버려야하는지에 대한 전략을 가질 수 있습니다.

어제의 로그 이동기/복사기는 cron 작업으로 쉽게 수행 할 수 있습니다.