
내 서버에는 매일 밤 자정에 종료되는 프로세스가 실행 중입니다. 직장에 있는데 그 일이 일어날 때 나는 주변에 없고 원격 액세스도 할 수 없습니다.
살인은 매일 밤 23시 59분에 매우 예측적으로 발생합니다. 나는 다음 날 도착했을 때 다음과 같은 사실을 알고 있습니다.
- 접수는 23시 59분까지입니다
- 프로세스 로그에는 마지막으로 수정된 시간이 23:59로 표시됩니다(그리고 그 직후에 새로운 날짜의 로그가 시작됩니다).
살해가 같은 시간에 일어나기 때문에 배치 작업이 강하게 의심되었습니다. 나는 crontab
모든 기계를 조사했지만 아무것도 찾을 수 없었습니다. 분명히 나는 뭔가를 놓치고 있습니다.
ps
간헐적으로 출력을 보고하고 몇 분 전에 시작되어 at
잠시 동안 반복되는 감시 스크립트를 배치할 생각입니다 . 이 아이디어는 약하고 오류가 발생하기 쉬우므로 더 나은 아이디어가 있는 사람이 있는지 궁금합니다.
자세한 내용은:
우주는 매우 크고 오래된 레거시 시스템입니다. 내 팀의 어느 누구도 그러한 프로세스를 인식하지 못하는 것 같습니다(누군가가 알고 있다면 그녀는 우리 팀에 속해 있을 것입니다). 더 큰 조직은 수천 명의 직원으로 구성되어 있지만 이론적으로는 많은 직원이 이에 액세스할 수 있습니다. 왜 그럴까요). 즉, 보안이 그다지 엄격하지 않습니다.
환경은 Solaris 10을 실행하는 여러 시스템으로 구성됩니다.
프로덕션 환경이 아니므로 시간 초과나 가동 중지 시간은 중요하지 않습니다.
나는 살인이 배치 작업으로 인한 것이 아닐 가능성을 배제하지 않습니다. 비록 타이밍이 얼마나 정확하기 때문에 가능성은 낮습니다.
분명히 우리 장부에 결함이 있으므로 상상할 수 있는 모든 것이 가능합니다.
제 질문은 채택할 수 있는 최선의 전략이 무엇인지입니다. 이는 "레거시 시스템에서 작업하는 즐거움"이라는 더 큰 범위에 속합니다. 나는 피드백을 위해 곧 여기에 게시할 스크립트 작업을 시작하고 있습니다. 그동안 더 좋은 아이디어가 있는 사람이 있으면 알려주시기 바랍니다.
답변1
로그를 주기적으로 교체하는 것이 일반적이며 자정에 교체하는 것이 일반적입니다. 많은 응용 프로그램이 이 작업을 자동으로 수행합니다.
logrotate
그렇지 않은 경우에는 회전을 수행하는 것과 같은 도구가 있습니다 . 많은 프로그램은 HUP 신호가 전송되면 로그를 다시 열도록 구성되어 있으며 이는 logrotate
.
확인해야 할 사항:
- 모든 PID를 변경하십시오. 그렇지 않은 경우 프로그램이 자체 로그를 회전하거나 로그 회전에 적절하게 응답할 수 있습니다.
- PID를 변경하는 프로그램의 경우 자정에 다시 시작되었습니까? 그렇지 않은 경우 부모가 무엇을 하는지 확인하세요.
- 하루가 끝날 때 어떤 프로세스가 실행되는지 보려면 루트의 crontab을 확인하세요.
- 하루가 끝날 때 어떤 프로세스가 실행되는지 확인하려면 프로세스 userid에 대한 crontab을 확인하세요.
- 로그 파일이 직접 기록되고 있는지, 아니면 로그를 순환시키는 로그 기록기에 의해 기록되고 있는지 확인하세요.