crontab บน Linux crontab บน FREEBSD
Moderators: mindphp, ผู้ดูแลกระดาน
Forum rules
1. ลง ผู้ให้บริการ Web Hosting ได้ 1 ลิงค์ ต่อ 1 กระทู้
2. ห้ามลงชื่อซ้ำกับ ผู้ให้ บริการ Web Hosting ที่มีอยู่แล้ว
1. ลง ผู้ให้บริการ Web Hosting ได้ 1 ลิงค์ ต่อ 1 กระทู้
2. ห้ามลงชื่อซ้ำกับ ผู้ให้ บริการ Web Hosting ที่มีอยู่แล้ว
- ob1
- PHP Hero Member
- Posts: 185
- Joined: 01/01/1970 7:00 am
- Contact:
crontab บน Linux crontab บน FREEBSD
เก็บมาฝากจากเว็บ ต้นฉบับเข้าไม่ได้แล้ว ขอเก็บไว้ที่นี่ด้วยนะ
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
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
- Posts: 185
- Joined: 01/01/1970 7:00 am
- Contact:
Re: crontab บน Linux crontab บน FREEBSD
เสริมเพิ่มเติม ไฟล์ ที่จะให้ php รัน
ไม่ควรใช้ การระบุ path แบบ relative
ให้ระบุ path เต็มจาก root
ไม่ควรใช้ การระบุ path แบบ relative
ให้ระบุ path เต็มจาก root
-
- PHP Newbie
- Posts: 5
- Joined: 19/01/2010 12:27 am
Re: crontab บน Linux crontab บน FREEBSD
ขอบคุณมากมาย
เปงความรู้ที่ดีมากครับ
เปงความรู้ที่ดีมากครับ
-
- PHP Full Member
- Posts: 32
- Joined: 25/10/2010 5:05 pm
- Contact:
Re: crontab บน Linux crontab บน FREEBSD
ขอบคุณ ob1 นะครับ มีประโยช์มากครับ
เกมส์ สนุกๆมันส์ๆเล่นฟรีจ้า
-
- PHP Newbie
- Posts: 5
- Joined: 19/01/2010 12:27 am
Re: crontab บน Linux crontab บน FREEBSD
ถ้าเขียนแบบนี้จะถูกไหมครับ
0 0,6 * * * /home/std/project/public_html/testemail.php
ขอคำแนะนำด้วยครับ
0 0,6 * * * /home/std/project/public_html/testemail.php
ขอคำแนะนำด้วยครับ
- mindphp
- ผู้ดูแลระบบ MindPHP
- Posts: 26507
- Joined: 22/09/2008 6:18 pm
- Contact:
Re: crontab บน Linux crontab บน FREEBSD
ไม่ต้องใส่ , ที่ตัวเลขครับ
ถ้าจะให้ php รันได้
Code: Select all
0 6 * * * /home/std/project/public_html/testemail.php
Code: Select all
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
หมวดแชร์ความรู้: https://www.mindphp.com/forums/viewforum.php?f=29
รับอบรม และพัฒนาระบบ: https://www.mindphp.com/forums/viewtopic.php?f=6&t=2042
ติดตาม FB: https://www.facebook.com/pages/MindphpC ... 9517401606
หมวดแชร์ความรู้: https://www.mindphp.com/forums/viewforum.php?f=29
รับอบรม และพัฒนาระบบ: https://www.mindphp.com/forums/viewtopic.php?f=6&t=2042
- janun
- PHP Newbie
- Posts: 2
- Joined: 05/04/2018 10:13 am
-
- Similar Topics
- Replies
- Views
- Last post
-
-
PHP - มีเรื่องอยากสอบถามครับ แต่ Hosting ไม่มี Cronjob/Crontab
by antimage3114 » 30/08/2013 3:33 pm » in Programming - PHP - 3 Replies
- 1817 Views
-
Last post by konseo
01/09/2013 1:09 am
-
-
-
ตั้งโปรแกรมให้ phpBB ทำงานทุกเที่ยงคืน ด้วย Crontab
by mindphp » 16/12/2020 9:45 pm » in Linux - Web Server - 0 Replies
- 42 Views
-
Last post by mindphp
16/12/2020 9:45 pm
-
-
-
สร้าง crontab ใน Directadmin แล้ว Error Error Creating Cron Job
by mindphp » 12/08/2020 5:08 am » in Linux - Web Server - 1 Replies
- 343 Views
-
Last post by mindphp
12/08/2020 5:17 am
-
-
-
วิธีสร้าง ssh key บน freebsd , Ubuntu, Linux
by mindphp » 04/03/2018 2:55 am » in Linux - Web Server - 1 Replies
- 1665 Views
-
Last post by mindphp
20/01/2019 6:14 pm
-
-
- 7 Replies
- 2154 Views
-
Last post by mindphp
23/02/2020 1:12 am
-
- 3 Replies
- 837 Views
-
Last post by P.Sirawit
22/04/2017 2:19 pm
-
-
FreeBSD 11-STABLE กำลังจะมี ปลายปีหลังของปีนี้
by mindphp » 10/04/2016 4:05 pm » in MindPHP News & Feedback - 1 Replies
- 717 Views
-
Last post by mindphp
10/04/2016 4:10 pm
-
Who is online
Users browsing this forum: No registered users and 2 guests