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