จุดประสงค์ที่ผมจะเพิ่ม crontab โดย php ก็เพราะว่าการเพิ่ม crontab ต้องเพิ่มผ่าน ssh (controlpanel ของ server ก็มีเสือกไม่ใช้) แล้วก็ไม่ชินกับ vi
… เอาน่า ความมีแฮงไม่เคยปราณีใคร
ใครอยากจะมีแฮงแบบผมลองทำตามนะครับ
1. คุณสามารถตั้ง crontab ได้รึเปล่า ?
2. Hosting ให้คุณใช้ Program Execution Functions ได้รึเปล่า ? ตัวอย่างเช่น exec function
3. ตรวจสอบว่า user ที่เป็นเจ้าของ process ที่รันเว็บของคุณตอนนี้เป็น user ไหนด้วยคำสังนี้
echo exec(“whoami”);
crontab ที่จะเพิ่ม
0 0 * * * php /usr/home/cron.php
ขั้นตอนในการเพิ่ม crontab มีดังนี้ครับ
เก็บคำสั่ง crontab ลง ไฟล์
$cron_cmd = “0 0 * * * php /usr/home/dexdev/cron.php”;
$cron_file = “/usr/home/dexdev/cronjob”;
$handle = fopen($cron_file, “a+”);
fwrite($handle, “$cron_cmd\n”);
fclose($handle);
จัดการ crontab จากไฟล์ที่เตรียมไว้
exec(“crontab $cron_file”);
ตอนนี้ลองเอามาตั้งเวลาส่ง mail….ก็ใช้ได้นะครับเพราะพี่ admin ผมแกบ่นว่า ส่งไรตอนกลางวันส่งเที่ยงคืนเด้
ลองไปประยุกต์ใช้งานกันดูนะครับ
ได้ผลเป็นไงเอามาเล่าให้ฟังมั่งนะครับ
Aof says:
ขอสอบถามเื่พิ่มเติ็๋มได้มั้ยครับ คือว่า command ที่อยู่ในไฟล์ cron.php เนี่ย ถ้าอยากให้มีการ insert update ก็เขียนตามปกติใช่ม้ั้ยครับ (php) คือว่า ผมรันแล้วมันส่งเมล์กลับมาบอกว่า command not found
Jul 31, 2008, 3:56 pmก็เลยสงสัยว่า ที่ทำถูกต้องหรือไ่ม่ ตอนแรกมันส่งเมล์มาบอกว่า No such file or directory พอเอาไปเก็บไว้ถูกที่ถูกทางแล้วมันดันบอกว่า ไม่เจอคำสั่ง ก็เลย งงไปกันใหญ่ รบกวนช่วยตอบข้อสงสัยได้มั้ยครับ ขอบคุณล่วงหน้าครับ
Aof says:
มา update ครับ ตอนนี้ผมทำได้แล้วนะครับ หลังจากที่ได้คำแนะนำจากคุณ admin ไปวันนั้น ก็ทำให้ cron jobs ทำงานได้ระดับหนึ่ง ดังนี้
Status: 404
X-Powered-By: PHP/4.4.7
Content-type: text/html
No input file specified.
ก็ไปมั่วและแก้ไข อยู่นาน เรื่อง No input file specified. เนี่ยแหละ จนกระทั่งไปเจอเว็บ
http://jonathanmerchant.com/2008/01/23/drupal-crontab-lots-of-emails-with-attached-headaches-or-how-to-get-cronphp-to-work-on-site5-hosting
From Wiki: …… และ ~/public_html…..
สรุปว่า ตอนนี้ทำได้แล้วคร๊าบบบบ…. ยังไงก็ขอบคุณอีกครั้งนะครับ
Jul 31, 2008, 4:56 pm