Cara menggunakan @reboot di /etc/cron.d

16

Saya memigrasikan crontab pengguna individu ke /etc/cron.d, karena itu akan memungkinkan pencadangan, pemulihan, dan versi yang tepat.

Sejauh ini, karena saya mengerti satu-satunya perbedaan antara crontab pengguna dan yang lainnya adalah Anda harus menetapkan pengguna sebagai kolom ke-6. Apakah ini benar?

Dan pertanyaan utama saya, di mana saya tidak dapat menemukan jawabannya di internet: Apa cara yang tepat untuk digunakan @rebootdi /etc/cron.d atau / etc / crontab?

sesuatu seperti @reboot root command?

hyperknot
sumber

Jawaban:

19

Dari halaman manual crontab :

Pekerjaan di /etc/cron.d/

Pekerjaan di cron.d adalah pekerjaan sistem, yang biasanya digunakan untuk lebih dari satu pengguna. Itulah alasan mengapa diperlukan nama pengguna. MAILTO pada baris pertama adalah opsional.

CONTOH UNTUK PEKERJAAN DI /etc/cron.d/job

 #login as root
 #create job with preferred editor (e.g. vim)
 MAILTO=root
 * * * * * root touch /tmp/file

Itulah seluruh bagian tentang crontab di / etc , jadi saya kira penyertaan pengguna dengan nama yang menjalankan pekerjaan memang satu - satunya perbedaan.

Lagi dari halaman manual yang sama:

"Julukan" spesifikasi waktu khusus ini didukung, yang menggantikan 5 bidang waktu dan tanggal awal, dan diawali oleh karakter '@':

@reboot: Jalankan sekali setelah reboot.

Demikian kesimpulan Anda bahwa cara yang tepat untuk menggunakan @reboot adalah

   @reboot user_name command

adalah benar .

MariusMatutiae
sumber
1

Jika /etc/crontabAnda hanya perlu menambahkan baris ini.

@reboot        command

Di mana perintah bisa berupa skrip atau file tunggal.

Krishna
sumber
Apakah itu bekerja? /etc/crontabbiasanya membutuhkan nama pengguna.
mwfearnley
1

Jika Anda menjalankannya secara interaktif seperti di bawah ini, Anda tidak menentukan pengguna:

crontab -e
@reboot /root/mycommand

Jika Anda meletakkannya sebagai file di /etc/cron.d, misal /etc/cron.d/mycronfile, Anda harus meletakkan pengguna:

@reboot root /root/mycommand
Wadih M.
sumber