Cron이 존재하지 않는 .sh 스크립트를 실행합니다.

Cron이 존재하지 않는 .sh 스크립트를 실행합니다.

이상한 현상을 접했습니다.

나는 계속해서 장난을 쳤기 cron때문에 이라는 스크립트를 실행했습니다 startup.sh.

나는 명령을 사용한 sudo crontab -e후 다음을 입력했습니다.

@reboot sleep 20 && /home/hellfire/startup.sh

먼저 이메일을 보내는 스크립트를 작성했지만 메시지를 보내기 위해 다시 작성했습니다. 그러나 서버를 다시 시작해도 아무 일도 일어나지 않습니다.

그러다가 cron 상태를 확인해보니 이미 실행되고 있다는 사실에 놀랐습니다.오래된 스크립트, 더 이상 존재하지 않다. 일종의 크론 캐시가 있나요?

여기에서 상태를 확인합니다.

hellfire@Plex:~$ sudo systemctl status cron

    ● cron.service - Regular background program processing daemon
       Loaded: loaded (/lib/systemd/system/cron.service; enabled; vendor preset: enabled)
       Active: active (running) since Mon 2020-01-20 20:57:56 CET; 1min 45s ago
       Docs: man:cron(8)
       Main PID: 537 (cron)
      Tasks: 1 (limit: 3548)
       CGroup: /system.slice/cron.service
               └─537 /usr/sbin/cron -f

    Jan 20 20:57:57 Plex cron[537]: (CRON) INFO (pidfile fd = 3)
    Jan 20 20:57:57 Plex cron[537]: (CRON) INFO (Running @reboot jobs)
    Jan 20 20:57:57 Plex CRON[565]: pam_unix(cron:session): session opened for user root by (uJan 20 20:57:57 Plex CRON[613]: (root) CMD (sleep 20 && /home/hellfire/startup.sh)
    Jan 20 20:58:21 Plex sSMTP[866]: Creating SSL connection to host
    Jan 20 20:58:21 Plex sSMTP[866]: SSL connection using ECDHE_RSA_AES_256_GCM_SHA384
    Jan 20 20:58:21 Plex cron[537]: sendmail: 550 5.7.1 Username [email protected] and sender roJan 20 20:58:21 Plex sSMTP[866]: 550 5.7.1 Username [email protected] and sender [email protected] 20 20:58:21 Plex CRON[565]: (root) MAIL (mailed 75 bytes of output but got status 0x00                                )
    Jan 20 20:58:21 Plex CRON[565]: pam_unix(cron:session): session closed for user root

더 이상 존재하지 않는 메일 스크립트를 실행하려고 시도하지만 실패합니다(예전에는 작동했지만 문제는 아닙니다).

그런 다음 스크립트 파일을 확인했습니다.

hellfire@Plex:~$ cat /home/hellfire/startup.sh

#!/bin/bash

smsT --command='m "Adam Larsson" Hellfire are ONLINE'

이것은 새로운 스크립트입니다. 그러면 cron은 다른(현재 재작성된) 스크립트를 어디에서 실행합니까?

물론 리눅스를 다시 시작하고, 캐시 삭제도 해봤지만 소용없더군요..

..그래서 지금은 혼란스럽습니다... (평소보다 더 혼란스럽습니다). 이것에 대해 아는 사람 있나요?

Ubuntu 18.04.3lts mini에서 실행

답변1

이건 고전이야"자신의 꼬리를 쫓는다" 질문.

cron 작업에 오류가 발생하면 cron은 현재 실행 중인 사용자 계정에서 시스템의 현재 메일 구성에 지정된 이메일로 이메일을 보냅니다.

첫 번째 스크립트가 이메일을 통해 알림을 받았기 때문에 나는 cron이 스크립트의 이상한 "유령 복사본"을 실행하고 있다고 가정했지만 (잘못된 가정) 단지 제 역할을 하고 있을 뿐입니다.

나를 올바른 길로 인도한 사람은 @kusalananda였습니다.

제가 궁금해하는 점과 답변으로 이 글을 쓰는 이유는 cron이 이메일을 보낼 수 없다는 것 외에는 새 스크립트에 문제가 있다고 말한 적이 없다는 것입니다. 22년의 짧은 순간, 초점이 잘못된 문제에 쏠렸습니다.

이것은 확실히 최선의 대답은 아니지만 이번에는 그렇습니다.에스비케이실수(에스멍청한두번째나중에케이건반)...

이는 케이스에 없는 정보를 항상 주의 깊게 살펴봐야 한다는 교훈이자 아마도 다른 사람들에게 상기시켜 줄 것입니다.

관련 정보