O crontab do Mac nunca é criado

12

Estou tentando configurar um cron no meu mac, mas parece que ele nunca termina de criar um crontab para o meu usuário. Abro o terminal e entro:

$ crontab -e 

O que retorna isso:

crontab: no crontab for jjmay - using an empty one




















~                                                                               
~                                                                               
~                                                                               
~                                                                               
~                                                                               
~                                                                               
~                                                                               
~                                                                               
~                                                                               
~                                                                               
~                                                                               
~                                                                               
~                                                                               
~                                                                               
~                                                                               
~                                                                               
~                                                                               
~                                                                               
~                                                                               
~                                                                               
~                                                                               
~                                                                               
"/tmp/crontab.rBdeP6yv1U" 0L, 0C

E aí espera até eu fechar a janela, deixo passar por 20 minutos. Abro outra janela do terminal para verificar a criação do meu crontab e não recebo nada.

$ crontab -l 
crontab: no crontab for jjmay

Alguma idéia de por que não consigo criar isso ou se posso criar manualmente meu crontab para editá-lo?

Jage
fonte
Já faz um tempo desde que eu mexi com arquivos crontab no OS X, mas meu palpite é o seguinte: "/tmp/crontab.rBdeP6yv1U" 0L, 0C indica que você não está no diretório correto ou não tem permissão para escrever para esse diretório. Qual é o diretório em que você está quando digita "crontab -e"? JDB
JDB
@JDB obrigado. Eu não sabia que teria que estar em um diretório específico. Estava no meu diretório padrão quando abri o terminal, apenas no meu diretório de usuário padrão. / Users / <my_username> /
Jage

Respostas:

22

Não se trata do editor, trata-se de permissões de usuário. Primeiro torne-se root:

sudo su -

Em seguida, edite o crontab para o usuário adequado:

crontab -u username -e

Depois de salvar o arquivo, pode verificar se ele foi salvo corretamente executando o seguinte:

crontab -u username -l
plataformas
fonte
11
Esta solução funcionou para mim. Uma variante que surpreendentemente não funcionou para mim foi: #sudo crontab -u username -e
Andrew Andrew Min
7

Eu encontrei esse problema agora. Ao tentar resolver o problema, fui encaminhado aqui para o Google. Enfim, aqui está como eu resolvi.

usar

crontab -e

que você fez certo.

Pressione 'i' para inserir seu cronjob. Por exemplo,

1 * * * * /Users/Wong/Documents/abc.command

~

Lembre-se de pressionar return após a linha. Se você não pressionar return, será assim

1 * * * * /Users/Wong/Documents/abc.command

Pressione ESC e digite: wq para salvar e sair do arquivo. Deveria dizer "crontab: instalando novo crontab"

Percebi que se você não pressionar return após a sua linha, isso não salvará tudo.

Espero que ajude.

Richard Wong
fonte
Obrigado. Continuei saindo :q!enquanto sua solução :wqfazia toda a diferença.
KeitelDOG
11
Bem-vinda. :q!permite que você saia sem salvar enquanto :wqgrava no arquivo antes de sair .
Richard Wong
Eu alcanço os comandos do VIM, então agora eu sei muitas coisas que eu deveria saber!
KeitelDOG
1

Fechar a janela do terminal não salvará o crontab.

Como ele está usando o vim para criar o arquivo, consulte como usar o VIM e vá a partir daí.

O launchd é o método preferido (Apple) nas versões 10.5 e 10.6, mas você não perguntou sobre isso, apenas como criar o crontab.

eric.s
fonte
1

A janela que está mostrando é um editor vi. Nos sistemas unix tradicionais, vi é o editor padrão; parece que o Mac OS X manteve essa tradição.

Defina as variáveis ​​de ambiente EDITORe VISUALpara o nome (caminho completo, se não estiver $PATH) do seu editor favorito. Por exemplo

export EDITOR=emacs VISUAL=emacs
crontab -e

Essa configuração deve entrar no seu ~/.profile(assumindo que o Mac OS X leia esse arquivo quando você efetuar login; se houver uma maneira OSX de definir variáveis ​​de ambiente para uma sessão inteira, você poderá defini-las lá).

Gilles 'SO- parar de ser mau'
fonte
0

É a minha solução: primeiro modifique seu editor. export EDITOR=vim depois modifique .vimrc, autocmd filetype crontab setlocal nobackup nowritebackup ele funcionará.

Pegasus
fonte
O que isso faz? Eu, pelo menos, ficaria muito cauteloso ao alterar os arquivos de configuração, por assim dizer, de algum estranho anônimo no assunto que nem sequer explica o que as mudanças devem fazer.
David Richerby
Me desculpe por isso. Eu já encontrei esse problema antes, então, no Google, obtenho esse método, mas não consigo encontrar a postagem de origem. Então, acabei de postar esse método, funcionou para mim. E você também pode pesquisar no google esse método para saber por que ele funciona? Da próxima vez vou melhorar minha resposta. Desculpe pelo meu inglês ruim.
Pegasus