bagaimana saya bisa menjadwalkan reboot di Linux?


38

Saya baru di Linux dan saya ingin menjadwalkan reboot pada tengah malam. Bagaimana saya harus melakukannya?

Suntingan:

  • Maaf saya tidak memasukkan detail lengkap. Saya ingin reboot setiap Sabtu ke-3 bulan ini pukul 23:30.

  • Saya tidak tahu apa yang salah tetapi saya tidak dapat menemukan crontab. Apa yang saya miliki adalah cron.d; cron.daily; cron.weekly; cron.monthly;

Saya minta maaf untuk pertanyaan noob. Tolong bantu saya. Terima kasih.


2
Pertanyaan sebenarnya adalah mengapa Anda ingin melakukan ini secara teratur, apakah Anda memiliki aplikasi yang bocor atau apa? Jika Anda menjadwalkan reboot reguler untuk menyelesaikan masalah maka Anda mungkin memiliki masalah yang lebih besar ...
JamesHannah

1
Apakah Anda ingin reboot setiap malam?
Matt Simmons

4
Saya tidak memilih, karena ini adalah keputusan kebijakan (dan saya pikir reboot malam hari agak berlebihan), tetapi secara teratur menjadwalkan reboot di suatu infrastruktur adalah cara yang layak untuk memastikan bahwa mesin memiliki kernel terbaru dan semua layanan yang berjalan ditambal. Saya telah mendengar batas waktu operasional 3 bulan sebagai jalan tengah yang baik.
Matt Simmons

Jika ini adalah komentar pada pertanyaan, bukan jawaban, saya akan menjawabnya. Sebenarnya saya akan berubah pikiran, karena pertanyaannya ambigu tentang apakah ini satu kali atau hal biasa. :)
intuited

3
/etc/crontabentri seperti 30 23 15-21 * 6 /sbin/shutdown -r nowakan reboot pada pukul 23:30 pada hari Sabtu ketiga setiap bulan.
Chris S

Jawaban:


45

Ketik shutdown -r 0:00dan itu akan reboot pada tengah malam.

Jika Anda ingin reboot setiap malam, tambahkan entri cron menggunakan crontab -e sebagai root untuk menjalankan shutdown -r setiap tengah malam

@midnight shutdown -r now

3
Argumen waktu adalah wajib, Anda dapat menggunakan now.
Tobu

Tidak ... jika dia ingin perintah satu kali dan ingin mengetik perintah sekarang, dia harus menambahkan waktu!
radius

3
@Tidak, perlu argumen waktu seperti nowdi baris crontab.
Dijeda sampai pemberitahuan lebih lanjut.

Oups ya maaf, saya salah membaca komentar Tobu dan berpikir ia mengatakan 0:00 tidak berguna dalam perintah pertama ... Saya diedit untuk memperbaiki (dan Massimo juga menjawab)
radius

Saya akan tertarik mengetahui @{command}variabel apa yang tersedia.
Greg

16

Menggunakan crontab.

http://en.wikipedia.org/wiki/Crontab

Menambahkan entri ini ke / etc / crontab harus dilakukan:

0 0 * * * /sbin/shutdown -r now

3
shutdownmembutuhkan argumen waktu sepertinow
Dijeda hingga pemberitahuan lebih lanjut.

1
Ini akan melakukan reboot setiap malam. Saya tidak yakin apakah ini yang dia inginkan.
cstamas

1
Pertanyaan aslinya membuatnya terdengar seperti dia ingin reboot setiap malam. Dia benar-benar ingin itu reboot setiap Sabtu 3, yang masih akan paling mudah dengan crontab
Chris S

saya tidak tahu apa yang salah tetapi saya tidak dapat menemukan crontab ..? apa yang saya miliki adalah cron.d; cron.daily; cron.weekly; cron. setiap bulan; Saya minta maaf untuk pertanyaan noob. Tolong bantu saya. terima kasih
klauriens

Itu tergantung pada distribusi yang Anda gunakan, tetapi biasanya Anda harus menemukan file yang disebut "crontab" di direktori / etc sistem Anda. Anda juga harus dapat memeriksa crontab saat ini menggunakan perintah "crontab -l", dan mengeditnya menggunakan "crontab -e".
Massimo

13

Pilihan lain adalah perintah at , tersedia di banyak distribusi Linux. Lihat halaman manual untuk info lebih lanjut, tetapi sintaks umum untuk tujuan Anda adalah:

echo "reboot" | pada 0000 27 Juni

Mengutip halaman manual OS X:

at - mengeksekusi perintah pada waktu tertentu

Kedengarannya seperti apa yang kita bicarakan. ;)


1

Sejauh yang saya tahu, Anda tidak dapat menggunakan cron untuk menjadwalkan tugas untuk "Jumat terakhir setiap bulan" atau "Kamis ketiga di setiap bulan". Apa yang dapat Anda lakukan, betapapun jeleknya tampaknya, adalah menjalankan skrip setiap hari Sabtu pukul 23:30 dan kemudian membuat skrip ini menentukan apakah Sabtu khusus ini adalah Sabtu ketiga dalam seminggu (dapat dilakukan menggunakan tanggal dan mungkin perintah cal) .

Saya harap ini membantu. Saya belum menemukan solusi yang bagus untuk masalah ini. Saya menemukan utas ini, karena saya sedang mencari solusi untuk masalah yang sama.


1
komentar di atas dari "30 23 15-21 * 6 / sbin / shutdown -r now" akan berfungsi. Ini pada dasarnya hanya akan berjalan pada minggu ketiga bulan itu, tetapi hanya ketika itu juga hari Sabtu
Sirex

Saya tidak berpikir baris cron ini berfungsi seperti yang Anda pikirkan.
ervingsb

Saya membuat dua baris berikut: "30 23 1-7 * 4 tanggal" dan "30 23 1-7 * 3 tanggal". Saya mendapat dua surat tadi malam, keduanya mengatakan: "Rabu 7 Maret 23:30:02 CET 2012"
ervingsb

bidang terakhir cocok dengan hari dalam seminggu, dengan nol menjadi minggu. 4 cronjob seharusnya tidak cocok pada hari Rabu.
Sirex

Itu yang saya maksud. Aturan yang Anda tulis tidak berarti apa yang Anda pikirkan artinya. Ini akan memicu pekerjaan setiap hari selama seminggu. Tidak masalah hari kerja.
ervingsb

0

1) di baris perintah ketik 2) setelah Anda tahu di mana reboot berada (biasanya / sbin / reboot) cd ke salah satu direktori di /etc/cron.daily, /etc/cron.weekly, / etc / cron. dll jam ... yaituwhich reboot
cd /etc/cron.weekly

3) buat file (menggunakan nano atau vim) sebut saja zzreboot dan tambahkan baris berikut:

#! / bin / sh
/ sbin / reboot

Alasan Anda ingin memanggil file zzapa pun adalah untuk memastikan itu adalah pekerjaan terakhir yang dipanggil setelah semua pekerjaan lain. Untuk memastikan lakukan saja ls -ldi direktori dan verifikasi itu adalah file terakhir.

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.