Erro ao adicionar cronjobs no Mac OS X Lion

31

Até agora, nunca tentei adicionar um crontask no meu Mac. Para minha surpresa, isso gerou um erro.

[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

Como posso descobrir por que está causando esse erro?

Estou executando o Mac OS X Lion 10.7.2

    
por Hayek 20.11.2011 / 23:41

9 respostas

36

Em ~ / .vimrc add:

    autocmd filetype crontab setlocal nobackup nowritebackup
    
por 30.04.2015 / 04:53
40

O problema acabou sendo vi e nada a ver com o cron. Fazendo export EDITOR=vim corrigido

    
por 24.11.2011 / 00:09
33

Em um problema relacionado, se você receber a mensagem:

crontab: temp file must be edited in place

Tente:

1) Adicionar a .bash_profile

alias crontab="VIM_CRONTAB=true crontab"

2) Adicionar a .vimrc

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

Fonte: link

    
por 06.05.2014 / 23:12
8

Seu editor na variável de sistema EDITOR é vi e vi não funciona.

Tente:

export EDITOR=nano
    
por 22.03.2012 / 16:21
2

Eu tive o mesmo problema e segui os conselhos postados para criar a tabela:

crontab file

E isso criou a tabela cron e depois consegui executar

crontab -e

com o vi como editor padrão e não teve problemas. É como se o vi não pudesse salvar o arquivo, mas uma vez criado, ele poderia acessá-lo. Isso é consistente com a capacidade de execução:

sudo crontab -e 

Como curiosidade, as tabelas são armazenadas em

/usr/lib/cron/tabs/UserName

que só pode ser lido como sudo.

    
por 04.04.2013 / 19:46
0

A melhor maneira de diagnosticar isso seria criar um novo crontab com uma entrada simples como:

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

Se isso funcionar, o problema é com o comando específico que você adicionou. Você poderia compartilhá-lo conosco e também compartilhar os resultados quando você executá-lo diretamente do Terminal.app, em vez de um crontab?

    
por 23.11.2011 / 13:17
0

o cron está obsoleto em favor do launchd.

Lingon é uma ótima ferramenta para configurar agentes launchd; costumava ser livre, mas agora parece ser $ 3.

A Wikipedia tem uma boa página launchd que descreve todas as chaves e a ferramenta launchctl que você usa para ativar / desativá-los.

    
por 23.11.2011 / 16:41
0

Adicionando au BufEnter /private/tmp/crontab.* setl backupcopy=yes ao vimrc consertou para mim. Veja aqui:

link

    
por 30.07.2013 / 20:39
-1

Eu vi o mesmo problema no OSX. A resposta é executar como root usando o comando sudo, por exemplo:

sudo crontab -e

Eu tenho essa ideia de Gökhan Barış Aker acima.

    
por 12.03.2013 / 14:14