Sintaks untuk entri crontab terlihat benar. Memang, jika Anda mengedit crontab Anda menggunakan " crontab -e
" (seperti seharusnya), Anda akan mendapatkan kesalahan jika Anda menentukan entri crontab yang secara sintaksis tidak valid.
Pertama, apakah /path_to_my_php_script/info.php
berjalan dengan benar dari command-line?
Jika demikian, apakah ini juga berjalan dengan benar seperti ini ?:
/bin/sh -c "(export PATH=/usr/bin:/bin; /path_to_my_php_script/info.php </dev/null)"
Jika itu berhasil, apakah berhasil seperti ini?
/bin/sh -c "(export PATH=/usr/bin:/bin; /path_to_my_php_script/info.php </dev/null >/dev/null 2>&1)"
Langkah (3) mirip dengan bagaimana cron akan menjalankan program Anda (seperti yang didokumentasikan dalam "man 5 cron").
Masalah yang paling mungkin Anda alami adalah bahwa cron PATH gunakan untuk menjalankan program Anda terlalu ketat. Oleh karena itu, Anda mungkin ingin menambahkan sesuatu seperti yang berikut ke bagian atas entri crontab Anda (Anda harus menambahkan direktori apa pun yang dibutuhkan skrip Anda):
PATH=~/bin:/usr/bin/:/bin
Perhatikan juga bahwa cron akan digunakan secara default /bin/sh
, bukan bash. Jika Anda membutuhkan bash, tambahkan juga ini ke awal file crontab Anda:
SHELL=/bin/bash
Perhatikan bahwa kedua perubahan itu akan memengaruhi semua entri crontab. Jika Anda hanya ingin mengubah nilai-nilai ini untuk info.php
program Anda, Anda bisa melakukan sesuatu seperti ini:
*/2 * * * * /bin/bash -c ". ~/.bashrc; /path_to_my_php_script/info.php"
Perlu juga disebutkan bahwa pada sistem yang dikonfigurasikan untuk "mail" (dengan kata lain sebuah sistem yang memiliki MTA yang terkonfigurasi [sendmail / postfix / etc]), semua output dari program crontab dikirimkan kepada Anda melalui email secara otomatis. Sistem desktop Ubuntu default tidak akan mengonfigurasi surat lokal, tetapi jika Anda bekerja pada server, Anda cukup mengetik "mail" di terminal untuk melihat semua surat cron tersebut. Ini juga berlaku untuk perintah " at
".