Bagaimana cara mengkonfigurasi Ubuntu untuk reboot setiap hari pada waktu tertentu?

11

Menggunakan terminal atau file bash, bagaimana saya bisa mengkonfigurasi Ubuntu untuk reboot setiap hari di (misalnya misalnya) jam 3 pagi?

Dengan kata lain, saya ingin menjadwalkan reboot otomatis melalui terminal.

Saya belum dapat menemukan apa pun yang terkait dengan ini di Google atau AskUbuntu, dan saya cukup baru di Ubuntu secara umum (baru saja mendapatkan Raspberry Pi baru saya).

Mathias Lykkegaard Lorenzen
sumber

Jawaban:

13

Edit entri crontab menggunakan crontab -eperintah (secara default ini akan mengedit crontab pengguna yang sedang masuk saat ini) dan tambahkan baris berikut:

0 3 * * * echo $PASSWD | sudo -S reboot
#change $PASSWD with your password

Simpan file dan periksa entri crontab baru dengan crontab -l.

Jika Anda hanya ingin menggunakan:

0 3 * * * sudo reboot

sebagai crontab, ini tidak bekerja secara normal dan Anda harus memeriksa posting ini untuk melihat bagaimana Anda membuatnya bekerja.

Atau, sederhana menambahkan crontab ke file crontab pengguna root yang menawarkan path lengkap untuk rebootperintah menggunakan sudo crontab -e:

0 3 * * * /sbin/reboot
Radu Rădeanu
sumber
Tidak bisakah Anda meletakkan ini di crontab root dan tidak terlalu khawatir tentangecho $PASSWD
Dan
Saya tidak tahu ini. Apakah ini bug dari cron atau normal? Maksud saya, jika Anda mengedit crontab sebagai root, maka pekerjaan hanya akan dilakukan jika Anda login sebagai root? Saya pikir ini salah. (atau seharusnya).
NickTux
@ RaduRădeanu Itu tidak benar. Root cronjobs akan berjalan tanpa login sebagai root.
OrangeTux
@OrangeTux Anda benar, maaf, saya mengatakan itu karena saya diuji tanpa memberikan path lengkap untuk rebootperintah. Kalau tidak, tidak akan bekerja. Lihat hasil edit baru saya.
Radu Rădeanu
@Nik. Saya salah, lihat komentar di atas .
Radu Rădeanu
1

Perhatikan bahwa memasukkan kata sandi teks-jelas dalam file teks bukan ide yang baik, jadi sebaiknya jalankan pekerjaan ini sebagai root dari awal. Biasanya, daripada mengedit crontab root melalui crontabperintah, yang meninggalkan entri /var/spool/cron/crontabs, lokasi yang agak samar, saya lebih suka memasukkannya secara eksplisit /etc/cron.d. Entri dalam cron.d dijalankan sebagai entri crontab sistem, diperlakukan sebagai file config sehingga mereka harus selamat dari reboot sistem, pembaruan dan peningkatan, dan Anda dapat secara eksplisit menentukan pengguna yang berjalan:

echo "0 3 * * * root /sbin/shutdown -h 5 'System will reboot in 5 minutes'" | sudo tee /etc/cron.d/reboot-at-3-am

Jika Anda tidak memerlukan waktu tertentu, melainkan hanya ingin sistem melakukan reboot sekali setiap hari, tambahkan skrip yang dapat dieksekusi dan skrip /etc/cron.dailyakan dijalankan secara otomatis pada waktu yang telah ditentukan (waktu sistem secara default 6:25 pagi):

echo "/sbin/shutdown -h 5 'System will reboot in 5 minutes'" | sudo tee /etc/cron.daily/reboot-me

Perhatikan bahwa alih-alih hanya me-reboot sistem tanpa peringatan, saya menetapkan peringatan 5 menit, jadi jika ada yang masuk, mereka memiliki kesempatan untuk menyelamatkan pekerjaan mereka, atau bahkan mengganggu shutdown dengan sudo shutdown -c, daripada sistem menarik off dari bawah mereka. Anda dapat menyesuaikan ini sesuai, jika Anda ingin memberikan lebih banyak peringatan (misalnya, gunakan shutdown -h 60dan jalankan perintah pada jam 2:00 pagi dan Anda akan memberi pengguna peringatan 1 jam yang murah hati).

Ini berdasarkan pengalaman masa lalu saya; di beberapa titik Anda akan masuk log bekerja ketika entri crontab berjalan, dan jika itu hanya reboot tanpa peringatan Anda akan menjadi panda yang sangat sedih.

roadmr
sumber
-1

Mengapa Anda ingin - atau perlu melakukan ini? Walaupun cukup sederhana untuk dilakukan, hampir pasti ada solusi yang lebih baik dengan Linux yang tidak melibatkan reboot. Tidak seperti Windows, OS berbasis Linux tidak memerlukan reboot untuk hampir semua hal kecuali upgrade kernel.

Jika Anda menjelaskan apa yang ingin Anda capai, kami mungkin dapat membantu Anda lebih baik.

Jack Knight
sumber
3
Dia ingin me-reboot komputer setiap malam sehingga akan me
Michael Butler