CentOS 6.5 시스템에서 실행되는 뉴스 서버가 있습니다. 이는 리프 노드이며 cron은 2분마다 실행되도록 설정되어 있습니다. 우리는 다른 문제를 해결하기 위해 이 기능을 끄기로 결정했기 때문에 crontab에서 다음 줄을 주석 처리했습니다.
# */2 * * * * /usr/sbin/fetchnews
그러나 어떤 이유로 우리는 여전히 뉴스 기사를 업데이트하고 있습니다. 그래서 우리는 이 바이너리의 권한을 변경하기로 결정했습니다.
chmod 400 /usr/sbin/fetchnews
그런 다음 2분마다 "/usr/sbin/fetchnews: 권한이 거부되었습니다"라는 이메일을 받기 시작했습니다.
우리는 실제로 crond와 관련된 /etc의 모든 내용인 /etc/cron/hourly를 살펴봅니다. 루트의 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을 직접 편집해 볼까? 실행만 하면 새 탭을 선택할 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