2013-03-19 5 views
1

여러 프로세스가 로그온하는 디렉토리가 있고 선택한 프로세스의 최신 파일을 테일에 넣고 싶습니다. 꼬리선택한 규칙과 일치하는 최신 파일 테일

-rw-r--r-- 1 genesys genesys 2284 Mar 19 16:34 gdalog.20130319_163436_906.log 
-rw-r--r-- 1 genesys genesys 131072 Mar 19 16:34 gdalog.20130319_163436_906.snapshot.log 
-rw-r--r-- 1 genesys genesys 10517 Mar 19 16:54 lcalog.20130319_163332_719.log 
-rw-r--r-- 1 genesys genesys 131072 Mar 19 16:54 lcalog.20130319_163332_719.snapshot.log 
-rw-r--r-- 1 genesys genesys 3792 Mar 19 16:37 StatServer_TLSTest.20130319_163700_703.log 
-rw-r--r-- 1 genesys genesys 160562 Mar 19 16:52 StatServer_TLSTest.20130319_163712_045.log 
-rw-r--r-- 1 genesys genesys 49730 Mar 19 16:54 StatServer_TLSTest.20130319_165217_402.log 
-rw-r--r-- 1 genesys genesys 53960 Mar 20 09:55 StatServer_TLSTest.20130319_165423_702.log 
-rw-r--r-- 1 genesys genesys 131072 Mar 20 09:56 StatServer_TLSTest.20130319_165423_702.snapshot.log 

그래서 https://superuser.com/questions/117596/how-to-tail-the-latest-file-in-a-directory

로그 파일 디렉토리의 예 모든 StatServer 명령 : 나는 다음과 같은

function __taillog { 

     tail -f $(find $1 -maxdepth 1 -type f -printf "%[email protected] %p\n" | sort -n | tail -n 1 | cut -d' ' -f 2-) 
} 

alias taillog='__taillog' 

가에서 촬영 추가 한 ~/bashrc에에

~

taillog /home/user/logs/StatServer* 

하고 꼬리 지정된 패스

문제는 꼬리가 파일 출력의 일부를 표시하지만 로그 파일이 추가 될 때 업데이트를 표시하지 않습니다이다에서 해당 응용 프로그램에 대한 최신 파일을 것입니다. 다음 명령을 실행하면 별명이 원하는대로 작동하지 않는 원인에서 호출 한 다음 bash는 기능이 명령을 추가하는 방법 로그가 제대로

tail -f $(find /home/user/logs/StatServer* -maxdepth 1 -type f -printf "%[email protected] %p\n" | sort -n | tail -n 1 | cut -d' ' -f 2-) 

일부 꼬리된다.

더 나은 방법에 대한 제안은 언제나 환영합니다. 당신은 당신이 taillog에 인수로 패턴과 일치하는 만 $1 즉 첫 번째 인수를 사용하여 모든 파일을 전달하는 /home/user/logs/this_app*을 말할 때

taillog /home/user/logs 

하고 :

+0

작동합니까? 문제가 무엇입니까? – fedorqui

+0

또한 find 체인은 상당히 복잡해 보입니다. ls -t를 사용하면됩니다. – themel

+0

꼬리는 로그 파일의 세그먼트를 표시하지만 로그 파일이 응용 프로그램에 추가 될 때 업데이트되지 않습니다. – oden

답변

1

난 당신이 명령을 실행해야한다고 생각 명령은 결국 tail -f $1으로 변환됩니다.

가 대신 $1find 해당 디렉토리 레벨에서 파일을 찾아야한다 디렉토리해야한다 (즉, 귀하의 경우 /home/user/logs)를 sort, tailcut에 다음 파이프 결과.

+0

나는 당신의 대답의 결과로 질문에 더 많은 정보를 추가했다. 질문이 충분히 명확하지 않다고 생각한다. (미안). 결과적으로 당신의 대답은 도움이되지 못했습니다. – oden

0

linux/bash에서 taillog 기능을 실행하는 데 아무런 문제가 없었습니다. 아마도 로그 출력이 버퍼링되어 변경 사항이 즉시 기록되지 않을 수 있습니까? 이 StatServer에 대한 [로그] 버퍼링 옵션을 해제 해보십시오.

관련 문제