Menjadwalkan reboot pada server Ubuntu yang terletak jarak jauh

17

Saya bekerja di server ubuntu yang terletak di tempat di mana saya biasanya tidak pergi. Saya menggunakan ssh di atas openvpn untuk mengaksesnya. Mesin ini memiliki beberapa antarmuka kabel, banyak rute statis dan beberapa gateway standar ke WAN. Saya sering mengubah alamat antarmuka dan rute. Sebagian besar perubahan yang saya lakukan sementara - reboot akan mengatur ulang percobaan yang telah saya lakukan. Dalam beberapa kasus beberapa modifikasi tersebut salah, dan mesin menjadi offline. Dalam kasus seperti itu saya harus memanggil seseorang di tempat server berada untuk mengirim mesin ke reboot.

Sekarang saya ingin menjadwalkan reboot - katakanlah setelah 2 jam mesin harus masuk ke siklus reboot. Dan dalam dua jam itu saya bisa melakukan eksperimen sementara apa pun yang saya inginkan. Jika semua perubahan sementara berhasil maka saya harus dapat mencegah reboot "afer 2 jam" terjadi. Jadi yang saya inginkan adalah:

  1. Bagaimana cara memberitahu server untuk reboot setelah waktu yang pasti?
  2. Jika saya memutuskan bahwa mesin tidak boleh reboot, saya harus bisa membatalkannya.
nixnotwin
sumber

Jawaban:

14

Pada tipe terminal shutdown -r 10 Waiting 10 minutes before the restart&yang akan membuat server reboot dalam 10 menit, menyiarkan pesan yang menjelaskan itu dan menekan control + c akan mengganggu permintaan reboot.

Pada tipe terminal shutdown -r 18:00 Rebooting at 18:00 hours&yang akan membuat server reboot pada pukul 18:00, akan menyiarkan pesan yang menjelaskan hal itu dan dapat terganggu dengan kontrol + c.

Anda juga dapat menghentikan permintaan shutdown / reboot pada terminal "berfungsi" Anda shutdown -a.

Bruno Pereira
sumber
2
Ini agak bermasalah karena bersifat interaktif dan memblokir shell yang Anda jalankan. Saya tidak yakin apakah ini akan berhasil diprediksi di atas SSH jika sesi turun.
Alain O'Dea
Saya tidak dapat menemukan kombinasi nohupdan sudoyang akan membuat ini berfungsi jika dijalankan dari sesi ssh normal sebagai pengguna grup admin normal.
HDave
Mungkinkah ini dijalankan dalam kombinasi dengan Layar untuk memungkinkan perintah diterapkan dan sesi ssh dijatuhkan?
Andy Davies
30

Anda juga dapat menggunakan atuntuk menjadwalkan reboot. Misalnya sudo at 22:00menjalankan perintah pada 22:00 sebagai root. Lalu masukkan perintah yang ingin Anda jalankan: /sbin/shutdown -r nowdan akhiri dengan ctrl-d. Jika Anda memutuskan untuk tidak menjalankan perintah ini, jalankan sudo atrm 1untuk menghapus yang pertama dalam atantrian. Dengan sudo atqAnda dapat melihat antrian.

kimda
sumber
Solusi ini sempurna!
Sukima
5
Ini harus ditandai sebagai jawaban yang benar! The atkeluarga perintah adalah sesuatu yang setiap admin server harus tahu.
HDave
2
jika Anda masih baru at, pertama jalankan sudo at 22:00. Ini membawa Anda ke semacam shell. Kemudian Anda memasukkan perintah, dan ctrl-duntuk keluar. Lihat juga mixeduperic.com/ubuntu/…
Tim Richardson