GNU/Linux >> Belajar Linux >  >> Linux

Masalah Crontab:Cron Job Tidak Berfungsi Saat Menggunakan Persentase

Pertanyaan: Apa alasan pekerjaan cron saya tidak dieksekusi ketika saya menggunakan persentase '%' dalam pekerjaan cron saya. Bagaimana cara mengatasi masalah ini ?

Jawaban: '%' adalah penentu baris baru dalam perintah cron. Jadi ketika Anda menggunakan % itu ditafsirkan sebagai baris baru di tugas cron. Mari kita lihat bagaimana mengatasi masalah ini, dan menggunakan % dalam tugas cron.

Definisi Masalah Dengan Contoh:'%' di cron job ( cron job tidak berhasil )

* * * * * date +"%d" >> /tmp/non-working-ex1.txt

 
Untuk tujuan pengujian, semua bidang dalam contoh crontab di atas memiliki * di dalamnya. Ini akan mengeksekusi cronjob yang ditentukan setiap menit.
 
Untuk memahami konfigurasi crontab, baca artikel kami sebelumnya yang berisi 15 contoh pekerjaan cron yang mengagumkan.
 
Jika Anda memiliki akses ke syslog, Anda akan mendapatkan baris yang sama seperti berikut ini.

Jun 20 08:31:01 ubuntu-laptop /USR/SBIN/CRON[6752]: (ramesh) CMD (date +")

 
Dalam entri syslog untuk contoh khusus ini, perintah hanya ditampilkan sebagai:(tanggal +") . Idealnya ini harus ditampilkan sebagai:tanggal +”%d” . Ini menunjukkan bahwa persentase diuraikan sebagai simbol khusus di cron. yaitu mengakhiri perintah tepat pada %age.

Solusi Dengan Contoh:Atasi penggunaan '%' dalam tugas cron.

Anda dapat mengatasi masalah ini menggunakan dua metode berikut. Solusi ini harus menyelesaikan masalah pada semua rasa Unix / Linux, termasuk Ubuntu, Debian, Fedora, RedHat, CentOS, AIX dll.,

Metode 1:Keluar dari persentase dengan \

Anda dapat menghindari persentase dengan garis miring terbalik, dan membuatnya berfungsi sebagai pekerjaan normal.

$ crontab -l
* * * * * date +"\%M" > /tmp/working-ex1.txt

 
Catatan: '\' ini tidak akan terlihat oleh perintah tanggal, atau perintah lain yang Anda panggil. \ adalah untuk menghindari perilaku khusus persentase dalam cron.

Metode 2:Gunakan Skrip Shell

Buat skrip shell dengan perintah persentase dan jadwalkan skrip shell sebagai tugas cron.

$ cat /bin/date.sh
date +"%d"

$ crontab -l
* * * * * /bin/sh /bin/date.sh > /tmp/working-ex2.txt

Pada menit berikutnya Anda akan memiliki output perintah yang dieksekusi di /tmp/working-ex2.txt
 
Sekarang Anda akan memiliki baris berikut yang menjalankan perintah dengan sukses di syslog.

Jun 20 08:36:01 ubuntu-laptop /USR/SBIN/CRON[6962]: (ramesh) CMD (/bin/sh /bin/date.sh >> /tmp/working-ex2.txt)

 
Catatan: Jangan lupa untuk menghapus entri cron pengujian ini karena akan dieksekusi setiap menit.
 
Jika Anda memiliki masalah lain dengan crontab, beri tahu kami di bagian komentar.


Linux
  1. Ubuntu – Crontab Tidak Berfungsi?

  2. Linux – Mengapa Usb Tidak Berfungsi Di Linux Saat Berfungsi Di UEFA/bios?

  3. Masalah Dengan Keyboard Tidak Berfungsi Saat Di-boot?

  1. Mengelola Duplikat Cron Job Saat Menjalankan Skrip

  2. Hapus file log menggunakan tugas cron

  3. Bagaimana cara melihat pekerjaan cron yang sedang berjalan?

  1. perintah tidak ditemukan saat menggunakan sudo

  2. pekerjaan cron terkadang tidak berjalan

  3. Mengapa crontab saya tidak berfungsi, dan bagaimana cara mengatasinya?