특정 디렉토리에 대해 가장 최근에 수정된 파일의 꼬리를 새 파일에 연결하는 방법은 무엇입니까?

특정 디렉토리에 대해 가장 최근에 수정된 파일의 꼬리를 새 파일에 연결하는 방법은 무엇입니까?

더 나은 해결책이 있다면, 내 목표는 /usr/local/apache/domlogs에서 최근의 모든 Apache 활동을 신속하게 분석할 수 있는 것입니다. 이를 사용하는 이유는 서버 로드가 최고조에 달할 때 domlog의 모든 항목을 개별적으로 grep/awk할 필요 없이 어떤 사이트가 공격받고 있는지(그리고 어떤 URL이) 빠르게 확인하고 싶기 때문입니다.

예를 들어, domlogs 디렉터리에서 다음 명령을 사용하여 domlog에 대한 최근 활성 Apache 액세스 목록을 얻을 수 있다는 것을 알고 있습니다.

find -regex '.*\.\(com\|org\|net\|biz\|info\)' -mmin -1

이제 제가 하고 싶은 일은 각 파일의 마지막 1000줄을 새 파일로 연결하여 신속하게 분석하고 모든 트래픽이 어디서 오는지 확인하는 것입니다.

답변1

다음 옵션을 사용할 수 있습니다 -exec.

find -regex '.*.(com\|org\|net\|biz\|info)' -mmin -1 \
    -exec tail -n 1000 "{}" >> logs.txt +

이제 domlogs에 있는 각 파일의 마지막 1000줄은 모두 logs.txt파일 이름으로 구분되어 file 에 기록됩니다.

-exec command {} +찾은 파일을 사용하여 명령을 실행하도록 지시합니다 find. 명령줄은 끝에 각 파일 이름을 추가하여 구성됩니다. 이 옵션은 find에 파이프된 라인 조합 에 적용됩니다 xargs.

더보기:

관련 정보