인증 로그에서 프로세스를 추적하는 방법

인증 로그에서 프로세스를 추적하는 방법

우분투 14.04를 실행하는 서버가 있습니다. /var/log/auth.log에는 매시간 실행되는 일종의 자동화된 프로세스가 있는데 그 프로세스가 무엇인지 알고 싶습니다.

사용자가 예약한 크론 작업이 없다는 것을 이미 확인했습니다. 내가 해야 할 일은 매시간 auth.log에 다음 샘플 라인을 작성하는 것뿐입니다.

Dec  2 03:17:01 fi CRON[23537]: pam_unix(cron:session): session opened for user root by (uid=0)
Dec  2 03:17:01 fi CRON[23537]: pam_unix(cron:session): session closed for user root
Dec  2 04:17:01 fi CRON[23557]: pam_unix(cron:session): session opened for user root by (uid=0)

이를 추적하는 방법에 대한 아이디어가 있습니까?

답변1

사용자가 예약한 크론 작업이 없다는 것을 이미 확인했습니다.

/etc/crontab아마도 및 에서 시스템 전체 cron 작업을 놓쳤을 것입니다 /etc/cron.d/*.

아무것도 없는 것으로 나타나면 stracecron 프로세스에 연결하여 읽는 파일이나 실행하는 명령을 확인할 수 있습니다.

strace -p 23537 -e file
strace -p 23537 -f -e execve [-s 10000]

이전 시스템에서는 cron이 자동 다시 로드 지원 없이 컴파일되었을 수 있으므로 누군가 /etc/crontab에서 작업을 수동으로 제거했지만 cron을 다시 로드하지 않은 경우 누군가가 다시 로드를 트리거할 때까지 해당 작업이 계속 실행됩니다.

답변2

당신이 사용할 수있는atop.

설치되면 프로세스와 리소스 사용량을 자동으로 계산하고 로그 파일에 데이터를 기록하기 시작합니다. 충분한 데이터를 수집할 때까지 잠시 기다린 다음 로그를 검사하거나 구문 분석할 수 있습니다.

예를 들어, 로그를 수집한 후 어떤 프로세스가 실행 중인지 확인하려면 다음 명령을 권장합니다.

atop -r /var/log/atop/atop_<current date> -b 03:16 -e 03:18 -P PRG | grep -P 'PRG.*\s23557\s\('

이는 다음을 수행합니다.

  1. 오늘 03:16부터 03:18 사이의 로그 파일을 읽습니다.
  2. 프로세스에 대한 일반 데이터(프로세스 이름 포함)와 함께 기계에서 구문 분석 가능한 출력으로 데이터를 출력합니다.
  3. PID 23557이 포함된 프로세스가 고려된 줄을 검색하면 대괄호로 묶인 프로세스 이름이 무엇인지 확인할 수 있습니다. grep 패턴은 더 높은 정확도를 위한 것입니다. 행은 항상 로 시작하고 PRG, 값 열은 공백으로 구분되며(PID는 별도의 열), PID 뒤의 열은 대괄호로 묶인 프로세스 이름입니다( 로 시작 ().

관련 정보