Bagaimana cara mematikan server ubuntu dari skrip shell?


0

Saya menulis skrip shell sederhana untuk mematikan server ubuntu. Lalu saya membuat pekerjaan cron untuk mengeksekusi skrip ini pada 23:59 setiap hari.

#!/bin/bash
sudo shutdown -h now

Saya mendapat pesan kesalahan ini:

sudo: no tty present and no askpass program specified

ketika saya menghapus sudo dari kode, saya mendapat pesan kesalahan yang berbeda:

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

Bagaimana saya mengatasi ini?

Jawaban:


3

Pastikan skrip cron dijalankan sebagai root, dan ganti shutdown oleh path lengkap yang diberikan kepada Anda oleh:

command -v shutdown

Pada Ubuntu GNU / Linux (dan GNU / Linux secara umum), seharusnya /sbin/shutdown :

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

Perhatikan bahwa menambahkan file bernama like /etc/cron.d/midnight-shutdown dan mengandung:

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

harus melakukan apa yang Anda inginkan tanpa overhead skrip bash penuh. Berikut adalah kode untuk menginstal ini dengan cepat:

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

EDIT: Untuk membalas komentar Anda, kemungkinan pengaturan lain adalah:

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

Cukup aneh bahwa cron mencetak pesan kesalahan ini kepada Anda.


mendapat pesan kesalahan ini "/ bin / sh: 1: root: not found"
qinking126

menambahkan kemungkinan pengaturan lain.
Biapy

0

Kita juga dapat menggunakan perintah "sudo halt" untuk mematikan Server Ubuntu.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.