php에서 리눅스의 tail -f 같은 실시간 로그를 모니터링할때..
글쓴이: apmorz / 작성시간: 목, 2013/12/26 - 2:02오후
특정서비스의 로그를 tail -f를 이용해서 실시간으로 모니터링을 할려고하는데요
php를 짤때 system 함수를 이용해서 tail -f 명령으로 실시간으로 떨어지는 로그중에
특정문자열이 떳을 때 다음 행위가 들어갈수 있도록 짤려면 어떤식으로 해야할까요..?
예를 들자면 tail -f 명령 후에 if 등을 써서 모니터링하고자 하는 로그가 떳을시
if다음 명령을 수행하고자하는..
한번 if 문으로 짠 후 해당로그에 특정문자열을 집어넣은 후 실행을 해보았는데 최초 tail -f 실행시 특정문자열까지 화면에 출력되었는데 if문쪽은 실행이 안되더더라구요..
어드바이스 부탁드립니다ㅎ
Forums:
마음에 드는거 쓰시구요
system
http://php.net/manual/kr/function.system.php
exec
http://php.net/manual/en/function.exec.php
해당 로그파일이 사용중인지도 봐야됩니다.
웹페이지는 켜놓고 새로고침 계속되게 루프 돌리시면 될거 같네요
php의 system() 함수는 실행한 프로그램이
php의 system() 함수는 실행한 프로그램이 종료될 때 까지 리턴되지 않습니다. 그러므로 tail -f 를 실행하면 tail이 계속 실행중인 상태라 php의 system() 함수 다음 구문이 실행되지 않습니다. tail을 실행하는 도중에 tail의 출력을 받아서 처리하려면 pipe를 사용하면 됩니다.
php에서는 popen()과 fgets()를 적절히 사용하면 될 것 같습니다.
좋은답변 감사합니다. 어쩐지 다음구문이 실행이
좋은답변 감사합니다.
어쩐지 다음구문이 실행이 안되더군요^^;
system함수 구문 뒤에 | (파이프) 를 사용해서 popen과 fgets 를 사용해야 하는 건지요..
popen, fgets 대략 예제 가능할까요?^^;;
http://kr1.php.net/manual/en/
http://kr1.php.net/manual/en/function.popen.php 여기 예제 많이 있습니다.
댓글 달기