루트 크론 탭이 실행되고 있지 않습니다


10

어떤 이유로 내 루트 crontab이 실행되지 않는 것 같습니다.

매일 밤 자정에 장치를 재부팅하려고합니다.

루트로 다음과 같아야합니다.

crontab -e

그런 다음 다음을 추가하십시오.

0 0 * * * /sbin/shutdown -r now

현재 시간에 가까운 일부 값을 사용하여 테스트하면 아무 일도 일어나지 않습니다. NTP를 설치하고 시간대가 올바른지 확인했습니다. 또한 24 시간 시계를 사용하여 지정합니다. 예를 들어,이 줄을 지금 테스트하려면 (오후 5시 35 분) 다음을 입력 해보십시오.

36 17 * * * /sbin/shutdown -r now

날짜 -R로 시간을 확인했습니다. crontab이 실행되는 시간이 왔다가 시스템이 재부팅되지 않습니다. 내가 여기서 무엇을 놓치고 있습니까?


확인하기 위해 crontab을 편집 한 후 닫습니다. 또한 어떻게 "루트로 실행"했습니까? 출력은 sudo crontab -l | grep -v '#'무엇입니까?
terdon

왜 태그가 debian 입니까? 우분투가 아닌 데비안에 관한 것이라면 Unix & Linux 에 문의하십시오 .
muru

데비안은 우분투의 핵심이기 때문에 저는 믿습니다.
Atomiklan

답변:


11

세 가지 솔루션 제안이 있습니다.

  1. 다음과 같이 crontab을 호출하십시오. crontab -e -u root

  2. cronjob 파일의 끝에 빈 줄이 있는지 확인하십시오. 즉, 모든 줄은 줄 바꿈으로 끝납니다.

  3. 출력을 devnull로 리디렉션해야 할 수도 있습니다. shutdown -r now > /dev/null

cronjobs에 유용한 두 가지 웹 페이지는 다음과 같습니다.

CRON 테스터

CRON 발전기

webmin으로 cronjob을 깔끔하게 처리 할 수도 있습니다 .

그 외에는 자정에 컴퓨터를 다시 시작하는 방법이 두 가지 이상 있습니다.

하나는 로그인 할 때 shutdown 명령을 스크립트로 자동 실행하지만 특정 시간을 "now"대신 매개 변수로 사용하는 것입니다.

shutdown -r 00:00

그러나 이것은 매번 로그인 할 때마다 곧 종료 될 것이라는 브로드 캐스트 메시지를 생성합니다 (아직 나쁜 것은 아닐 수도 있음). 또한 init.d에 스크립트를 추가하여 메시지를 생성하여 부팅시 이것을 실행할 수 있습니다.

다른 하나는 at명령 을 사용하는 것입니다 .

at 0am

command를 입력 shutdown -r now하고 ctrl + d로 저장하거나 명령에 대한 스크립트를 수행하고 다음을 수행하십시오.

at -f restart_script.sh 0am

이것들이 당신이 원하는 결과를 얻는 데 도움이되기를 바랍니다.


해결책은 dev null로 출력하는 것이 었습니다. 왜 궁금해?
Atomiklan

cron 작업에는 표준 입력 / 출력 시스템이없는 자체 환경이 있고 누락 된 출력 파이프로 메시지를 스트리밍하려고하기 때문에 프로세스가 실패하기 때문입니다. Cron 작업은 실제로 어떤 사용자로 터미널에서 일부 명령을 실행하는 것과 비교하여 매우 다릅니다. 결국 당신이 그것을 일하게되었다 니 기쁘다.
Ahti Komu

0

시스템 Cron 작업은 / etc / crontab 파일에 나열되어 있습니다. 따라서이 파일을 직접 편집하면 reboot 명령을 root로 실행하는 데 도움이됩니다.

따라서,

$ sudo vi /etc/crontab

# Example of job definition:
# .---------------- minute (0 - 59)
# |  .------------- hour (0 - 23)
# |  |  .---------- day of month (1 - 31)
# |  |  |  .------- month (1 - 12) OR jan,feb,mar,apr ...
# |  |  |  |  .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# |  |  |  |  |
# *  *  *  *  * user-name  command to be executed
  23 20 *  *  *  root  shutdown  -r  now

crontab을 편집 한 후 cron 로그 파일을 확인하여 cron이 성공적으로 설치되었는지 알려줍니다.

나는 그것을 테스트했고 그것은 나를 위해 일했다. 오후 8시 23 분에 시스템을 다시 시작했습니다.

행운을 빕니다!


-3

36 17 * * * 등 ..

36 17은 cron에서 적절한 시간을 지정하는 방법이 아닙니다.

날짜 명령을 통해 시스템이 미국 시간 또는 유로 시간으로 작동하는지 확인하십시오.

시간이 유로 시간이고 시스템이 24 시간을 사용하는 경우 17 36을 사용하고 시스템이 미국 시간과 12 시간을 사용하는 경우 5 36을 사용하십시오.


사실이 아니다! Cron은 12 시간 형식을 사용하지 않으며 형식은 항상 mm hh DD MM WD입니다.
Ahti Komu

다음에 전체 게시물을 읽으십시오.
Atomiklan
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.