
CentOS 6.5 상자에서 실행되는 뉴스 서버가 있습니다. 리프노드이고 크론이 2분마다 실행되도록 설정되어 있습니다. 다른 문제를 해결하기 위해 서비스를 종료하기로 결정했기 때문에 crontab에서 다음 줄을 주석 처리했습니다.
# */2 * * * * /usr/sbin/fetchnews
그러나 어떤 이유에서인지 우리는 계속해서 뉴스 기사를 업데이트하고 있습니다. 그래서 우리는 해당 바이너리의 권한을 변경하기로 결정했습니다.
chmod 400 /usr/sbin/fetchnews
그런 다음 2분마다 '/usr/sbin/fetchnews: 허가 거부됨'이라는 이메일을 받기 시작합니다.
우리는 /etc/cron/hourly를 살펴봅니다. 사실 /etc의 crond와 관련된 모든 내용을 살펴봅니다. 루트의 crontab 파일에도 없고, 뉴스 사용자의 crontab 파일에도 없고, 다른 사용자의 crontab 파일에도 없습니다.
이 바이너리가 실행되는 원인을 어떻게 알 수 있나요?
감사해요.
답변1
노력하다 grep -ri fetchnews /etc/cron* /var/spool/cron/tabs/*
.
주석 처리한 줄 외에 더 많은 결과가 있습니까?
답변2
watch "ps -ef | grep fetchnews"
ps -ef | grep fetchnews
2초마다 출력이 표시됩니다 . 의 출력에서 ps -ef
상위 pid는 세 번째 필드인 1458입니다. 이 경우:
ulmi 1462 1458 0 18:20 pts/1 00:00:00 sh -c ps -ef | grep ls
그것이 당신의 fetchnews를 낳은 일이고, 당신에게 도움이 될 수도 있습니다.
(내 수정구슬에 따르면 크론탭을 직접 편집하려고 했을 수도 있습니다. 실행해야만 새 탭을 선택할 수 있습니다. crontab -e
)crond
답변3
뉴스 파일을 소유한 사용자가 있다고 가정하면 이 사용자의 개인 crontab 항목에 이를 담당하는 cron 항목이 있을 가능성이 높습니다. 사용자 cron은 RHEL 시스템에서 유지 관리됩니다.
$ sudo ls -l /var/spool/cron/
total 4
-rw-------. 1 slm slm 9 Oct 6 13:30 slm
거기에 항목이 있으면 sudo
다음과 같이 주어진 파일에 무엇이 있는지 확인하는 데 사용할 수 있습니다.
$ sudo crontab -u slm -l
### blah
crontab
실행을 비활성화하려면 를 사용하여 이 파일의 항목을 간단히 주석 처리할 수 있습니다 . 작업이 상당히 간단한 경우 cron 서비스를 일시적으로 비활성화할 수도 있습니다.
$ sudo service crond stop