Computer >> คอมพิวเตอร์ >  >> สมาร์ทโฟน >> Linux

เพิ่มผลผลิต Linux/Unix ของคุณ:วิธีใช้crontab

คำแนะนำโดยละเอียดนี้จะอธิบายวิธีใช้คำสั่ง crontab เพื่อกำหนดเวลางานใน Linux/Unix

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

คำสั่ง crontab ช่วยให้คุณสามารถสั่งให้เซิร์ฟเวอร์ของคุณรันสคริปต์ในนาทีที่ระบุของวันที่ระบุของเดือนนั้น ๆ หากต้องการดูว่างาน cron ใดถูกตั้งค่าให้ทำงานบนเครื่องของคุณ ให้เรียกใช้คำสั่งต่อไปนี้:

# crontab -l

หากเครื่องของคุณมีงาน cron ที่กำหนดค่าไว้ เครื่องจะแสดงข้อมูลดังนี้:

0 6 * * * /opt/scripts/backup_script.sh

การกำหนดค่า crontab ด้านบนแสดงงาน cron ที่รันเชลล์สคริปต์ “backup_script” ทุกวันเวลา 6.00 น. * หมายถึงการทำงานในทุกอินสแตนซ์ของค่าในฟิลด์ ดังนั้น เครื่องหมายดอกจันในช่องวัน เดือน และวันในสัปดาห์ในตัวอย่างข้างต้นหมายความว่าสคริปต์ควรรันทุกวันของเดือน ทุกเดือนของปี และทุกวันในสัปดาห์ ฟิลด์แรกและฟิลด์ที่สองบอกให้ crontab รันสคริปต์ที่ศูนย์นาทีและหกชั่วโมง ซึ่งก็คือ 6:00 น. ดังนั้นการกำหนดค่างาน cron นี้จะอ่านประมาณนี้ "เรียกใช้สคริปต์ /opt/scripts/backup_script.sh ที่ศูนย์นาที, 6:00 น. ทุกวัน ทุกเดือน และทุกวันในสัปดาห์" ด้านล่างนี้คือ "กายวิภาค" ของการกำหนดค่า crontab ที่อธิบาย

0 6 * * * /opt/scripts/backup_script.sh
| | | | |
| | | | |________________ วันในสัปดาห์ (อาทิตย์=0)
| | | |__________________ เดือนของปี
| | |____________________ วันของเดือน
| |______________________ ชั่วโมงของวัน
|__________________________ นาทีของชั่วโมง

หากต้องการกำหนดเวลางาน cron ใหม่หรือแก้ไขงานเก่าให้รันคำสั่งต่อไปนี้:

# crontab -e

นี่จะแสดงตัวแก้ไขที่คุณสามารถเพิ่ม แก้ไข หรือลบ “งาน cron” หากต้องการกำหนดเวลางานให้ทำงานเวลา 15:45 น. ทุกวันจันทร์ ให้เพิ่มรายการดังนี้:

45 15 * * 1 /opt/scripts/script.sh

คุณยังสามารถใช้เครื่องหมายจุลภาคเพื่อเพิ่มหลายรายการลงในช่องได้ สิ่งนี้มีประโยชน์หากคุณต้องการเรียกใช้สคริปต์วันละสามครั้งโดยมีช่วงเวลาแปดชั่วโมง ตรวจสอบให้แน่ใจว่าคุณไม่ได้เว้นช่องว่างระหว่างรายการในฟิลด์เดียว รายการ "งาน cron" ของคุณจะมีลักษณะดังนี้:

0 1,9,17 * 2,11 * /opt/scripts/db_backup_script.sh

ในตัวอย่างข้างต้น สคริปต์ “db_backup_script.sh” ทำงานเวลา 1.00 น., 9.00 น. และ 17.00 น. ทุกวันในเดือนกุมภาพันธ์และพฤศจิกายน มีสิ่งดีๆ มากมายที่คุณสามารถทำได้กับงาน cron งานเดียวกันสำหรับวัน เดือน และวันในสัปดาห์ เมื่อคุณเข้าใจสิ่งนี้แล้ว ให้ลองทำสิ่งต่อไปนี้ Crontab ไม่เพียงแต่เข้าใจตัวเลขเท่านั้น แต่ยังสามารถทำงานกับคำภาษาอังกฤษพื้นฐานบางคำได้อีกด้วย:

คำอธิบายสตริง
—— ———–
@reboot เรียกใช้หนึ่งครั้ง ครั้งต่อไปที่ระบบจะรีบูต
@yearly วิ่งปีละครั้ง ต้นปี
@ประจำปี เช่นเดียวกับ @yearly เรียกใช้ปีละครั้ง
@monthly วิ่งเดือนละครั้ง ต้นเดือน
@weekly วิ่งสัปดาห์ละครั้ง ต้นสัปดาห์
@daily วิ่งวันละครั้ง เวลาเที่ยงคืน
@เที่ยงคืน เช่นเดียวกับ @daily วิ่งตอนเที่ยงคืน
@hourly วิ่งชั่วโมงละครั้งในช่วงต้นชั่วโมง

ตัวอย่างเช่น หากคุณต้องการเรียกใช้สคริปต์ตอนเที่ยงคืนของทุกคืน นี่คือลักษณะการกำหนดค่า crontab ของคุณ:

@midnight /opt/scripts/script.sh

การใช้ “@midnight” แทน “0 0 * * *” จะทำงานแบบเดียวกันและรันสคริปต์ที่ขอตอนเที่ยงคืนทุกคืนในขณะที่อ่านง่ายกว่าตัวเลข คุณยังสามารถใช้ยัติภังค์เพื่อประกาศช่วงได้อีกด้วย ในคำสั่งด้านล่าง “script.sh” จะถูกดำเนินการทุกต้นชั่วโมงตั้งแต่ 1.00 น. ถึง 6.00 น.:

0 1-6 * * * /opt/scripts/script.sh

มีสิ่งดีๆอีกมากมายที่คุณสามารถทำได้ด้วย cron sysasmin ทุกคนสาบานด้วยว่ามันค่อนข้างใช้งานง่ายเมื่อคุณได้รับมันและทรงพลังมาก ใช้เครื่องมือนี้อย่างชาญฉลาด เนื่องจากการจัดตารางงานผิดพลาดในบางครั้งอาจสร้างความเสียหายได้มาก ขอแนะนำให้อ่าน "หน้าคน" ของ crontab นอกจากนี้ยังควรเรียนรู้เกี่ยวกับคำสั่ง at เนื่องจากใช้สำหรับการจัดกำหนดการคำสั่งด้วย