การทำงานของ Cron และงานเซิร์ฟเวอร์พื้นฐานโดยอัตโนมัติ

บทความที่เขียนโดย:
  • บทความที่แนะนำ
  • อัปเดต: ก.ย. 06, 2017

เว็บโฮสติ้งถูกออกแบบมาให้ง่ายตรงไปตรงมาและสมบูรณ์แบบสำหรับมืออาชีพที่กำลังเดินทางและไม่สามารถอุทิศทุกชั่วโมงของทุกวันเพื่อ การจัดการเซิร์ฟเวอร์โฮสติ้ง และงานที่เกี่ยวข้อง

ด้วยเหตุนี้เกือบทุกเซิร์ฟเวอร์บน Unix หรือ Linux จึงมีตัวจัดการงานแบบอัตโนมัติที่เรียกว่า "งาน cron"หรือ" Crontab "

ยูทิลิตี้ซอฟต์แวร์นี้มีลักษณะคล้ายกับกำหนดการงานใน Microsoft Windows ซึ่งสามารถบอกได้ว่าจะทำบางสิ่งบางอย่างในบางช่วงเวลาซึ่งช่วยให้ผู้ใช้สามารถดำเนินการเหล่านี้ได้ด้วยตนเอง นี่เป็นสิ่งสำคัญอย่างยิ่งเมื่อพิจารณาว่าการบำรุงรักษาเซิร์ฟเวอร์การสำรองข้อมูลและขั้นตอนการสื่อสารเป็นประจำอาจใช้เวลาหลายชั่วโมงและชั่วโมงในการดำเนินการ คนส่วนใหญ่เพียงแค่ต้องการกลับบ้านหลังเลิกงานในสำนักงานและผ่อนคลายแทนที่จะใช้เวลาเย็นในการสำรองไฟล์และจัดการที่อยู่ติดต่อ

คนเหล่านั้นโชคดีเพราะงานทุกอย่างสามารถกำหนดเป็นรายวันรายสัปดาห์หรือรายเดือน - หรือแยกออกจากกันในบางกรณีและสามารถให้คำแนะนำเฉพาะกับเซิร์ฟเวอร์ภายในยูทิลิตี้ Crontab เกี่ยวกับวิธีการทำงาน จะรู้ได้อย่างไรว่ามันเสร็จสมบูรณ์แล้วและจะทำอย่างไรเมื่องานที่ทำเสร็จจริง

ผู้ใช้จะสามารถผ่อนคลายในขณะที่เซิร์ฟเวอร์ของพวกเขาใช้เวลาในการยกนานหลายชั่วโมง หรือพวกเขาสามารถกำหนดเวลาให้งานแล้วเสร็จในขณะที่ทำงานหนักในสำนักงานของตัวเอง เนื่องจากเป็นงานอัตโนมัติงาน Cron สามารถเกิดขึ้นได้แทบทุกชั่วโมงของวัน

เรียนรู้ที่จะบอกเวลาโดยใช้รูปแบบของงาน Cron

งาน Cron ไม่ใช่เรื่องง่ายที่จะเชี่ยวชาญ ในความเป็นจริงมันถูกพิจารณาอย่างกว้างขวางว่าเป็นหนึ่งในการกำหนดค่าที่ทันสมัยที่สุดที่มีอยู่ในมาตรฐาน Linux or ยูนิกซ์ เว็บเซิร์ฟเวอร์. นี่เป็นส่วนหนึ่งเนื่องจากภาษาที่ใช้ในการเขียนโปรแกรมงานเหล่านี้เป็นโบราณกาลและในบางกรณีล้วนถอยหลัง เมื่อพูดถึงช่วงเวลาหนึ่งไปยังงาน Cron หรือแท็บ Cron ในคำถามสิ่งต่างๆล้วนอยู่ข้างหลังคว่ำและสับสนเล็กน้อย

รูปแบบการบอกเวลาผ่านงาน Cron เป็นเช่น:

MINUTE HOUR DAY OF DAY OF THE DAY วันธรรมดา

มันคือทั้งหมดหนึ่งบรรทัดและแม้กระทั่งจำนวนและคำสั่งคือเคียงข้างกันในการหดตัวชุดเดียว ก็เพียงพอที่จะทำให้นักพัฒนาซอฟต์แวร์และผู้ให้บริการเซิร์ฟเวอร์ส่วนใหญ่และในความเป็นจริงหลายคนทำจนกว่าพวกเขาจะได้รับการแขวนสำหรับการพัฒนางาน Cron ที่มีประสิทธิภาพ

สิ่งสำคัญคือให้สังเกตว่าเวลาของงาน Cron นั้นเป็นตัวเลขทุกประการ ไม่มีชื่อเดือนชื่อวันหรือคำอื่น ๆ ที่ใช้ตลอดการพัฒนาของเวลาในระหว่างที่งานควรจะทำ

ดังนั้นให้ตั้งค่างาน Cron สำหรับ 10: 30 am ในเดือนกรกฎาคม 7th เพื่อรับความรู้สึกว่าเวลาของงาน Cron มีลักษณะอย่างไรเมื่อเปลี่ยนเป็นตัวเลขอย่างเคร่งครัด

30 10 07 07 *

ตัวอย่างข้างต้นระบุว่างานควรจะแล้วเสร็จในนาทีที่สิบเก้าของชั่วโมงที่สิบในวันที่เจ็ดของเดือนที่เจ็ด ตัวเลขทั้งหมดมีความยาวสองหลักแม้ว่าเดือนหรือวันจะมีเพียงตัวเลขหลักเดียว สิ่งนี้เป็นสิ่งสำคัญที่ต้องจำไว้เนื่องจากตัวเลขหนึ่งหลักมักจะทำให้งาน Cron ไม่ถูกต้องและจะไม่ถูกดำเนินการเลย ในตอนท้ายของโครงสร้าง con เครื่องหมายดอกจันบ่งชี้ว่างานควรทำในวันใดของสัปดาห์ นี่เป็นสิ่งสำคัญเนื่องจากการตั้งค่าเป็น 30 สำหรับวันพุธจะหมายความว่างานจะดำเนินการในวันที่ 03 กรกฎาคมเท่านั้นหากวันนั้นเป็นวันอังคาร นั่นน่าจะเกิดขึ้นทุกๆเจ็ดหรือแปดปีซึ่งเป็นเรื่องเล็กน้อยสำหรับนักพัฒนาส่วนใหญ่ที่จะต้องพิจารณา

การพิจารณาที่สำคัญอีกประการหนึ่งในการตั้งค่างาน Cron คือรูปแบบชั่วโมงเป็นเวลาในการทหาร 24 ชั่วโมงมากกว่าเวลาพลเรือนใน 12 ชั่วโมง หากต้องการเปลี่ยนเวลาของงาน Cron เป็น 10 น. น. ชั่วโมงจะเปลี่ยนเป็น 22 แทน 10 ปัจจุบัน

ตัวอย่างงานของ Cron

สุดท้ายหากผู้ใช้เพียงต้องการทำงานให้เสร็จสิ้นทุกวันรายเดือนหรือรายปีก็สามารถข้ามขั้นตอนการตั้งเวลาที่ต้องการได้ทั้งหมด แต่กระบวนการทำงานของ Cron ให้ใช้เพียงตัวแปรที่กำหนดเมื่องานทำในช่วงเวลาเหล่านี้บ่อยๆ ซึ่งรวมถึง:

  • @daily
  • @monthly
  • @yearly

เนื่องจากไม่สามารถควบคุมและกำหนดเวลาได้อย่างเข้มงวดโดยใช้ชั่วโมงและนาทีงานเหล่านี้จะเกิดขึ้นในเวลาเที่ยงคืนตามเวลาภายในของเซิร์ฟเวอร์ตามช่วงเวลาที่ร้องขอ นั่นหมายความว่าช่วงเวลา @monthly จะเกิดขึ้นในเวลาเที่ยงคืนของวันแรกของทุกเดือน ช่วงเวลา @ ปีจะเกิดขึ้นในเวลาเที่ยงคืนของวันแรกของทุกปี และช่วง @daily จะเกิดขึ้นในเวลาเที่ยงคืนทุกวันของปี

ซึ่งง่ายกว่าการตั้งค่าวันที่เวลาและวันในแต่ละวัน แต่งานบางอย่างที่กำลังดำเนินการอยู่ในเวลาเที่ยงคืนในวันแรกของเดือนหรือปีอาจมีข้อบกพร่องบางอย่างสำหรับลูกค้าบางราย รักษาความต้องการของผู้ดูแลระบบและผู้เยี่ยมชมไซต์ไว้เสมอเมื่อจัดตารางงานที่เกิดขึ้นในเวลาเที่ยงคืน

เข้าใจ "COMMAND" Variable และจะทำอย่างไรกับมัน

ดังที่เห็นได้จากตัวอย่างด้านบนการสร้างงาน Cron จริงนั้นค่อนข้างง่าย วันที่ต้องถูกกำหนดก่อนจากนั้นฟังก์ชันของงาน Cron จะถูกกำหนดทันทีหลังจากนั้น ฟังก์ชันนั้นสามารถเป็นอะไรก็ได้อย่างแท้จริงรวมถึงการเรียกใช้สคริปต์ PHP หรือเรียกใช้สคริปต์สำรองที่กำหนดเองซึ่งเก็บไฟล์และข้อมูลของเซิร์ฟเวอร์ในไฟล์ระยะไกลหรือไฟล์ภายในเครื่อง เพื่อความกระจ่างเราจะสร้างตัวอย่างที่ก่อนหน้านี้เคยใช้และสั่งให้งาน Cron รันสคริปต์ PHP ในเดือนกรกฎาคม 7th ที่ 10: 30 ในตอนเช้า สคริปต์ PHP นี้จะถูกเรียกว่า "backup.php" และเราจะสมมติว่าไฟล์ PHP เป็นสคริปต์การสำรองข้อมูลเต็มรูปแบบที่รวบรวมบีบอัดและจัดเก็บไฟล์ไซต์ในวันที่เจ็ดของเดือนเมื่อได้รับคำสั่งจากเซิร์ฟเวอร์ นี่คือสิ่งที่ดูเหมือนว่า:

30 10 07 07 * http://your-domain-name.com/backup-scripts/backup.php

เมื่องาน Cron นี้ถูกป้อนลงในรายการของแท็บ Cron ของเซิร์ฟเวอร์งานจะถูกดำเนินการโดยอัตโนมัติที่ 10: 30 am ทุก ๆ 7 กรกฎาคมของทุกปี มันจะเรียกใช้สคริปต์สำรอง PHP ที่อยู่ในไดเรกทอรี“ backup-สคริปต์” และนั่นคือจุดที่อัจฉริยะที่แท้จริงของการติดตั้งงาน Cron

แทนที่จะต้องใช้คำสั่งขั้นสูงของผู้ใช้ในการดำเนินการต่างๆเช่นการสำรองข้อมูลไซต์และการล้างข้อมูลแคชก็จะทำให้ผู้ใช้สามารถเรียกใช้สคริปต์ที่มีอยู่ได้ในช่วงเวลาที่กำหนดหรือในวันที่ที่ระบุในเวลาที่กำหนด ซึ่งหมายความว่าไม่มีความรู้ด้านการเขียนโปรแกรมขั้นสูงเกินกว่าที่ผู้ใช้รู้อยู่แล้ว PHP มีความสามารถในการสำรองไฟล์ไซต์ได้อย่างสมบูรณ์เช่นเดียวกับไฟล์ขั้นสูงและภาษาโปรแกรมที่ผู้ใช้ที่ซับซ้อนอาจพัฒนาขึ้นสำหรับเซิร์ฟเวอร์ Linux ของตน

การตั้งค่าอย่างง่ายนี้สามารถใช้ทำอะไรได้บ้างตราบเท่าที่สคริปต์ที่เขียนไว้ล่วงหน้าจะช่วยให้การดำเนินการเหล่านั้นไม่ขึ้นกับการป้อนข้อมูลของผู้ใช้ นี่ไม่ได้หมายความว่าสคริปต์ใด ๆ ที่ดำเนินการโดยงาน Cron ภายในแท็บ Cron ต้องเป็นไปโดยอัตโนมัติแบบเต็มรูปแบบและสามารถทำงานได้ด้วยตัวเอง ตัวอย่างเช่นจะเป็นไปไม่ได้ (และไร้เหตุผล) เพื่อบอกให้งาน Cron ดำเนินการดัชนี WordPress หรือไฟล์ธีมทุกวันในเวลาเดียวกัน มีเพียงไม่มีการกระทำหรือกระบวนการอัตโนมัติที่กำหนดไว้และในขณะที่งาน Cron แน่นอนจะรันไฟล์ก็จะไม่ทำอะไรเลยและจะนั่งนิ่งจนกว่าผู้ใช้ป้อนข้อมูลได้รับในทางอื่น

ด้วยเหตุนี้ถ้าการเข้ารหัสหรือดาวน์โหลดสคริปต์สำรองหรืออื่น ๆ เพื่อทำงานกับงาน Cron โปรดตรวจสอบให้แน่ใจว่าพวกเขาต้องการให้ผู้ใช้ป้อนข้อมูลผู้ใช้เป็นศูนย์เสมอเพื่อทำหน้าที่ของตนได้สำเร็จ กำหนดการงานอัตโนมัติจะต้องจับคู่กับกระบวนการอัตโนมัติภายในไฟล์ที่จะดำเนินการ ไม่มีข้อยกเว้นสำหรับกฎนี้

การควบคุมแฟ้ม Tab Cron โดยรวมบนเซิร์ฟเวอร์โดยทั่วไป

งานเฉพาะ Cron ทั้งหมดที่ระบุไว้สำหรับการดำเนินการอยู่ภายในไฟล์ขนาดใหญ่ที่เรียกว่าแท็บ Cron เซิร์ฟเวอร์บางเครื่องมีแท็บ Cron หลายแบบสำหรับแอ็พพลิเคชันและอินพุตอัตโนมัติหลายแบบ แต่เป็นเรื่องที่หาได้ยากและได้รับการสงวนไว้เป็นส่วนใหญ่สำหรับผู้ดำเนินการเซิร์ฟเวอร์และเจ้าของที่ทันสมัยที่สุด ผู้ที่มีไฟล์แท็บ Cron เพียงไฟล์เดียวสามารถใช้คำสั่งด้านล่างเพื่อแก้ไขลบหรือดูไฟล์อย่างครบถ้วนโดยแต่ละงานอัตโนมัติที่ระบุไว้สำหรับการดูภายในไฟล์

crontab -r

คำสั่งนี้จะลบ (เช่น“ r”) หรือลบไฟล์แท็บ Cron ทั้งหมด สิ่งนี้จะล้างคำสั่งทั้งหมดและสคริปต์อัตโนมัติอย่างมีประสิทธิภาพและกู้คืนเป็นไฟล์ว่างที่สามารถสร้างใหม่ได้ นี่เป็นตัวเลือกที่เหมาะสมสำหรับผู้ที่จัดการแฟ้มที่เสียหายหรืองานที่ไม่เหมาะสมและเวลา บางครั้งการเริ่มต้นใหม่ทั้งหมดทำได้ง่ายกว่า

crontab -e

ในกรณีนี้ "e" หมายถึง "edit" ผู้ใช้เหล่านี้ที่ต้องการแก้ไขฟังก์ชันที่อธิบายไว้ในแท็บ Cron แทนที่จะลบไฟล์ทั้งหมดสามารถใช้คำสั่งนี้เพื่อนำไปแก้ไขบรรทัดคำสั่งซึ่งจะอนุญาตให้ เพิ่มงานใหม่ลบไฟล์เก่าหรือเปลี่ยนเวลากำหนดการที่บังคับใช้สำหรับแต่ละงานของ Cron ที่ระบุไว้ในเอกสารแท็บ cron

crontab -l

ในกรณีนี้มันง่ายพอที่จะจำได้โดยเชื่อมโยง“ L” กับ“ ลุค คำสั่งนี้อนุญาตให้ผู้ดูแลระบบเซิร์ฟเวอร์สามารถดูเนื้อหาทั้งหมดของไฟล์แท็บ Cron ได้โดยไม่ต้องลบมันออกจากเซิร์ฟเวอร์ทั้งหมดและไม่สามารถแก้ไขเนื้อหาได้ การแสดงผลเนื้อหาแท็บ Cron แบบอ่านอย่างเดียวนี้สมบูรณ์แบบสำหรับการจดจำงานที่กำหนดเวลาไว้และเพื่อตรวจสอบความสมบูรณ์ของไฟล์

ทำไมจึงเป็นเรื่องสำคัญที่คุณจะต้องทำงาน Cron ให้เป็นไฟล์ Cron Tab Automation

โดยทั่วไปสิ่งเดียวที่อัตโนมัติเกี่ยวกับเซิร์ฟเวอร์คือการปั่นฮาร์ดดิสก์และประสิทธิภาพของคุณสมบัติฮาร์ดแวร์ นอกเหนือจากนั้นเซิร์ฟเวอร์จะต้องได้รับการฝึกอบรมและรับคำแนะนำให้ทำกิจวัตรประจำวันและพิเศษที่ไปไกลกว่าการแสดงแผงควบคุมซอฟต์แวร์หรืออัพเกรดการติดตั้ง PHP หรือ Perl ที่ผู้ใช้วางไว้บนฮาร์ดดิสก์

สิ่งสำคัญคือให้จำไว้ว่าหนึ่งในฟังก์ชั่นที่สำคัญที่สุดที่เซิร์ฟเวอร์สามารถใช้งานได้เป็นประจำคือการสร้างการสำรองข้อมูลและการตั้งค่าของไซต์ แทบจะไม่มีวิธีใดที่จะทำให้กระบวนการนี้เป็นอัตโนมัติโดยไม่มีงาน Cron และเนื่องจากลักษณะของอินเทอร์เน็ตและผู้เยี่ยมชมที่เป็นอันตรายซึ่งผ่านเว็บไซต์ทุกวันความล้มเหลวในการทำให้กระบวนการนี้เป็นรายวันหรือรายสัปดาห์เป็นผล และการสูญเสียข้อมูลหายนะ

ยิ่งไปกว่านั้นมีหลายงานที่ควรดำเนินการโดยอัตโนมัติโดยใช้กระบวนการงาน Cron งานเหล่านี้รวมถึงการล้างแคชไซต์ใด ๆ ที่อาจแสดงภาพที่ล้าสมัยหรือเนื้อหาที่พิมพ์ออกมาให้ผู้เยี่ยมชมเว็บไซต์ นอกจากนี้ยังรวมถึงการลบไฟล์เก่าการล้างไดเรกทอรีและรูปภาพเก่าและตรวจสอบให้แน่ใจว่าทุกสิ่งที่เก็บไว้ในฮาร์ดดิสก์ของเซิร์ฟเวอร์นั้นเป็นปัจจุบันและไม่เสียหาย

เช่นเดียวกับคอมพิวเตอร์ส่วนบุคคลที่มีสุขภาพดีโดยอัตโนมัติจะกำหนดเวลาการบำรุงรักษาดิสก์การสแกนไวรัสและมัลแวร์การอัปเดตซอฟต์แวร์และการลบไฟล์เซิร์ฟเวอร์ที่มีสุขภาพดีจะต้องได้รับการกำหนดค่าเพื่อดูแลตัวเองและคงสถานะที่ดี มิฉะนั้นจะกลายเป็นความเสี่ยงที่จะเกิดปัญหาความพยายามลักลอบและการสูญหายของข้อมูลที่จะนำไปสู่การสูญเสียผลกำไรการโฆษณาการสร้างเนื้อหาและแม้กระทั่งสถานะการจัดอันดับของเครื่องมือค้นหา

ง่ายต่อการเรียนรู้และใช้งานได้ง่ายขึ้น

การสร้างงาน Cron ภายในแท็บ Cron มาตรฐานเป็นสิ่งที่ง่ายที่สุดที่ผู้ดูแลระบบเซิร์ฟเวอร์สามารถทำได้

กระบวนการนี้อยู่ภายในบรรทัดคำสั่งมาตรฐานและแบ่งส่วนของเวลาออกเป็นรหัสสองหลัก

เนื่องจากไม่ต้องใช้ความรู้เพิ่มเติมเกี่ยวกับภาษาการเขียนโปรแกรมใหม่ ๆ เพื่อให้ทำงานโดยอัตโนมัติบริการจึงเป็นรากฐานของความรู้เกี่ยวกับการเขียนโปรแกรมและเซิร์ฟเวอร์ที่มีอยู่ซึ่งผู้ดูแลระบบมีอยู่แล้ว ด้วยเหตุนี้เองจึงไม่มีเหตุผลใดที่จะไม่เริ่มต้นทำงานโดยอัตโนมัติสำหรับเซิร์ฟเวอร์และทำให้มั่นใจถึงความสมบูรณ์ของข้อมูลไซต์และการดำเนินงาน

เกี่ยวกับ Jerry Low

ผู้ก่อตั้ง WebHostingSecretRevealed.net (WHSR) - การตรวจสอบโฮสต์ที่เชื่อถือได้และใช้งานโดยผู้ใช้ของ 100,000 ประสบการณ์มากกว่า 15 ปีในเว็บโฮสติ้งการตลาดพันธมิตรและ SEO ผู้ร่วมให้ข้อมูลแก่ ProBlogger.net, Business.com, SocialMediaToday.com และอีกมากมาย