crontab -e não abre o crontab para este usuário

3

Eu tinha configurado alguns trabalhos usando crontab alguns meses atrás e eles estavam funcionando bem até alguns dias atrás, eu notei que um não tinha rodado. Eu apenas tentei verificar o arquivo crontab usando o usuário que criou as tarefas, usando crontab -e , e nenhum arquivo é aberto. O terminal rapidamente passa rapidamente pela tela e depois volta para a tela onde eu havia entrado no comando. Ele vai e volta rápido demais para eu ver o que está lá.

Eu tenho (como sudo) verificado em /var/spool/cron/crontab/ e vejo que existe um arquivo para o usuário mencionado, que contém o básico:

> DO NOT EDIT THIS FILE - edit the master and reinstall.
> (- installed on Wed Mar 21 00:12:22 2018)
> (Cron version -- $Id: crontab.c,v 2.13 1994/01/17 03:20:37 vixie Exp $)

Noto que a data de hoje é praticamente exatamente onde meus trabalhos do cron pararam! Talvez o sistema precise de um reinício por algum motivo ...

Eu reiniciei a máquina e tentei novamente: crontab -e , desta vez eu recebi o seguinte erro vindo de Emacs (o editor padrão, eu acredito):

emacsclient: can't find socket; have you started the server?
To start the server in Emacs, type "M-x server-start".

Warning: due to a long standing Gtk+ bug
http://bugzilla.gnome.org/show_bug.cgi?id=85715

.... [truncated]

Então eu mudei o editor padrão para nano :

user@user:~$ select-editor 

Select an editor.  To change later, run 'select-editor'.
  1. /bin/ed
  2. /bin/nano        <---- easiest
  3. /usr/bin/code
  4. /usr/bin/emacs24
  5. /usr/bin/vim.tiny

Choose 1-5 [2]: 2

... e tentei novamente:

user@user:~$ crontab -e

Isso apenas deu o mesmo problema descrito inicialmente - pareceu abrir um arquivo em breve e fechá-lo novamente.

Existe outra maneira de depurar e (espero) recuperar o arquivo original do crontab? Os trabalhos eram complexos para serem configurados (veja a nota 2 abaixo): - /

Eu tentei encontrar tarefas crontab em execução usando esta resposta , então o cron está rodando, mas e as tarefas do meu crontab?

user@user:~$  ps -o pid,sess,cmd afx | egrep "( |/)cron( -f)?$"
1077  1077 /usr/sbin/cron -f

Outras notas:

  • o anacron está instalado
  • as próprias tarefas cron são definidas no arquivo crontab, não por meio de scripts externos
  • um cronjob usou um env virtual, que ainda existe e funciona e eu posso executar o trabalho manualmente

Atualizações:

A saída de algumas verificações adicionais (solicitadas principalmente pelo @steeldriver)

user@user:~$ ls -l $(which crontab)
-rwxr-sr-x 1 root crontab 36080 Apr  5  2016 /usr/bin/crontab

O setuid s está lá? Eu comparei a ping , porque eu li que deveria ter algum tipo de permissões elevadas:

user@user:~$ ls -l $(which ping)
-rwsr-xr-x 1 root root 44168 Mai  7  2014 /bin/ping

Executando crontab como sudo:

user@user:~$ sudo crontab -e
[sudo] password for user: 
no crontab for root - using an empty one
No modification made

Experimentando o comando desejado como sudo, usando a configuração do usuário:

user@user:~$ sudo -H -u user bash -c 'crontab -e'
No modification made

Verificando se as permissões para o spool inteiro são as esperadas:

user@user:~$ ls -ld /tmp
drwxrwxrwt 16 root root 36864 Apr  1 14:22 /tmp
user@user:~$ sudo namei -l /var/spool/cron/crontabs/$USER
f: /var/spool/cron/crontabs/user
drwxr-xr-x root    root    /
drwxr-xr-x root    root    var
drwxr-xr-x root    root    spool
drwxr-xr-x root    root    cron
drwx-wx--T root    crontab crontabs
-rw------- user    crontab user
    
por n1k31t4 01.04.2018 / 12:37

1 resposta

0

Só para postar o resultado e talvez ajudar alguém que vê a mesma coisa - este é um resumo dos comentários abaixo da minha pergunta original

Usar crontab -e foi o começo do problema - ele não fez nada.

Acontece que a configuração do Emacs foi a causa (mas eu suponho que qualquer outro editor poderia de alguma forma causar esse problema).

Seguindo o conselho do @steeldriver de tentar EDITOR=/bin/nano crontab -e (tentar forçar o crontab a usar nano não ajudou.

Gravei uma tela e parei no quadro onde um arquivo é aberto rapidamente - era a tela inicial do Emacs.

Havia configurações em ~/.profile , o que fazia o daemon do Emacs seqüestrar chamadas para um editor. Depois de remover essas configurações e reiniciar, crontab -e enquanto o usuário trabalhava.

As configurações pareciam ser uma versão copiada incorretamente deste (encontrado no wiki do Emacs):

export ALTERNATE_EDITOR=""
export EDITOR="emacsclient -t"                  # $EDITOR should open in terminal
export VISUAL="emacsclient -c -a emacs"         # $VISUAL opens in GUI with non-daemon as alternate

[Não me lembro onde foi o erro real]

O arquivo crontab original foi perdido. Eu ainda não entendi como isso aconteceu

    
por n1k31t4 04.04.2018 / 15:12