ยินดีต้อนรับคุณ, บุคคลทั่วไป กรุณา เข้าสู่ระบบ หรือ ลงทะเบียน

เข้าสู่ระบบด้วยชื่อผู้ใช้ รหัสผ่าน และระยะเวลาในเซสชั่น

หน้า: [1]   ลงล่าง
พิมพ์
ผู้เขียน หัวข้อ: [Howto] Cron ตั้งง่ายๆ ถ้ารู้วิธี  (อ่าน 23914 ครั้ง)
0 สมาชิก และ 1 บุคคลทั่วไป กำลังดูหัวข้อนี้
EThaiZone
เจ้าพ่อโลลิค่อน
เจ้าพ่อบอร์ดเสียว
*

พลังน้ำใจ: 321
ออฟไลน์ ออฟไลน์

กระทู้: 12,518



ดูรายละเอียด เว็บไซต์
« เมื่อ: 18 มิถุนายน 2008, 17:52:09 »

สำหรับหลายคนที่ใช้ 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


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

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

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

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

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

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 ผมไม่ขอพูดถึงล่ะกัน  จริงๆ ก็ใช้งานเพื่อดึงไฟล์เหมือนกัน
ที่ไม่พูดเพราะ... ขี้เกียจแล้วอะ

 Tongue
« แก้ไขครั้งสุดท้าย: 18 มิถุนายน 2008, 20:17:48 โดย EThaiZone » บันทึกการเข้า

Dj.wayne_Gum
หัวหน้าแก๊งเสียว
*

พลังน้ำใจ: 94
ออฟไลน์ ออฟไลน์

กระทู้: 2,146



ดูรายละเอียด เว็บไซต์
« ตอบ #1 เมื่อ: 18 มิถุนายน 2008, 18:07:46 »

ขอบคุณไว้ก่อนครับ
ยังใช้ไม่เป็น
บันทึกการเข้า

makoto
หัวหน้าแก๊งเสียว
*

พลังน้ำใจ: 152
ออฟไลน์ ออฟไลน์

กระทู้: 1,448



ดูรายละเอียด เว็บไซต์
« ตอบ #2 เมื่อ: 18 มิถุนายน 2008, 18:11:54 »

ขอบคุณมากเลยครับ จะได้ไม่ต้องไปตั้งใน control panel แล้วเพราะมันไม่ให้ตั้ง  Cheesy
บันทึกการเข้า

News-Master
คนรักเสียว
*

พลังน้ำใจ: 1
ออฟไลน์ ออฟไลน์

กระทู้: 169



ดูรายละเอียด
« ตอบ #3 เมื่อ: 18 มิถุนายน 2008, 18:15:31 »

ขอบคุณครับ ได้ความรู้เพิ่มอีกแล้ว
บันทึกการเข้า

ball6847
เจ้าพ่อบอร์ดเสียว
*

พลังน้ำใจ: 212
ออฟไลน์ ออฟไลน์

กระทู้: 4,174



ดูรายละเอียด
« ตอบ #4 เมื่อ: 18 มิถุนายน 2008, 18:27:25 »

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

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

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

ส่วน PHP Command
และก็ Curl Command
บันทึกการเข้า

kornss
หัวหน้าแก๊งเสียว
*

พลังน้ำใจ: 3
ออฟไลน์ ออฟไลน์

กระทู้: 1,483



ดูรายละเอียด
« ตอบ #5 เมื่อ: 18 มิถุนายน 2008, 19:19:45 »

ชอบครับ ความรู้  Smiley

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

ผมด้วย อีกคน  Tongue
« แก้ไขครั้งสุดท้าย: 18 มิถุนายน 2008, 19:21:30 โดย kornss » บันทึกการเข้า
pakyaudio
สมุนแก๊งเสียว
*

พลังน้ำใจ: 85
ออฟไลน์ ออฟไลน์

กระทู้: 969



ดูรายละเอียด เว็บไซต์
« ตอบ #6 เมื่อ: 18 มิถุนายน 2008, 19:31:51 »

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

toei
คนรักเสียว
*

พลังน้ำใจ: 25
ออฟไลน์ ออฟไลน์

กระทู้: 194



ดูรายละเอียด
« ตอบ #7 เมื่อ: 24 สิงหาคม 2010, 13:58:42 »

ขอบคุณหลายๆ
บันทึกการเข้า

" อยู่ใต้ฟ้าอย่ากลัวฝน เกิดเป็นคนอย่ากลัวคำนินทา "
tonnant
Verified Seller
ก๊วนเสียว
*

พลังน้ำใจ: 102
ออฟไลน์ ออฟไลน์

กระทู้: 292



ดูรายละเอียด เว็บไซต์
« ตอบ #8 เมื่อ: 24 สิงหาคม 2011, 12:04:07 »

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

ไอ้ตรง

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

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

ไม่ต้องไปตั้งใน cp ใช่มั้ยครับ
บันทึกการเข้า

รับเขียน imacro javascript รับทำเว็บไซต์ php
brankal
ก๊วนเสียว
*

พลังน้ำใจ: 2
ออฟไลน์ ออฟไลน์

กระทู้: 242



ดูรายละเอียด เว็บไซต์
« ตอบ #9 เมื่อ: 24 สิงหาคม 2011, 12:16:38 »

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

หน้า: [1]   ขึ้นบน
พิมพ์