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.