여러 프로세스가 로그온하는 디렉토리가 있고 선택한 프로세스의 최신 파일을 테일에 넣고 싶습니다. 꼬리선택한 규칙과 일치하는 최신 파일 테일
-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
하고 :
작동합니까? 문제가 무엇입니까? – fedorqui
또한 find 체인은 상당히 복잡해 보입니다. ls -t를 사용하면됩니다. – themel
꼬리는 로그 파일의 세그먼트를 표시하지만 로그 파일이 응용 프로그램에 추가 될 때 업데이트되지 않습니다. – oden