cron jobs - diferença entre editar “/ etc / crontab” e “crontab -e”

0

Tentando configurar um trabalho de cron diário para encerrar um servidor.

Uma fonte sugere a edição de /etc/crontab

Outra sugestão é crontab -e (com sudo )

Eu tentei o último e meu processo não foi executado (se bem me lembro, foi 30 23 * * * shutdown -h )

Eu também noto que no editor nano, ele estava trabalhando em um arquivo .tmp ? (topo do nano diz: /tmp/crontab.9zeTNt/crontab )

O que está acontecendo? Como posso consertar isso?

    
por ABC123 06.04.2017 / 18:43

2 respostas

0

Ao editar /etc/crontab , você está editando um crontab global

Quando você edita por meio de crontab -e , você está editando seu local e pessoal. O editor é iniciado em um arquivo temporário para que o arquivo possa ser verificado antes de ser gravado em seu local real.

Quando você editou, salvou e saiu do editor (você deve encerrar o processo para que o checagem de arquivo e a cópia ocorram) você precisa confirmar que recebeu uma mensagem pela qual o "novo crontab foi instalado"

    
por taifwa 06.04.2017 / 18:55
0

crontab -e :

Utilizável por usuário; abre a tabela cron para o usuário solicitante para edição (um arquivo temporário em /tmp/ , por exemplo, /tmp/crontab.<RANDOM>/crontab , como você viu) e, ao salvar o conteúdo, as verificações de integridade são feitas. Se passado, o arquivo é movido para /var/spool/cron/crontabs/ , ou seja, o diretório cron spool e salvo com o nome do arquivo sendo o mesmo que o nome do usuário solicitante. Como a tabela cron está sendo salva para o nome de usuário invocador (por exemplo, /var/spool/cron/crontabs/foobar , assumindo o nome de usuário foobar ); como todos os trabalhos de cron são executados como esse usuário, então nenhum campo de nome de usuário é necessário, cada entrada aqui precisa de 6 campos (você sabe que estes já presumo)

/etc/crontab :

Este é o sistema cron table ( crontab file), não há noção de chamar usuário aqui, pois somente o superusuário pode editar este arquivo, esse arquivo precisa de 7 campos, com um campo username adicional no espaço / tab 6º campo separado. Isso vale para todos os arquivos cron em /etc/cron.d/ também. Outra diferença com crontab -e é que você precisa abrir o arquivo como um argumento para um editor ou qualquer programa / shell que possa fazer E / S, enquanto com crontab -e o arquivo seria aberto com o editor mencionado como VISUAL ou EDITOR ou /usr/bin/editor - o primeiro ganha.

Por que seu comando falhou em cron :

Porque shutdown só pode ser executado como superusuário ou usuários capazes, e o usuário invocador provavelmente não se enquadra nessa categoria. Você pode colocar root em crontab em sudo crontab -e ou colocá-lo em /etc/crontab , normalmente sempre prefiro tabelas de usuários individuais.

Notas:

Além disso, cron usa um mínimo de PATH por padrão e também SHELL está definido como sh ( dash no Ubuntu); estes dois são comuns cron armadilhas.

Durante a depuração, sempre verifique syslog e redirecione os STDOUT e STDERR relevantes do comando para um arquivo para análise posterior.

    
por heemayl 06.04.2017 / 20:29