Panduan Lengkap Automasi Tugas dengan Cron di Ubuntu

1. Apa itu Cron?

Cron ialah penjadual kerja berasaskan masa untuk sistem operasi Linux dan berasaskan Unix. Ia kebanyakannya digunakan oleh pentadbir sistem dan pembangun untuk mengautomatikkan tugas yang perlu dilaksanakan secara berkala. Cron dipasang pra-pasang pada Ubuntu dan banyak digunakan untuk pengurusan pelayan, sandaran, pelaksanaan skrip berjadual, serta pelbagai tugas automasi lain.

Bagaimana Cron Berfungsi

Cron beroperasi menggunakan fail yang dipanggil “crontab,” di mana arahan ditetapkan untuk dijalankan pada masa atau selang yang ditentukan. Fail crontab terdiri daripada lima medan, masing-masing membenarkan penjadualan tepat tugas berdasarkan nilai yang ditetapkan.

  • Minute (0–59)
  • Jam (0–23)
  • Hari dalam bulan (1–31)
  • Bulan (1–12)
  • Hari dalam seminggu (0–7, di mana 0 dan 7 mewakili Ahad)

Sebagai contoh, jika anda ingin menjadualkan tugas sandaran untuk dijalankan setiap hari pada pukul 5 pagi, anda akan menambah baris berikut ke dalam fail crontab anda:

0 5 * * * tar -zcf /var/backups/home.tgz /home/

Ini menunjukkan bagaimana Cron boleh digunakan untuk mengautomatikkan kerja berulang dengan cekap.

Siapa Perlu Menggunakan Cron?

Cron penting bagi pentadbir sistem, pembangun yang ingin mempermudah tugas harian, dan sesiapa sahaja yang perlu menjalankan skrip berjadual dalam persekitaran pelayan.

年収訴求

2. Menyediakan Tugas Cron

Menyunting Fail Crontab

Untuk menyediakan tugas Cron, anda perlu mengakses dan menyunting fail “crontab”. Pada Ubuntu, anda boleh membuka fail crontab khusus pengguna anda dengan menggunakan perintah berikut:

crontab -e

Sintaks Asas Tugas Cron

Satu entri tugas Cron terdiri daripada medan masa diikuti dengan perintah yang hendak dijalankan. Format umum ialah:

Minute Hour Day Month Weekday Command

Sebagai contoh, tugas Cron berikut membuat sandaran direktori /home/ setiap hari pada pukul 5 pagi:

0 5 * * * tar -zcf /var/backups/home.tgz /home/

Menyimpan dan Mengesahkan Perubahan Crontab

Setelah anda menambah tugas ke dalam fail crontab, simpan dan tutup penyunting untuk menerapkan perubahan. Untuk mengesahkan tugas Cron semasa anda, gunakan perintah berikut:

crontab -l

3. Penjadualan Kerja Cron Lanjutan

Melaksanakan Kerja pada Selang Masa Tersuai

Untuk melaksanakan kerja pada selang masa tertentu, seperti setiap minit atau setiap lima minit, gunakan sintaks berikut:

  • Setiap minit:
* * * * * /path/to/script.sh
  • Setiap lima minit:
*/5 * * * * /path/to/script.sh

Menjalankan Kerja pada Hari dan Masa Tertentu

Jika anda perlu menjalankan tugas pada hari tertentu, gunakan medan hari minggu. Contohnya, untuk menjalankan skrip setiap Isnin pada 2:15 pagi, gunakan:

15 2 * * 1 /path/to/script.sh

4. Pengendalian Ralat dan Penyelesaian Masalah

Isu Biasa dengan Tugas Cron

Tugas Cron Tidak Dilaksanakan

Jika tugas Cron anda tidak berjalan, semak perkara utama berikut:

  • Semak Kebenaran: Pastikan skrip atau arahan mempunyai kebenaran pelaksanaan.
  • Gunakan Laluan Penuh: Cron berjalan dalam persekitaran terhad, jadi nyatakan laluan penuh kepada arahan dan fail anda.
/usr/bin/python3 /path/to/script.py

Menyemak Log Cron

Cron mencatat butiran pelaksanaannya dalam /var/log/syslog. Untuk menyemak log bagi ralat berkaitan Cron, gunakan:

grep CRON /var/log/syslog

5. Pertimbangan Keselamatan

Mengawal Akses Pengguna

Untuk mengehadkan pengguna yang boleh menjadualkan tugas Cron, anda boleh menggunakan fail /etc/cron.allow dan /etc/cron.deny. Dengan menyenaraikan pengguna dalam /etc/cron.allow, hanya pengguna tersebut akan dibenarkan mencipta tugas Cron.

echo "user_name" >> /etc/cron.allow

Keselamatan Log Masuk dan Tugas Cron

Apabila menjalankan tugas Cron yang memerlukan pengesahan, penting untuk mengelakkan ralat berkaitan kata laluan. Menggunakan automasi kunci SSH atau pengurus kata laluan yang selamat dapat membantu mencegah kegagalan pengesahan.

6. Menggunakan Anacron: Mengautomasi Tugas Tidak Kerap

Apa itu Anacron?

Anac penjadual kerja yang direka untuk sistem yang tidak beroperasi secara berterusan. Berbeza dengan Cron, yang memerlukan sistem berada dalam talian pada masa yang dijadualkan, Anacron memastikan kerja yang terlepas dijalankan apabila sistem dihidupkan semula. Ini menjadikannya ideal untuk desktop dan komputer riba.

7. Kes Penggunaan Praktikal untuk Cron Jobs

Mengautomasi Sandaran

Menetapkan kerja Cron untuk mengautomasi sandaran pada jadual tetap dapat membantu mengelakkan kehilangan data. Di bawah ialah contoh kerja Cron yang membuat sandaran direktori /home/ setiap hari pada jam 2 pagi dan menyertakan tarikh semasa dalam nama fail.

0 2 * * * tar -zcf /var/backups/home_backup_$(date +%Y-%m-%d).tgz /home/

8. Kesimpulan

Dengan memanfaatkan Cron dan Anacron, anda dapat mengautomasikan tugas berulang dengan cekap dan meningkatkan kebolehpercayaan operasi sistem anda. Apabila digunakan dengan betul, alat‑alat ini mengurangkan kos operasi dan memastikan tugas penyelenggaraan penting dijalankan tanpa campur tangan manual. Laksanakan mereka dalam sistem anda untuk merasai manfaat automasi.

侍エンジニア塾