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?


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

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.


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.


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á).


0

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


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
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.