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.