Mac OS X Lion에서 크론 작업 추가 오류


37

지금까지는 Mac에서 crontask를 추가하려고 시도한 적이 없습니다. 놀랍게도 오류가 발생했습니다 ..

[hayek@mac:/www/] 02:33:22 PM: crontab -e                                                                                                         1 .
crontab: no crontab for hayek - using an empty one
crontab: "/usr/bin/vi" exited with status 1

왜 그 오류가 발생하는지 어떻게 알 수 있습니까?

Mac OS X Lion 10.7.2를 실행하고 있습니다


2
특정 이유로 cron을 사용하고 있습니까? OS x에서 그것은 출시에 의해 대체되었다
Daniel Beck

vnstat를 사용하여 대역폭 사용량을 추적하고 싶었습니다. 이에는 cronjob이 필요합니다. 대체 앱을 사용할 수 있다는 것을 알고 있지만 가능한 경우 Mac에서 cron을 작동시키는 방법을 아는 것이 여전히 유용합니다.
Hayek

1
crontab file외부 파일에서 테이블을 설치 하려고 했습니까 ? 또는 EDITOR=NANO crontab -e? 와 같은 다른 편집기를 사용하십시오 .
Lri November

@DanielBeck 나는 cron을 사용합니다. 시작보다 새로운 항목을 설정하는 것이 훨씬 빠르기 때문입니다.
더그 해리스

무엇을 crontab -l보여줍니까? /var/log/cron.log또는 안에 다른 메시지가 /var/log/system.log있습니까?
더그 해리스

답변:


41

~ / .vimrc에서 다음을 추가하십시오.

    autocmd 파일 유형 crontab setlocal nobackup nowritebackup

좋은 간단한 트릭! 나를 위해 잘 작동합니다.
Tri Nguyen

이것은 가장 좋은 답변이며 잘 작동합니다. 쉘 프로파일에서 env 변수를 설정하고 편집하는 것보다 훨씬 간단합니다.~/.vimrc
RichVel

내 답변이 더 이상 적절하지 않거나 가장 효과적이지 않기 때문에 이것을 정답으로 표시하십시오.
Hayek

1
이것은 Mac OS High Sierra에서도 작동합니다! 이것을 게시 해 주셔서 감사합니다
Kearney Taaffe

44

이 문제는 vicron과 관련이 없으며 아무것도 아닙니다. 하고 export EDITOR=vim그것을 고정


2
예, 문제를 발견 한 것으로 알고 해결책은 ... 무엇입니까?
Gökhan Barış Aker

3
export EDITOR=vim그런 다음 시도해보십시오 .
Hayek

감사합니다 @Hayek. 대기 시간에 대해 죄송합니다, 당신이 한 것처럼 빨리 응답하지 못했습니다 : P. 그러나 전능 한 'sudo'로 crontab을 실행하면 내 문제가 해결되었습니다.
Gökhan Barış Aker

당신이 그것을 가지고있어서 다행입니다.
Hayek

1
방금 같은 문제가있었습니다. 설정으로 EDITOR=vim해결되지 않았습니다. 새로운 오류가 발생했습니다.crontab: temp file must be edited in place . 나는 vim을 선호하지만 cronjobs을 너무 자주 편집하여 너무 행복해하기 때문에 행복합니다 NANO... 누군가가 픽스를 알고 있다면 매우 관심이 있습니다.
ricardo

35

관련 문제가 발생하면 다음 메시지가 표시됩니다.

crontab: temp file must be edited in place

시험:

1) .bash_profile에 추가

alias crontab="VIM_CRONTAB=true crontab"

2) .vimrc에 추가

if $VIM_CRONTAB == "true"
    set nobackup
    set nowritebackup
endif

출처 : http://drawohara.com/post/6344279/crontab-temp-file-must-be-edited-in-place


2
정답입니다 !!
Jacob

이것은 저에게 효과적이며 이것이 정답이어야한다고 생각합니다.
Shubhamoy

1
csh 또는 tcsh의 경우alias crontab "export VIM_CRONTAB=true; /usr/bin/crontab"
JAFaucett

1
OP의 질문에 설명 된 @xgMz의 정확한 오류는 언급하지 않았지만 이것이 더 나은 대답이라고 생각합니다. crontab은 쓰기 / 저장 동작시 vim 백업을 좋아하지 않으므로 여기에 설명 된대로 비활성화하면 작동합니다.
Shyam Habarakada

macOS Sierra에서 vim 및 cron과 관련 하여이 문제가 발생했습니다. 이것이 정답입니다!
James McCormac


2

나는 같은 문제가 있었고 테이블을 만들기 위해 게시 된 조언을 따랐습니다.

crontab file

그리고 그것은 cron 테이블을 만들었고, 나는 달릴 수있었습니다.

crontab -e

vi를 기본 편집기로 사용하고 아무런 문제가 없었습니다. vi가 파일을 저장할 수없는 것처럼 보이지만 일단 생성되면 액세스 할 수 있습니다. 이것은 다음을 실행할 수있는 것과 일치합니다.

sudo crontab -e 

호기심으로, 테이블은

/usr/lib/cron/tabs/UserName

sudo로만 읽을 수 있습니다.


0

이것을 진단하는 가장 좋은 방법은 다음과 같은 간단한 항목으로 새로운 crontab을 만드는 것입니다.

* * * * * /bin/date >> /tmp/cron_output

그래도 문제가 해결되지 않으면 추가 한 특정 명령에 문제가있는 것입니다. 우리와 공유하고 crontab이 아닌 Terminal.app에서 직접 실행할 때 결과를 공유 할 수 있습니까?


1
제안한 명령과 동일한 오류가 발생했습니다. 터미널에서 예상대로 /bin/date반환합니다 Wed Nov 23 15:03:49 PST 2011.
Hayek

좋아요, 방금 답변을 보았습니다. 왜 같은 오류가 발생하는지 설명합니다. 문제를 진단하는 데 도움이 될 것이라고 생각했습니다. :)
tog22

0

cron은 launchd를 위해 더 이상 사용되지 않습니다.

Lingon 은 시작된 에이전트를 설정하기위한 훌륭한 도구입니다. 예전에는 무료 였지만 지금은 $ 3 인 것으로 보입니다.

위키 백과는 좋은있다 launchd에의 키 및 활성화에 사용하는 launchctl 도구 모두를 설명하는 페이지를 /을 비활성화합니다.



-1

OSX에서도 이와 동일한 문제가 발생했습니다. 대답은 sudo 명령을 사용하여 루트로 실행하는 것입니다. 예 :

sudo crontab -e

위의 Gökhan Barış Aker로부터 그 아이디어를 얻었습니다.


sudo루트 사용자로 장소 cron 작업에 가고있다. 크론 파일은 일반 사용자와 루트 사용자마다 다릅니다.
Timofey
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.