เทอร์มินัล Linux ช่วยให้เราทำอะไรได้มากกว่าแค่การพิมพ์คำสั่งเท่านั้น ในกรณีนี้เราจะพูดถึงการทำงานอัตโนมัติด้วย Cron ระบบอัตโนมัติช่วยให้เราไม่เพียงแต่หลีกเลี่ยงงานซ้ำๆ ซากๆ เท่านั้น แต่ยังช่วยให้คอมพิวเตอร์ทำงานเหล่านั้นเมื่อเราไม่อยู่ได้อีกด้วย สิ่งนี้มีประโยชน์อย่างยิ่งบนเซิร์ฟเวอร์
Cron คือเดมอนที่รับผิดชอบในการดำเนินงานในช่วงเวลาที่กำหนด แม้ว่าหน้าที่ของมันคือการจัดการงานบำรุงรักษาระบบปกติ แต่เราสามารถเพิ่มงานอื่น ๆ ที่น่าสนใจให้กับเราได้
เมื่อเราพูดถึงปีศาจ เราไม่ได้หมายถึงปีศาจตัวเล็กๆ ในคอมพิวเตอร์ของเรา ในการประมวลผล เดมอนคือแอปพลิเคชันหรือกระบวนการที่ทำงานเบื้องหลังของระบบปฏิบัติการโดยไม่ต้องมีการโต้ตอบโดยตรงกับผู้ใช้ ความรับผิดชอบของพวกเขาได้แก่ การเชื่อมต่อเครือข่าย การพิมพ์ เซิร์ฟเวอร์เว็บ และการตรวจสอบทรัพยากร
คุณสมบัติหลักบางประการ
- โดยปกติจะเริ่มต้นด้วยการบูตระบบ
- พวกมันทำงานอยู่เบื้องหลังโดยที่ผู้ใช้ไม่จำเป็นต้องรับรู้ถึงการมีอยู่ของพวกมัน
- ถูกออกแบบมาเพื่อดำเนินการงานอย่างถาวรหรือเป็นการตอบสนองต่อเหตุการณ์บางอย่าง
การทำงานอัตโนมัติด้วย Cron
หากเราต้องการบอก Cron ให้ทำอะไร เราสามารถทำได้โดยใช้ไฟล์ crontab เป็นเพียงไฟล์ข้อความที่ระบุชุดคำสั่งที่ cron จะต้องดำเนินการในวันที่ระบุ ไฟล์ crontab มีอยู่ 2 ประเภท ได้แก่ ไฟล์ crontab ที่ระบบสร้างและไฟล์ crontab ที่ผู้ใช้สร้าง
โดยเด็ดขาด เราไม่ควรแตะไฟล์ crontab ของระบบ ซึ่งใช้โดย Linux สำหรับการกำหนดค่าและการบำรุงรักษา ไม่สามารถแก้ไขได้โดยไม่ได้ตั้งใจเนื่องจากไฟล์นี้ตั้งอยู่ในโฟลเดอร์ /etc/crontab
การสร้าง crontab ของเราเอง
Cron ต้องการให้งานที่เรามอบหมายมีพารามิเตอร์ตามที่ระบุในลำดับนี้:
h: เวลาเริ่มต้นในช่วง 0-23.
m: นาทีในช่วง 0-59.
d: วันที่ของเดือนระหว่างช่วง 1-31
ฉัน: ระบุเดือนของปีโดยมีช่วง 1-12
s: วันในสัปดาห์ที่มีช่วง 0-6
ข้อมูลนี้จะอยู่ภายในไฟล์ crontab เพื่อสร้างไฟล์นี้เราเขียนคำสั่ง:
crontab –u nombre de usuario –e
หาก crontab จะเป็นของผู้ใช้เริ่มต้น เราสามารถละเว้นพารามิเตอร์ -u ได้
เมื่อเรารันครั้งแรก ระบบจะแจ้งให้ทราบว่าไฟล์นี้ไม่มีอยู่ และจะแนะนำให้สร้างไฟล์และแก้ไขด้วยโปรแกรมแก้ไขใด ๆ ที่ติดตั้งอยู่ในคอมพิวเตอร์
ประเด็นบางประการที่ควรคำนึงถึงเมื่อแก้ไข crontab ได้แก่:
- งานแต่ละอย่างดำเนินไปตามสายงาน
- ในทุกกรณี จะต้องระบุวันที่และเวลาที่ต้องดำเนินการงานแต่ละงาน เพื่อระบุความถี่ (เช่น วันอังคาร เวลา 18 น.) จะให้เขียนเครื่องหมายดอกจันแทนพารามิเตอร์ที่เหลือ (*)
- สามารถกำหนดค่ามากกว่าหนึ่งค่าให้กับพารามิเตอร์ได้ (เช่น วันอังคารและวันพฤหัสบดี เวลา 18 น.) โดยคั่นค่าทั้งสองด้วยเครื่องหมายจุลภาค
- ต้องเว้นช่องว่างระหว่างพารามิเตอร์
- ระบุไดเรกทอรีที่มีโปรแกรมเรียกใช้งานคำสั่งตั้งอยู่
เพื่อเป็นตัวอย่าง หากเราต้องการรีสตาร์ทคอมพิวเตอร์ทุกวันเวลา 19 น.:
0 19 * * * /sbin/reboot
หากต้องการให้เริ่มใหม่เฉพาะวันพุธ คำสั่งจะเป็นดังนี้:
0 20 * * 3 /sbin/reboot
.
มีทางลัดบางอย่างที่ช่วยให้เราหลีกเลี่ยงการเขียนพารามิเตอร์ทั้งหมด:
@รายชั่วโมง: หากเราต้องการดำเนินการคำสั่งในช่วงเริ่มต้นของแต่ละชั่วโมง
@รายวัน: เพื่อรันคำสั่งในช่วงเริ่มต้นของแต่ละวัน
@รายสัปดาห์: รันคำสั่งในวันแรกของสัปดาห์
@รายเดือน: คำสั่งจะถูกดำเนินการในนาทีแรกของทุกเดือน
@yearly:เหมือนเดิมแต่ในนาทีแรกของทุกปี..
ตัวอย่างการใช้คำสั่งนี้:
@daily /bin/sh /ruta_al_script/nombre_del_script.sh
ดำเนินการตามคำสั่งที่กำหนดเองในสคริปต์ bash ในช่วงเริ่มต้นของวัน
@hourly /bin/python3 /ruta_al_script/nombre_del_script.py
สร้างสคริปต์ Python ให้ทำงานทุก ๆ ชั่วโมง
เราควรตรวจสอบให้แน่ใจเสมอว่าสคริปต์มีสิทธิ์ในการดำเนินการ