Saya hanya ingin tahu: apa tujuan memulai kembali setiap 30 menit?
Rafał Cieślak
Jawaban:
30
Cara terbaik untuk melakukan ini tergantung pada mengapa Anda ingin Ubuntu memulai kembali setiap setengah jam.
Jadi saya sarankan untuk mengedit pertanyaan Anda untuk menjelaskan mengapa Anda ingin melakukan ini.
Reboot setiap 30 menit, dan beri peringatan kepada pengguna sebelum setiap reboot:
Dengan asumsi orang mungkin menggunakan mesin, baik secara lokal maupun jarak jauh, yang terbaik adalah menghindari memulai kembali Ubuntu dari bawah mereka tanpa peringatan apa pun. Oleh karena itu, daripada menjadwalkan rebootperintah, saya sarankan menjadwalkan shutdownperintah sehingga memperingatkan pengguna.
Untuk menjadwalkan penghentian setiap setengah jam dengan peringatan 5 menit sebelumnya, tambahkan ini ke /etc/crontab:
Anda sebenarnya tidak perlu menambahkan baris pertama, yang merupakan komentar. Saya sudah memasukkannya untuk kejelasan - sesuatu seperti itu sudah ada di sana.
Ini akan menjadwalkan sistem untuk turun untuk reboot ( -r) lima menit setelah ( +5) perintah berjalan. Ini berjalan setiap pada setiap tanda setengah jam ( */30). Lihat man crondan man 5 crontab.
Ubah +5ke hal lain untuk mengubah berapa lama pengguna setelah diperingatkan tentang reboot.
0,30di bawah menit juga akan berfungsi, jika Anda lebih suka itu. (Demikian pula, jika setiap 20 menit, Anda bisa menulis */20atau 0,20,40.)
Pastikan /sbinada dalam PATHvariabel yang ditentukan di dekat bagian atas /etc/crontab. Kalau tidak, shutdown(under command) harus dipanggil sebagai /sbin/shutdown.
Perintah akan selalu berjalan pada tanda setengah jam, jika mesin hidup dan berjalan pada saat itu . Ini akan menyebabkan shutdown diumumkan setiap setengah jam dan dilakukan pada 5 menit dan 35 menit melewati jam.
Satu manfaat di sini adalah bahwa administrator dapat membatalkan shutdown yang baru saja diumumkan sudo shutdown -c.
Jika komputer mati selama waktu-waktu tertentu ketika perintah yang dijadwalkan dijalankan, itu tidak akan berjalan. Jika itu tidak cukup untuk kebutuhan Anda, Anda harus menjadwalkan reboot Anda secara berbeda. (Ini tidak spesifik untuk penggunaan shutdowntetapi akan berlaku sama jika Anda menjadwalkan reboot.) Dalam hal ini, harap edit pertanyaan Anda untuk menjelaskan kebutuhan spesifik Anda. (Saya akan merekomendasikan anacronini, tetapi interval waktu Anda terlalu pendek.)
Mempermudah administrator untuk mencegah reboot otomatis terjadi sama sekali:
Anda mungkin ingin mengatur ini agar mudah bagi administrator untuk menangguhkan semua reboot yang dijadwalkan secara otomatis:
Jadwal ini reboot dengan cara yang sama - setiap setengah jam, dengan peringatan lima menit - kecuali bahwa itu tidak akan menjadwalkan reboot jika file yang dipanggil noautorebootada di /etc.
File kontrol ini dapat dibuat oleh administrator dengan:
sudo touch /etc/noautoreboot
Itu dapat dihapus dengan:
sudo rm /etc/noautoreboot
Perhatikan bahwa apakah file itu ada , bukan apa yang dikandungnya, yang penting.
Jika reboot dijadwalkan dan pengguna diperingatkan, maka file dibuat, reboot (akan segera datang) masih akan terjadi.
Bagaimana cara kerjanya? Ini menggunakan hubungan pendek- dievaluasi atau operator ( ||) sebagai singkatan untuk:
Jika/etc/noautoreboot tidak ada, jalankan shutdown -r +5.
Jawaban ini menjelaskan bagaimana hubungan arus pendek dan dan atau operator dapat if- thenlogika. Untuk penjelasan singkat, intuitif, dan sangat informal, Anda dapat membaca perintah ini dengan cara:
Saya suka melakukan ini dengan memberi tahu Session Manager kami ingin reboot. Ini dapat dilakukan tanpa izin root, dan kami mendapatkan jendela bagus yang memperingatkan kita bahwa sistem akan di-reboot-bahkan kita dapat membatalkan reboot jika kita mau.
Cara Grafis - Metode yang Dipilih
Instal gnome-scheduledari Pusat Perangkat Lunak Ubuntu. Jika Anda tidak ingin menginstal sesuatu yang tambahan, lakukan dengan Terminal Way.
Buka gnome-scheduledari tanda hubung, buat tugas berulang baru, dan tetapkan opsi ini:
Simpan & keluar. Dengan asumsi Anda menggunakan nano(yang default), tekan Ctrl + o dan Ctrl + x .
Harap perhatikan bahwa ini tidak akan berfungsi jika DISPLAY Anda sebenarnya berbeda dengan :0, dan itulah alasan metode ini tidak disukai. Tapi, jujur, jika Anda me-reboot komputer Anda setiap 30 menit, DISPLAY Anda kemungkinan besar akan selalu demikian :0.
Tidak menggunakan Gnome atau Unity?
Kedua metode yang dijelaskan di atas tergantung pada beberapa komponen gnome, ditemukan pada sesi Gnome dan pada Unity. Jika Anda ingin melakukan ini di lingkungan lain (seperti KDE Kubuntu, LXDE Kubuntu ...) Anda sebaiknya mengganti perintah dengan yang ini sebagai gantinya:
Ini tidak akan meminta konfirmasi, dan akan memulai kembali secara tidak langsung, tetapi akan bekerja pada semua lingkungan, dengan asumsi Anda belum meng-uninstall ConsoleKit secara manual, tentu saja.
Ini tidak akan berfungsi, seperti yang rebootharus dijalankan root, dan ini menambahkannya ke crontab pribadi pengguna, jadi ini berjalan sebagai pengguna non-root. (Hal yang sama dengan sudo rebootjuga tidak akan berfungsi karena sudoakan mencoba untuk meminta kata sandi dan gagal.) /etc/crontabSeharusnya digunakan untuk ini (harap dicatat sintaksnya sedikit berbeda).
Eliah Kagan
1
Anda bisa mengeluarkan sudo crontab -edan kemudian membuat entri cron.
Tass
-3
Gunakan cronuntuk menjadwalkan pekerjaan setiap 30 menit. Arahkan pekerjaan itu pada skrip shell yang sederhana
reboot
di dalamnya.
Sejak cron dijalankan sebagai root, Anda tidak perlu melakukan sesuatu yang istimewa dalam hal izin.
Memperbarui
Ya saya lakukan, pada kenyataannya saya tidak pernah pada sistem saya mengizinkan crontab berbasis pengguna (Ada cara yang lebih baik untuk memungkinkan pengguna untuk melakukan tugas yang dijadwalkan tingkat pengguna) cron dirancang dari awal murni untuk otomatisasi sistem dan bukan bagi pengguna untuk menjadwalkan biasa tugas. Hal-hal seperti rotasi log (yang masih terjadi sampai sekarang)
Reboot HARUS dijalankan sebagai root untuk bekerja dengan benar, alternatifnya adalah mengatur itu sedikit lengket, sehingga ketika dijalankan sebagai pengguna biasa itu benar-benar dijalankan sebagai root dan bekerja seperti yang diharapkan, tetapi dalam melakukan itu Anda kemudian membuka server Anda hingga memungkinkan biasa pengguna untuk reboot itu sesuka hati.
Anda bahkan mungkin dapat mengotomatiskan panggilan ke SUDO, tetapi saya perlu menggali yang itu, tidak yakin apakah Anda dapat mengotomatiskan kebutuhan untuk kata sandi dengan SUDO (Saya tidak sering menggunakannya, saya lebih suka langsung langsung ke root shell menggunakan SU)
Jika Anda mengaturnya di sistem lebar crontab maka semuanya dijalankan sebagai root, jadi pernyataan saya akurat (saya hanya lupa menyebutkan bahwa sistem yang lebar harus digunakan)
Adapun pertanyaan Anda, "Mengapa Membungkusnya dengan Skrip?" yah, kenapa tidak? Jika OP memasukkannya ke dalam skrip shell, maka di beberapa titik di masa mendatang perlu menambahkannya, ia hanya menambahkan skrip, alih-alih harus membuka crontab mencari pekerjaan, menghapusnya, menggantinya dengan skrip shell, lalu tulis skrip dengan + lama baru.
Lebih dari 20 tahun sebagai Sys Admin / Developer bekerja dengan sistem sejauh Ultrix / Solaris dan bahkan VAX telah mengajarkan saya satu poin utama.
Jika Anda dapat membuatnya lebih mudah di awal, maka tetap mudah untuk seumur hidup.
Saya benar-benar tidak mendapatkan sikap "Minimalis" ini yang dimiliki oleh banyak admin modern, di mana melakukan sesedikit mungkin adalah kunci keberhasilan. Sebagian besar server hari ini dengan mudah 20 kali + lebih kuat dari apa pun yang pernah saya mulai, dan skenario seperti ini (Membungkus skrip shell) disarankan untuk digunakan, jadi benar-benar tidak ada argumen untuk tidak melakukannya sekarang.
Kecuali Anda benar-benar ingin menjalankan Unix / Linux, yang mana menandai semuanya ke entri cron, dan menyatukan semuanya dengan cara yang harus dilakukan :-)
Namun, saya ngelantur, dan juga mengerti bahwa banyak pria akhir-akhir ini dilemparkan ke dalam dan disuruh membuat semuanya berfungsi, karena itu mereka kekurangan waktu (dan biasanya kecenderungan) untuk duduk dan belajar tentang teknik baru (atau tua dalam kasus ini) atau bahkan ingin bermain dengan hal-hal ini di luar pekerjaan.
Saya pribadi, memiliki satu server di antara yang saya jalankan yang didedikasikan murni untuk saya mainkan, jadi saya dapat menguji hal-hal seperti ini ... yang lebih baik A atau B, jadi bukan tanpa alasan saya menyarankan pada salah satu ini.
Jawaban:
Cara terbaik untuk melakukan ini tergantung pada mengapa Anda ingin Ubuntu memulai kembali setiap setengah jam.
Jadi saya sarankan untuk mengedit pertanyaan Anda untuk menjelaskan mengapa Anda ingin melakukan ini.
Reboot setiap 30 menit, dan beri peringatan kepada pengguna sebelum setiap reboot:
Dengan asumsi orang mungkin menggunakan mesin, baik secara lokal maupun jarak jauh, yang terbaik adalah menghindari memulai kembali Ubuntu dari bawah mereka tanpa peringatan apa pun. Oleh karena itu, daripada menjadwalkan
reboot
perintah, saya sarankan menjadwalkanshutdown
perintah sehingga memperingatkan pengguna.Untuk menjadwalkan penghentian setiap setengah jam dengan peringatan 5 menit sebelumnya, tambahkan ini ke
/etc/crontab
:Anda sebenarnya tidak perlu menambahkan baris pertama, yang merupakan komentar. Saya sudah memasukkannya untuk kejelasan - sesuatu seperti itu sudah ada di sana.
-r
) lima menit setelah (+5
) perintah berjalan. Ini berjalan setiap pada setiap tanda setengah jam (*/30
). Lihatman cron
danman 5 crontab
.+5
ke hal lain untuk mengubah berapa lama pengguna setelah diperingatkan tentang reboot.0,30
di bawah menit juga akan berfungsi, jika Anda lebih suka itu. (Demikian pula, jika setiap 20 menit, Anda bisa menulis*/20
atau0,20,40
.)/sbin
ada dalamPATH
variabel yang ditentukan di dekat bagian atas/etc/crontab
. Kalau tidak,shutdown
(undercommand
) harus dipanggil sebagai/sbin/shutdown
.Perintah akan selalu berjalan pada tanda setengah jam, jika mesin hidup dan berjalan pada saat itu . Ini akan menyebabkan shutdown diumumkan setiap setengah jam dan dilakukan pada 5 menit dan 35 menit melewati jam.
sudo shutdown -c
.shutdown
tetapi akan berlaku sama jika Anda menjadwalkanreboot
.) Dalam hal ini, harap edit pertanyaan Anda untuk menjelaskan kebutuhan spesifik Anda. (Saya akan merekomendasikananacron
ini, tetapi interval waktu Anda terlalu pendek.)Mempermudah administrator untuk mencegah reboot otomatis terjadi sama sekali:
Anda mungkin ingin mengatur ini agar mudah bagi administrator untuk menangguhkan semua reboot yang dijadwalkan secara otomatis:
Jadwal ini reboot dengan cara yang sama - setiap setengah jam, dengan peringatan lima menit - kecuali bahwa itu tidak akan menjadwalkan reboot jika file yang dipanggil
noautoreboot
ada di/etc
.File kontrol ini dapat dibuat oleh administrator dengan:
Itu dapat dihapus dengan:
Perhatikan bahwa apakah file itu ada , bukan apa yang dikandungnya, yang penting.
Jika reboot dijadwalkan dan pengguna diperingatkan, maka file dibuat, reboot (akan segera datang) masih akan terjadi.
Bagaimana cara kerjanya? Ini menggunakan hubungan pendek- dievaluasi atau operator (
||
) sebagai singkatan untuk:Jawaban ini menjelaskan bagaimana hubungan arus pendek dan dan atau operator dapat
if
-then
logika. Untuk penjelasan singkat, intuitif, dan sangat informal, Anda dapat membaca perintah ini dengan cara:Lihat
man [
untuk melihat bagaimana tes itu sendiri dilakukan.sumber
Saya suka melakukan ini dengan memberi tahu Session Manager kami ingin reboot. Ini dapat dilakukan tanpa izin root, dan kami mendapatkan jendela bagus yang memperingatkan kita bahwa sistem akan di-reboot-bahkan kita dapat membatalkan reboot jika kita mau.
Cara Grafis - Metode yang Dipilih
Instal
gnome-schedule
dari Pusat Perangkat Lunak Ubuntu. Jika Anda tidak ingin menginstal sesuatu yang tambahan, lakukan dengan Terminal Way.Buka
gnome-schedule
dari tanda hubung, buat tugas berulang baru, dan tetapkan opsi ini:dbus-send --print-reply --dest="org.gnome.SessionManager" /org/gnome/SessionManager org.gnome.SessionManager.Reboot
Biarkan opsi lain pada nilai standarnya. Klik Tambah .
Cara Terminal - Tidak Perlu untuk Perangkat Lunak Tambahan
Jalankan dari terminal:
Tambahkan baris ini:
Simpan & keluar. Dengan asumsi Anda menggunakan
nano
(yang default), tekan Ctrl + o dan Ctrl + x .Harap perhatikan bahwa ini tidak akan berfungsi jika DISPLAY Anda sebenarnya berbeda dengan
:0
, dan itulah alasan metode ini tidak disukai. Tapi, jujur, jika Anda me-reboot komputer Anda setiap 30 menit, DISPLAY Anda kemungkinan besar akan selalu demikian:0
.Tidak menggunakan Gnome atau Unity?
Kedua metode yang dijelaskan di atas tergantung pada beberapa komponen gnome, ditemukan pada sesi Gnome dan pada Unity. Jika Anda ingin melakukan ini di lingkungan lain (seperti KDE Kubuntu, LXDE Kubuntu ...) Anda sebaiknya mengganti perintah dengan yang ini sebagai gantinya:
Ini tidak akan meminta konfirmasi, dan akan memulai kembali secara tidak langsung, tetapi akan bekerja pada semua lingkungan, dengan asumsi Anda belum meng-uninstall ConsoleKit secara manual, tentu saja.
sumber
Jalankan
sudo crontab -e
dari baris perintah dan tambahkan baris ini ke file:0,30 * * * * reboot
Ini memberitahu sistem untuk menjalankan perintah
reboot
setiap 30 menit sebagai root. Untuk ikhtisar sintaks waktu, lihat di sini: http://linuxmoz.com/crontab-syntax-tutorial/sumber
reboot
harus dijalankanroot
, dan ini menambahkannya ke crontab pribadi pengguna, jadi ini berjalan sebagai pengguna non-root. (Hal yang sama dengansudo reboot
juga tidak akan berfungsi karenasudo
akan mencoba untuk meminta kata sandi dan gagal.)/etc/crontab
Seharusnya digunakan untuk ini (harap dicatat sintaksnya sedikit berbeda).sudo crontab -e
dan kemudian membuat entri cron.Gunakan
cron
untuk menjadwalkan pekerjaan setiap 30 menit. Arahkan pekerjaan itu pada skrip shell yang sederhanadi dalamnya.
Sejak
cron
dijalankan sebagai root, Anda tidak perlu melakukan sesuatu yang istimewa dalam hal izin.Memperbarui
Ya saya lakukan, pada kenyataannya saya tidak pernah pada sistem saya mengizinkan crontab berbasis pengguna (Ada cara yang lebih baik untuk memungkinkan pengguna untuk melakukan tugas yang dijadwalkan tingkat pengguna) cron dirancang dari awal murni untuk otomatisasi sistem dan bukan bagi pengguna untuk menjadwalkan biasa tugas. Hal-hal seperti rotasi log (yang masih terjadi sampai sekarang)
Reboot HARUS dijalankan sebagai root untuk bekerja dengan benar, alternatifnya adalah mengatur itu sedikit lengket, sehingga ketika dijalankan sebagai pengguna biasa itu benar-benar dijalankan sebagai root dan bekerja seperti yang diharapkan, tetapi dalam melakukan itu Anda kemudian membuka server Anda hingga memungkinkan biasa pengguna untuk reboot itu sesuka hati.
Anda bahkan mungkin dapat mengotomatiskan panggilan ke SUDO, tetapi saya perlu menggali yang itu, tidak yakin apakah Anda dapat mengotomatiskan kebutuhan untuk kata sandi dengan SUDO (Saya tidak sering menggunakannya, saya lebih suka langsung langsung ke root shell menggunakan SU)
Jika Anda mengaturnya di sistem lebar crontab maka semuanya dijalankan sebagai root, jadi pernyataan saya akurat (saya hanya lupa menyebutkan bahwa sistem yang lebar harus digunakan)
Adapun pertanyaan Anda, "Mengapa Membungkusnya dengan Skrip?" yah, kenapa tidak? Jika OP memasukkannya ke dalam skrip shell, maka di beberapa titik di masa mendatang perlu menambahkannya, ia hanya menambahkan skrip, alih-alih harus membuka crontab mencari pekerjaan, menghapusnya, menggantinya dengan skrip shell, lalu tulis skrip dengan + lama baru.
Lebih dari 20 tahun sebagai Sys Admin / Developer bekerja dengan sistem sejauh Ultrix / Solaris dan bahkan VAX telah mengajarkan saya satu poin utama.
Jika Anda dapat membuatnya lebih mudah di awal, maka tetap mudah untuk seumur hidup.
Saya benar-benar tidak mendapatkan sikap "Minimalis" ini yang dimiliki oleh banyak admin modern, di mana melakukan sesedikit mungkin adalah kunci keberhasilan. Sebagian besar server hari ini dengan mudah 20 kali + lebih kuat dari apa pun yang pernah saya mulai, dan skenario seperti ini (Membungkus skrip shell) disarankan untuk digunakan, jadi benar-benar tidak ada argumen untuk tidak melakukannya sekarang.
Kecuali Anda benar-benar ingin menjalankan Unix / Linux, yang mana menandai semuanya ke entri cron, dan menyatukan semuanya dengan cara yang harus dilakukan :-)
Namun, saya ngelantur, dan juga mengerti bahwa banyak pria akhir-akhir ini dilemparkan ke dalam dan disuruh membuat semuanya berfungsi, karena itu mereka kekurangan waktu (dan biasanya kecenderungan) untuk duduk dan belajar tentang teknik baru (atau tua dalam kasus ini) atau bahkan ingin bermain dengan hal-hal ini di luar pekerjaan.
Saya pribadi, memiliki satu server di antara yang saya jalankan yang didedikasikan murni untuk saya mainkan, jadi saya dapat menguji hal-hal seperti ini ... yang lebih baik A atau B, jadi bukan tanpa alasan saya menyarankan pada salah satu ini.
sumber