crontab บน Linux crontab บน FREEBSD

Free Host Share Host VPS Web Hosting รวมเว็บโฮสติ้ง รายชื่อผู้ให้บริการ review hosting ที่ท่านเคยใช้ ทำ เว็บ e commerce Webmail เคยใช้ที่ไหน แล้วเป็นอย่างไร แนะนำเพื่อนๆ ได้ ลงบริการของตัวเองได้

Moderator: mindphp, ผู้ดูแลกระดาน

กฎการใช้บอร์ด
1. ลง ผู้ให้บริการ Web Hosting ได้ 1 ลิงค์ ต่อ 1 กระทู้
2. ห้ามลงชื่อซ้ำกับ ผู้ให้ บริการ Web Hosting ที่มีอยู่แล้ว
ภาพประจำตัวสมาชิก
ob1
PHP Hero Member
PHP Hero Member
โพสต์: 185
ลงทะเบียนเมื่อ: 01/01/1970 7:00 am
ติดต่อ:

crontab บน Linux crontab บน FREEBSD

โพสต์โดย ob1 » 14/09/2009 5:50 pm

เก็บมาฝากจากเว็บ ต้นฉบับเข้าไม่ได้แล้ว ขอเก็บไว้ที่นี่ด้วยนะ
crontab บน Linux

====================

คำสั่ง crontab เป็นคำสั่งในการทำ schedule ในการสั่งโปรแกรม หรือ script ต่างๆ ทำงานตามเวลาที่กำหนด บนระบบ UNIX/LINUX

ซึ่งอำนวยความสะดวกได้มากเลยที่เดียว งานบางอย่างที่จำเป็นต้องทำซ้ำๆในเวลาเดียวกัน ไม่ว่าจะทุกวัน ทุกสัปดาห์ หรือ ทุกเดือน



การใช้งาน crontab

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

คำสั่งและ option ของ crontab มีดังนี้

Code:



crontab filename การนำเอาคำสั่ง crontab เข้ามาจาก ไฟล์อื่น

crontab -e แก้ไข crontab ปัจจุบัน

crontab -l ดูคำสั่ง crontab ทั้งหมดที่มีอยู่

crontab -r ลบคำสั่ง crontab ที่มีทั้งหมด

crontab -u user เป็นคำสั่งของผู้ดูแลระบบเท่านั้น(administrators) เพื่อใช้ดู แก้ไข ลบ crontab ของ user แต่ล่ะคน





เมื่อเรียกคำสั่งตามข้างบนแล้ว crontab จะเข้าสู่ระบบการ กำหนด หรือ แก้ไข ซึ่งการ กำหนด หรือแก้ไขนี้ จะเหมือนกับการใช้งาน vi ครับ

ถ้าใครเคยใช้งาน vi แล้วก็จะไม่มีปัญหาอะไร ถ้าไม่เคยใช้ ก็ดูคำสั่งพื้นฐานของ vi ด้านล่างนะครับ

เมื่อเรียกโปรแกรม crontab ให้ทำงานและขณะอยู่ในโปรแกรม เราสามารถกดคีย์ ดังต่อไปนี้เพื่อ

Code:



Esc เพื่อออกมาสู่โหมดปกติ

i เพื่อการเพิ่ม คำสั่ง ข้อความ เข้าไปใหม่

x ลบ ตัวอักษรที่ cursor วางอยู่ ทีละอักษร ในโหมดปกติ

dd ลบบรรทัด ทั้งบรรทัด ที่ cursor วางอยู่ทีละแถว ในโหมดปกติ

:q! ออกโดยไม่ต้องแก้ไขอะไร

:wq! เก็บบันทึกข้อความที่แก้ไขแล้วออกจากโปรแกรม

คำสั่งเหล่านี้เป็นแค่บางส่วนเท่านั้น แต่ก็พอใช้งานคำสั่ง crontab แล้วล่ะครับ ถ้าใครอยากได้มากกว่านี้ต้องศึกษาเพิ่มเอาอีกที



การกำหนดให้ crontab ทำงาน

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

format ของคำสั่ง crontab มีทั้งหมด 6 fields เป็นดังบรรทัดข้างล่าง

Code:



minute(s) hour(s) day(s) month(s) weekday(s) command(s)



fields 1-5 เป็นการกำหนดเวลา และ field ที่ 6 เป็นการกำหนดคำสั่ง ดังความหมายของแต่ละ fields ดังต่อไปนี้

Code:



........................................................................................................................................

Field มีค่า รายละเอียด

........................................................................................................................................

minute 0-59 เวลาเป็นนาที จะสั่งให้คำสั่งที่กำหนดทำงานทันทีเมื่อถึง

hour 0-23 เวลาเป็นชั่วโมง จะสั่งให้คำสั่งที่กำหนดทำงานทันทีเมื่อถึง

day 1-31 เวลาเป็นวัน จะสั่งให้คำสั่งที่กำหนดทำงานทันทีเมื่อถึง

month 1-12 เวลาเป็นเดือน จะสั่งให้คำสั่งที่กำหนดทำงานทันทีเมื่อถึง

weekday 0-6 วันของแต่ละสัปดาห์ มีค่าดังนี้ (อาทิตย์ = 0, จันทร์ = 1, อังคาร = 2, พุธ = 3, พฤหัส = 4, ศุกร์ = 5 และ เสาร์ = 6)

command คำสั่ง เราสามารถกำหนดคำสั่งได้มากมาย รวมทั้ง script ต่างๆ ตามที่เราต้องการ

.........................................................................................................................................



ตัวอย่างการกำหนด crontab

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

การเพิ่ม crontab โดยเรียกใช้คำสั่ง crontab -e เมื่อเข้าสู่โปรแกรมแล้ว กด i เพื่อเพิ่ม คำสั่งดังตัวอย่างด้านล่างนี้เข้าไป แล้วทำการบันทึก

แล้วออกมาโดยกด Esc แล้วกด :wq!

Code:

0 8 * * * /usr/bin/mplayer /home/tuxzilla/music/คุณครูครับ.mp3



จากคำสั่งด้านบนจะเป็นการสั่งให้โปรแกรม mplayer เล่นเพลง คุณครูครับ.mp3 ตอน 08:00 น. ของทุกๆวัน (เวลาตื่นนอนของผมเอง)



Code:

0 0 * * 1 /home/tuxzilla/getlogs.pl



จากคำสั่งด้านบน จะทำการ Run script getlogs.pl ที่ path /home/tuxzilla ทุกวันจันทร์ ทุกๆเดือน ตอนเที่ยงคืน



Code:

0 0 * * 1,5 /home/tuxzilla/getlogs.pl

คำสั่งนี้เหมือนคำสั่งด้านบนครับ แต่จะเพิ่มการทำงานในวันศุกร์ด้วย ซึ่งเราสามารถใช้ "," คั่นไปเรื่อยๆได้ เพื่อที่จะกำหนดเพิ่มให้แต่ล่ะ fields หรือใช้ "*"

เพื่อการกำหนดเป็นทั้งหมด(หมายความว่า หากที่ field ชั่วโมง เป็น * ก็หมายความว่าต้องทำงานทุกชั่วโมง)



ถึงจะมีหลาย user ในเครื่องเดียวกันแต่ยังไง crontab ก้ยังเป็นของใครของมันไม่กวนกันครับ และไม่สามารถดูของกันและกันได้ นอกจากเป็น

ผู้ดูแลระบบครับ ถึงตรงนี้แล้วก็คงไม่มีอะไรยากเกินกว่าแล้ว หากแต่ความสะดวกเท่านั้นที่จะมาแทนที หรือใครจะเอามาเป็นนาฬิกา อย่างผมก็ไม่ว่าครับ



คำสั่งเพิ่มเติมที่ควรรู้

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

man crontab

man cron

man at

man batch

ภาพประจำตัวสมาชิก
ob1
PHP Hero Member
PHP Hero Member
โพสต์: 185
ลงทะเบียนเมื่อ: 01/01/1970 7:00 am
ติดต่อ:

Re: crontab บน Linux crontab บน FREEBSD

โพสต์โดย ob1 » 20/12/2009 6:09 am

เสริมเพิ่มเติม ไฟล์ ที่จะให้ php รัน
ไม่ควรใช้ การระบุ path แบบ relative
ให้ระบุ path เต็มจาก root

phajvaj
PHP Newbie
PHP Newbie
โพสต์: 5
ลงทะเบียนเมื่อ: 19/01/2010 12:27 am
ติดต่อ:

Re: crontab บน Linux crontab บน FREEBSD

โพสต์โดย phajvaj » 04/12/2010 12:53 am

ขอบคุณมากมาย
เปงความรู้ที่ดีมากครับ

gangwell
PHP Full Member
PHP Full Member
โพสต์: 32
ลงทะเบียนเมื่อ: 25/10/2010 5:05 pm
ติดต่อ:

Re: crontab บน Linux crontab บน FREEBSD

โพสต์โดย gangwell » 04/12/2010 10:52 pm

ขอบคุณ ob1 นะครับ มีประโยช์มากครับ
เกมส์ สนุกๆมันส์ๆเล่นฟรีจ้า

phajvaj
PHP Newbie
PHP Newbie
โพสต์: 5
ลงทะเบียนเมื่อ: 19/01/2010 12:27 am
ติดต่อ:

Re: crontab บน Linux crontab บน FREEBSD

โพสต์โดย phajvaj » 20/12/2010 12:39 pm

ถ้าเขียนแบบนี้จะถูกไหมครับ
0 0,6 * * * /home/std/project/public_html/testemail.php
ขอคำแนะนำด้วยครับ

ภาพประจำตัวสมาชิก
mindphp
ผู้ดูแลระบบ MindPHP
ผู้ดูแลระบบ MindPHP
โพสต์: 16731
ลงทะเบียนเมื่อ: 22/09/2008 6:18 pm
ติดต่อ:

Re: crontab บน Linux crontab บน FREEBSD

โพสต์โดย mindphp » 05/10/2016 2:40 am

ไม่ต้องใส่ , ที่ตัวเลขครับ

โค้ด: เลือกทั้งหมด

0 6 * * * /home/std/project/public_html/testemail.php

ถ้าจะให้ php รันได้

โค้ด: เลือกทั้งหมด

0 6 * * * path_to_php /home/std/project/public_html/testemail.php
ติดตาม VDO: http://www.youtube.com/c/MindphpVideoman
ติดตาม FB: https://www.facebook.com/pages/MindphpC ... 9517401606
หมวดแชร์ความรู้: viewforum.php?f=29
รับอบรม และพัฒนาระบบ: viewtopic.php?f=6&t=2042


  • Similar Topics
    ตอบกลับ
    แสดง
    โพสต์ล่าสุด

ย้อนกลับไปยัง

ผู้ใช้งานขณะนี้

กำลังดูบอร์ดนี้: 3 และ บุคคลทั่วไป 0 ท่าน