Cron merupakan fitur di sistem operasi berbasis UNIX (Linux, Ubuntu, dan lain-lain) yang berfungsi untuk menjalankan tugas atau script secara otomatis. Pada sistem operasi berbasis Linux (Debian, Centos, Fedora) menambahkan cron cukup dengan menambahkan baris perintah dan waktu pengulangan script tersebut jalan pada sebuah tools yang bernama crontab atau cronies. Sayangnya, pada Amazon Linux 2023 tidak terdapat crontab terinstall secara default.
Kali ini kita akan mencoba untuk menggunakan cara lain yang sebenarnya lebih ringan dan juga terinstall secara default di hampir semua operating system Linux yaitu systemd
atau systemctl
. Sebagai contoh, saya akan menambahkan cronjob untuk wordpress pada systemd
.
1. Nonaktifkan WordPress Cron Bawaan
Pertama, Anda perlu menonaktifkan cron bawaan WordPress agar tidak dijalankan otomatis. Anda dapat melakukan ini dengan menambahkan baris berikut ke file wp-config.php
Anda:
1 |
define(‘DISABLE_WP_CRON’, true); |
2. Buat Service File
Buat service file untuk menjalankan WordPress cron melalui systemd
. Misalnya, buat file /etc/systemd/system/wp-cron.service
:
1 |
sudo nano /etc/systemd/system/wp–cron.service |
Isi file tersebut dengan:
1 2 3 4 5 6 |
[Unit] Description=Run WordPress Cron [Service] Type=oneshot ExecStart=/usr/bin/curl —silent —output /dev/null “http://yourdomain.com/wp-cron.php” |
Gantilah http://yourdomain.com/wp-cron.php
dengan URL situs WordPress Anda.
3. Buat Timer File
Buat timer file untuk menjadwalkan kapan wp-cron.service
akan dijalankan. Misalnya, buat file /etc/systemd/system/wp-cron.timer
:
1 |
sudo nano /etc/systemd/system/wp–cron.timer |
Isi file tersebut dengan:
1 2 3 4 5 6 7 8 9 |
[Unit] Description=Run WordPress Cron every 15 minutes [Timer] OnCalendar=*:0/15 Persistent=true [Install] WantedBy=timers.target |
Di sini, OnCalendar=*:0/15
berarti timer akan menjalankan WordPress cron setiap 15 menit. Anda bisa menyesuaikan interval ini sesuai kebutuhan.
4. Reload Systemd Daemon
Setelah membuat service dan timer file, reload systemd
daemon:
1 |
sudo systemctl daemon–reload |
5. Aktifkan dan Jalankan Timer
Aktifkan dan mulai timer untuk menjalankan cron WordPress:
1 2 |
sudo systemctl enable wp–cron.timer sudo systemctl start wp–cron.timer |
6. Periksa Status Timer
Untuk memastikan timer berjalan dengan baik, gunakan perintah berikut:
1 |
systemctl status wp–cron.timer |
7. Periksa Log
Jika Anda ingin melihat apakah cron WordPress berjalan dengan benar, Anda bisa memeriksa log dengan:
1 |
sudo journalctl –u wp–cron.service |
Dengan langkah-langkah ini, systemd
akan menjalankan wp-cron.php
pada interval yang Anda tentukan, menggantikan fungsi cron bawaan WordPress. Pendekatan ini dapat meningkatkan kinerja situs WordPress Anda dengan menghindari pemanggilan cron setiap ada pengunjung.