ที่มา : www.thaiadmin.org /Server Zone/ Unix & Linux Platform

               อันนี้ไปเจอใน thaiadmin.org โดย คุณ mongmong ได้อธิบายเรื่อง crontab ไว้แบบอ่านได้ เข้าใจง่าย ทั้งหมดที่จะเห็นต่อไป ผมลอกมาทั้งหมดโดยไม่ดัดแปลงครับ

 

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

Advertisements