[Howto] Cron ตั้งง่ายๆ ถ้ารู้วิธี

เริ่มโดย EThaiZone, 18 มิถุนายน 2008, 17:52:09

หัวข้อก่อนหน้า - หัวข้อถัดไป

0 สมาชิก และ 1 ผู้มาเยือน กำลังดูหัวข้อนี้

EThaiZone

สำหรับหลายคนที่ใช้ Cron job หรือ Crontab (จะเรียกอะไรก็ตามสะดวก)

มันไว้ใช้รันคำสั่งที่คุณอยากให้รันตามเวลาต้องการ
เทียบกับวินโดวน์ก็คือ Scheduled Tasks นะครับ หลักการเดียวกันเลย

วิธีการตั้งมีไม่ยากครับ

โครงสร้างของมัน

ปกติจะอยู่ลักษณะนี้
[min] [hour] [day of month] [month] [day of week] [program to be run]

คำอธิบาย:
[min]  คือนาที ค่าที่ใส่ได้ คือ 0-59  และ * ที่หมายถึงทุกๆ นาที
ซึ่งห้ามใส่ * ในช่องนี้เ้ป็นอันขาด ไม่งั้นมันรันทุกๆ นาที (แดร็กระบบ)
[hour]  คือชั่วโมง  ค่าที่ใส่ได้คือ 0-23  และ * ที่หมายถึงทุกๆ ชั่วโมง
---> ทั้งชั่วโมงและนาที แนะนำให้ใส่ 0 ในกรณีไม่อยากใส่อะไร เช่นอยากตั้งเป็นรันทุกๆ วัน
จะได้เป็นการรันตอนเที่ยงคืน (คนน้อย) หรืออาจปรับเป็นตี 1 ตี 2 ตามสมควร

[day of month]  คือวันที่  ค่าที่ใส่ได้คือ 1-31  และ * ที่หมายถึงทุกๆ วันของเดือน (ยังกะประจำเดือน)
[month]  คือเดือน  ค่าที่ใส่ได้คือ 1-12  และ * ที่หมายถึงทุกๆ เดือน
[day of week]  คือวันของสัปดาห์  ค่าที่ใส่ได้คือ 0-6 วันอาทิตย์คือ 0 วันจันทร์คือ 1 ไล่ไปถึงวันเสาร์ึิคือ 6
และ * ที่หมายถึงทุกๆ วันของสัปดาห์
[program to be run]  คือพาทหรือคำสั่งที่เราต้องการรัน


วิธีการใส่
ก็จะมีใส่ตามวิธีเหล่านี้

1. ระบุเวลาที่ต้องการตายตัวเลย
เช่น อยากรันทุกๆ 6:00 ของทุกวัน ก็จะเป็น
0   6   *   *   *   your command

2. ระบุช่วงเวลาที่ต้องการเป็นช่วงๆ
เช่น อยากรันตั้งแต่วันจันทร์ถึงวันพุธ  ก็จะเป็น
0   0   *   *   1-3   your command

3. ระบุช่วงเวลาที่ต้องการเป็นหน่วยย่อยๆ
เช่น อยากรันทุกๆ วันที่ 1  5  7  9  และ 11  ก็จะเป็น
0   0   1,5,7,9,11   *   *   your command

4. ระบุช่วงเวลาเป็น ทุกๆ กี่ x
เช่น อยากรันทุกๆ 4 ชั่วโมง ก็จะเป็น
0   */4   *   *   *   your command


ประมาณตามนี้นะครับ หวังว่าจะช่วยได้ไม่มากก็น้อย  ::)

แหล่งอ้างอิง:
http://www.scrounge.org/linux/cron.html
http://www.deluxnetwork.com/linux/guides/crons.php


----------------------------------------------

จากที่คุณ ball6847 พูดมานะครับ ขออัพเดตเรื่อง Command line ที่จำเป็นต้องใช้กัน  ::)

เน้นที่มีการพูดถึงนะครับ

1. PHP ปกติจะมีการใช้ลักษณะนี้

php -q /path/to/your/code.php

หลายคนคงสงสัยว่า -q คืออะไร ให้คิดซะว่ามันมาจากคำว่า Quiet Mode ครับ
เป็นการรันแบบเงียบว่างั้น (ลองค้นกูเกิ้ลเพิ่มดููล่ะกัน เดียวหาว่ากำปั้นทุบดิน - -*)

2. CURL อันนี้ผมไม่เคยใช้ แต่ก็สรุปการใช้งานเป็นกรณี ดึงไฟล์มาเซฟลงเครื่องล่ะกัน

curl http://website.com -o "/path/to/file.txt"

สมมุติิีกรณีคือ เรียกหลายเว็บไซต์ ลงไฟล์หลายไฟล์และมีชื่อต่างกัน
curl http://{google,yahoo}.com -o "/path/to/file_#1.txt"
#1 แทนค่าชุดหนึ่งที่เก็บ ซึ่งก็คือใน {}

อีกกรณีเช่น ผมอยากเซฟไฟล์ไล่ตั้งแต่เลข 1 ถึง 10
curl http://website.com/page_[1-10].html -o "/path/to/file_#1.txt"

และกรณีสุดท้ายของ curl ใช้ร่วมกันมากกว่า 1
curl http://{one,two}.website.com/page_[1-10].html -o "/path/to/file_#1_#2.txt"

ส่วน WGET ผมไม่ขอพูดถึงล่ะกัน  จริงๆ ก็ใช้งานเพื่อดึงไฟล์เหมือนกัน
ที่ไม่พูดเพราะ... ขี้เกียจแล้วอะ

:P

Dj.wayne_Gum

ขอบคุณไว้ก่อนครับ
ยังใช้ไม่เป็น
[direct=https://www.bestmediaonline.com]รับเขียนคอนเทนต์[/direct]

makoto

ขอบคุณมากเลยครับ จะได้ไม่ต้องไปตั้งใน control panel แล้วเพราะมันไม่ให้ตั้ง  :D
[direct=https://www.kasetorganics.org]เกษตรปลอดสารพิษ[/direct] [direct=https://kaset.vwander.com]ผักสวนครัวรั้วกินได้[/direct] [direct=https://www.kasetorganic.com/knowledge/avocado/]ปลูกอะโวคาโด[/direct]

News-Master

ขอบคุณครับ ได้ความรู้เพิ่มอีกแล้ว
[direct=http://watchbrands.co.cc/]Watch Brands[/direct] | [direct=http://www.nice-womenstyle.com]Women Lifestyle[/direct] | [direct=http://www.cyclingmarket.com/]Cycling Market Sale[/direct] | [direct=http://www.bestwatchseller.com/]Best Watch Seller[/direct] | [direct=http://www.soccerzeek.com]Soccer Fanatic[/direct]

ball6847

ผมว่าที่หลายๆคนไม่รู้่คือตรง command line มากกว่าอ่ะ (ผมก็ไม่ค่อยรู้เหมือนกัน)

ผมมีอยู่เว็บนึง จะเปิดอ้างอิงเวลาจะใส่ cmdline
Linux Command Reference
ที่ใช้บ่อยใน cronjob ก็จะเป็น PHP ,WGET และก็ CURL

WGET รู้สึกจะมีกับ linux อยู่แล้วมั้ง => WGET Command Reference

ส่วน PHP Command
และก็ Curl Command
We use Ubuntu.

[direct=http://ng-seo.sourcelab.xyz/]AngularJS SEO Experimental[/direct]

kornss

#5
ชอบครับ ความรู้  :)

อ้างถึงผมว่าที่หลายๆคนไม่รู้่คือตรง command line มากกว่าอ่ะ (ผมก็ไม่ค่อยรู้เหมือนกัน)

ผมด้วย อีกคน  :P

pakyaudio

อืม ได้ ความรู้อีกอย่างหนึ่ง ขอบคุณครับ เมื่อก่อนไม่รู้ตั้งแบบ มั่ว ๆ โปรแกรมส่งเมล์ กลับมาที่ server บานเลย ก็เลยรู้ อ๋อ ถึงรู้ว่าต้องใช้งานอย่างไร

toei

" อยู่ใต้ฟ้าอย่ากลัวฝน เกิดเป็นคนอย่ากลัวคำนินทา "

tonnant

ขอขุดนิดนึงครับ

ไอ้ตรง

php -q /path/to/your/code.php

ใส่ในไฟล์ php ได้เลยหรอครับ

ไม่ต้องไปตั้งใน cp ใช่มั้ยครับ
รับเขียน imacro javascript รับทำเว็บไซต์ php

brankal

ขอบคุณครับ เก็บความรู้เพิ่ม