매우 기본적인 cron 작업을 작성하려고 하는데 저장되지 않는 것 같습니다. 내가 한 일은 다음과 같습니다.
1)crontab -e
그러면 vim을 사용하여 파일이 열립니다.
2)
#!usr/bin/env python
0 23 * * 0 ~/Desktop/SquashScraper/helpfulFunctions.py
삼):wq
4) 크론탭-l
아무것도 나타나지 않고 다음 메시지가 나타납니다.
crontab: no crontab for ben
주위를 둘러보니 비슷한 문제를 가진 대부분의 사람들이 편집 문제를 겪고 있습니다. 내 crontab은 vim에서 올바르게 열리므로 이는 문제가 되지 않는 것 같습니다.
왜 이것이 제대로 작동/저장되지 않을 수 있는지 아시나요?
고마워요, 클라이만
다음을 포함하도록 편집되었습니다.
답변1
오류 메시지에서 알 수 있듯이 어떤 이유로 /usr/bin/vi
컴퓨터에서 제대로 작동하지 않습니다.
crontab: "/usr/bin/vi" exited with status 1
거기서 무슨 일이 일어나고 있는지, 나갈 때 vi
오류 코드가 생성된다는 것입니다. 종료 시 오류 코드가 crontab
표시 되면 편집 중인 파일의 내용을 vi
신뢰하지 않으며 vi
crontab을 변경하지 않습니다.
작동하지 않는 이유를 더 자세히 조사해 볼 수도 있고 vi
, 원할 경우 완전히 다른 편집기를 사용할 수도 있습니다. 예를 들어, 를 사용하려는 경우 vim
다음을 입력할 수 있습니다.
EDITOR=/usr/bin/vim crontab -e
또는 홈 디렉토리에 crontab의 "공식" 버전을 보관할 수 있습니다. 그런 다음 홈 디렉터리에서 버전을 편집하고 마지막으로 다음 명령을 사용하여 설치합니다.
crontab filename
답변2
시스템에 따라 사용자 crontab이 에 저장됩니다 /var/spool/cron/
. 이 디렉터리가 있는지 확인하세요. 또한 crontab 프로그램은 setuid로 되어 있어서 다른 사람의 crontab을 읽을 수 없으므로 이것을 확인하세요(-rw에스...):
$ ls -l /bin/crontab
-rwsr-xr-x 1 root root 57536 Sep 18 2014 /bin/crontab
귀하의 vim이 오류 코드와 함께 종료되는 것 같습니다. 항목을 "myfile" 파일에 넣고 이를 사용하여 crontab myfile
설치해 보십시오. 보다 의미 있는 오류 메시지가 나타날 수 있습니다.
또한 crontab을 실행하려면 파일이 /etc/cron.deny
존재해야 할 수도 있습니다(대개 비어 있음). 그렇지 않으면 오류 메시지가 나타납니다.
당신의#! @G-Man이 댓글에서 말했듯이 해당 라인은 작동하지 않습니다. 당신은 다음과 같은 것이 필요합니다
0 23 * * 0 python ~/Desktop/SquashScraper/helpfulFunctions.py
답변3
여기서는 원래 질문에 대답하지 않겠습니다. 하지만 작업을 예약하려면맥 OS 10.9+그리고 cron
,네가 이런 짓을 한 건 잘못이야: crontab
더 이상 사용되지 않습니다. 당신 launchctl
은 launchd
(매뉴얼 페이지는 여기에 있습니다) 반대로.
launchd
/는 /가 파일 에 사용되는 방식 과 유사하게 각 작업을 설명하는 파일 launchctl
과 함께 사용됩니다 . 처음에는 불안할 수도 있지만 단일 ..plist
systemd
systemctl
.service
cron
crontab -e
다행스럽게도 작업 관리를 쉽게 해주는 GUI 소프트웨어가 많이 있습니다 launchd
. 제가 개인적으로 가장 좋아하는 것은발사 제어소마구 제공. 가격은 10달러이지만 소프트웨어를 무제한으로 다운로드하여 사용할 수 있습니다.
어쨌든 귀하의 경우 ~/Library/LaunchAgents/HelpfulFunctionsJob.plist
파일은 다음과 같아야합니다.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>HelpfulFunctions.job</string>
<key>Program</key>
<string>/Users/bclayman/Desktop/SquashScraper/helpfulFunctions.py</string>
<key>RunAtLoad</key>
<true/>
<key>StartCalendarInterval</key>
<dict>
<key>Hour</key>
<integer>23</integer>
<key>Minute</key>
<integer>0</integer>
<key>Weekday</key>
<integer>7</integer>
</dict>
</dict>
</plist>
<string>/Users/bclayman/Desktop/SquashScraper/helpfulFunctions.py</string>
실제 경로로 변경한 다음 작업을 로드하세요.
launchctl load -w ~/Library/LaunchAgents/HelpfulFunctionsJob.plist