Comando de execução na inicialização no crontab

15

Eu queria rodar um comando no nosso linux após a reinicialização, vi que isso pode ser feito usando o crontab. Eu queria executar este comando

sudo ifdown eth0 && sudo ifup -v eth0

no crontab eu posso fazer:

@reboot sudo ifdown eth0 && sudo ifup -v eth0

ou preciso armazená-lo em um script?

obrigado

    
por Lottie 17.02.2016 / 22:08

2 respostas

25

Algumas notas aqui antes disso funcionariam:

  1. Não use sudo em um cron job. Em vez disso, edite o crontab de root em vez do seu, por exemplo sudo crontab -e e, em seguida, insira comandos sem sudo .
  2. Como @mikewhatever mencionou, este é um uso estranho para cron e provavelmente seria melhor colocado em /etc/rc.local antes da linha exit 0 .
  3. Se você nos informar exatamente o que está procurando, poderemos direcioná-lo para uma opção de registro ou configuração (reiniciar os serviços de rede na inicialização parecerá um pouco invasivo).
  4. Na maioria dos sistemas @reboot também deve ser executado após um encerramento ou falha, mas existem diferentes implementações cron para YMMV. Eu vi comentários em lugares diferentes, afirmando ambos.

EDITAR (2016/02/17): Removida a marcação incorreta em caminhos absolutos; kudos @muru
EDITAR (2016/10/17): Nota de desligamento adicionada
EDIT (2017/09/11): nota de desligamento revisada. Não tenho certeza disso.

    
por TheSchwa 17.02.2016 / 22:14
4

Você pode usar o crontab para isso, mas se você usar sudo , precisará da regra NOPASSWD em sudoers para fazer isso. (Veja Como executar um cron job usando o comando sudo .)

Seria mais simples editar /etc/rc.local e adicionar esses comandos antes da linha exit 0 .

    
por muru 17.02.2016 / 22:13

Tags