Pertanyaan :Saya membuat skrip shell backup.sh dan menambahkannya ke crontab saya untuk menjalankannya setiap hari. Bagaimana cara memverifikasi apakah tugas skrip cron cadangan berjalan dengan sukses? Juga, saya memiliki beberapa pernyataan gema di dalam skrip shell backup.sh saya. Bagaimana cara menyimpan output skrip saya ke file log saat dijalankan sebagai tugas cron?
Answer :Katakanlah Anda telah menambahkan backup.sh ke crontab Anda seperti yang ditunjukkan di bawah ini untuk menjalankannya pada tengah malam setiap hari.
$ crontab -e 59 23 * * * /home/john/bin/backup.sh
Untuk memverifikasi apakah pekerjaan ini berhasil dijalankan atau tidak, periksa file /var/log/cron, yang berisi informasi tentang semua pekerjaan cron yang dijalankan di sistem Anda. Seperti yang Anda lihat dari output berikut, cron job john berhasil dijalankan.
$ tail /var/log/cron Oct 8 22:00:00 dev-db crond[18340]: (root) CMD (/bin/sh /home/root/bin/system_check &) Oct 8 23:00:00 dev-db crond[20348]: (oracle) CMD (/bin/sh /home/oracle/bin/cleanup.sh &) Oct 8 23:59:00 dev-db crond[20399]: (john) CMD (/bin/sh /home/john/bin/backup.sh &)
Cron log berisi informasi berikut:
- Stempel waktu – Tanggal dan waktu saat tugas cron dijalankan
- Hostname – Nama host server (Misalnya, dev-db)
- Nama cron deamon dan PID. Misalnya, crond[20399]
- Username – Nama pengguna yang menjalankan tugas cron ini. Misalnya, john.
- CMD – Apa pun yang mengikuti ini adalah perintah sebenarnya yang dieksekusi pada saat itu.
Jika ada pernyataan gema di dalam backup.sh, Anda mungkin ingin memasukkannya ke dalam file. Secara umum, jika skrip cron backup.sh mengeluarkan output apa pun (termasuk kesalahan), Anda mungkin ingin mencatatnya ke file log. Untuk melakukannya, ubah entri crontab dan tambahkan output dan pengalihan kesalahan seperti yang ditunjukkan di bawah ini.
$ crontab -e 59 23 * * * /home/john/bin/backup.sh > /home/john/logs/backup.log 2>&1
Di atas:
- > /home/john/logs/backup.log menunjukkan bahwa output standar skrip backup.sh akan dialihkan ke file backup.log.
- 2>&1 menunjukkan bahwa kesalahan standar (2>) dialihkan ke deskriptor file yang sama yang ditunjukkan oleh keluaran standar (&1).
- Jadi, baik keluaran standar maupun kesalahan akan dialihkan ke /home/john/logs/backup.log