matikan server linux dan nyalakan secara otomatis pada waktu tertentu

8

Saya memiliki tugas di mana dosen meminta saya untuk membuat skrip bash untuk mematikan server pada jam 11 malam dan menyalakannya pada jam 6 pagi. Saya dapat melakukannya dengan menggunakan sudo shutdown -h 23:00dan berfungsi. Tetapi masalahnya adalah bahwa saya tidak tahu bagaimana menyalakannya secara otomatis pada jam 6 pagi, saya tidak dapat menemukan perintah yang bisa melakukan itu. Bantuan apa pun akan dihargai.

JLWK
sumber
Apakah Anda yakin tugas Anda meminta Anda mematikan seluruh mesin (dan kembali lagi), atau hanya satu proses server? Secara nyata, mesin fisik perlu dinyalakan untuk melakukan apa saja.
Jos
Sejujurnya, saya juga tidak tahu, saya juga berpikir ini tidak mungkin. Dosen sangat tidak jelas tentang tugas singkat dan itu membuat saya gila juga.
JLWK

Jawaban:

10

Pertama, Anda perlu memeriksa apakah Anda dapat menggunakan wakealarm RTC untuk membangunkan sistem Anda:

sudo sh -c "echo 0 > /sys/class/rtc/rtc0/wakealarm"
sudo sh -c "echo `date '+%s' -d '+ 3 minutes'` > /sys/class/rtc/rtc0/wakealarm"
cat /sys/class/rtc/rtc0/wakealarm

Sekarang periksa:

cat /proc/driver/rtc

Ini akan mengembalikan daftar parameter. Periksa alrm_time3 menit ke depan dan alrm_datehari ini.

Jika berhasil, buat /usr/local/sbin/shutwakeskrip:

#!/bin/bash 
sh -c "echo 0 > /sys/class/rtc/rtc0/wakealarm" 
sh -c "echo `date '+%s' -d '+ 7 hours'` > /sys/class/rtc/rtc0/wakealarm" 
shutdown -h now

Terakhir edit crontab pengguna Anda , ketik crontab -edan tambahkan baris berikut:

0 23 * * * /usr/local/sbin/shutwake
Sylvain Pineau
sumber
Saya bergantung pada pengaturan jam BIOS, periksa /etc/default/rcSuntuk melihat apakah UTC diatur atau tidak.
Sylvain Pineau
Yah, saya mencoba persis sama dengan apa yang Anda tulis di atas. Itu tidak berhasil :(. -Debian 8
Bálint Pap