Como desligar o servidor Ubuntu do script shell?

0

Eu escrevi um script de shell simples para desligar um servidor Ubuntu. Então eu criei um cron job para executar este script às 23:59 todos os dias.

#!/bin/bash
sudo shutdown -h now

Recebi esta mensagem de erro:

sudo: no tty present and no askpass program specified

quando removi o sudo do código, recebi uma mensagem de erro diferente:

/home/qinking126/scripts/test.sh: line 3: shutdown: command not found

Como resolvo isso?

    
por qinking126 04.02.2014 / 01:41

2 respostas

2

Certifique-se de que o script cron seja executado como root e substitua shutdown pelo caminho completo fornecido a você por:

command -v shutdown

No Ubuntu GNU / Linux (e no GNU / Linux em geral), deve ser /sbin/shutdown :

#!/bin/bash
/sbin/shutdown -h now

Observe que adicionar um arquivo chamado /etc/cron.d/midnight-shutdown e contendo:

59 23   * * *   root    test -x /sbin/shutdown && /sbin/shutdown -h now

deve fazer o que quiser sem a sobrecarga de um script completo. Aqui está o código para instalar isso rapidamente:

echo '59 23 * * *   root    test -x /sbin/shutdown && /sbin/shutdown -h now' \
    | sudo tee '/etc/cron.d/midnight-shutdow'
sudo service cron reload

EDIT: Para responder ao seu comentário, outra possibilidade de configuração é:

echo '59 23 * * *   test -x /sbin/shutdown && /sbin/shutdown -h now' \
    | sudo tee '/etc/cron.d/midnight-shutdow'
sudo service cron reload

É muito estranho que cron imprima esta mensagem de erro.

    
por 04.02.2014 / 01:55
0

Também podemos usar o comando "sudo halt" para desligar o Ubuntu Server.

    
por 28.10.2014 / 07:15