Linux Crontab รันคำสั่งงานสคริปต์เป็นประจำ & ตั้งค่าการใช้งานไฟล์การกำหนดค่า

ไดเรกทอรีบทความ

ลินุกซ์กระบวนการ cron ในตัวสามารถช่วยเราตอบสนองความต้องการในการรันงานตามกำหนดเวลา การใช้ cron และเชลล์สคริปต์ ไม่มีปัญหาในการรันคำสั่งงานที่ซับซ้อนมากเป็นประจำ

โครนคืออะไร?

ที่เราใช้บ่อยคือcrontabคำสั่งซึ่งย่อมาจากตาราง cron

เป็นไฟล์กำหนดค่าสำหรับ cron ซึ่งสามารถเรียกได้ว่าเป็นรายการงาน

เราสามารถค้นหาไฟล์การกำหนดค่าที่เกี่ยวข้องในโฟลเดอร์ต่อไปนี้

  • ไดเร็กทอรี /var/spool/cron/ เก็บงาน crontab สำหรับผู้ใช้แต่ละรายรวมถึงรูท และแต่ละงานตั้งชื่อตามผู้สร้าง
  • /etc/crontab ไฟล์นี้มีหน้าที่ในการจัดกำหนดการงานการดูแลและบำรุงรักษาต่างๆ
  • /etc/cron.d/ ไดเร็กทอรีนี้ใช้สำหรับเก็บไฟล์ crontab หรือสคริปต์ที่จะดำเนินการ
  • เรายังสามารถใส่สคริปต์ใน /etc/cron.hourly, /etc/cron.daily, /etc/cron.weekly, /etc/cron.monthly ไดเร็กทอรี ให้มันทำงานทุกชั่วโมง/วัน/สัปดาห์ ทุกเดือน

Crontab ใช้อย่างไร?

คำสั่งที่ใช้กันทั่วไปของเรามีดังนี้:

crontab [-u username]    //省略用户名表示操作当前用户的crontab
    -e      (编辑工作表)
    -l      (列出工作表里的命令)
    -r      (删除工作表)

เราใช้crontab -eป้อนการแก้ไขเวิร์กชีตของผู้ใช้ปัจจุบัน ซึ่งเป็นอินเทอร์เฟซ vim ทั่วไปแต่ละบรรทัดเป็นคำสั่ง

แก้ไขแผ่นงาน▼

crontab -e

รายการเวิร์กชีต▼

crontab -l

ลบแผ่นงาน ▼

crontab -r 

คำสั่งของ crontab ประกอบด้วยเวลา + การกระทำ และเวลาของมันคือนาที ชั่วโมง วัน เดือน สัปดาห์ห้า ตัวดำเนินการมี

  • * ตัวเลขทั้งหมดในช่วง
  • / กี่ตัวเลข
  • - จาก X ถึง Z
  • ,แฮชตัวเลข

Crontab ดำเนินการตัวอย่างคำสั่งงานที่กำหนดเวลาไว้

Linux Crontab รันคำสั่งงานสคริปต์เป็นประจำ & ตั้งค่าการใช้งานไฟล์การกำหนดค่า

ตัวอย่างที่ 1: ดำเนินการ myCommand ทุก 1 นาที

* * * * * myCommand

ตัวอย่างที่ 2: ดำเนินการในนาทีที่ 3 และ 15 ของทุก ๆ ชั่วโมง

3,15 * * * * myCommand

实例3:在上午8点到11点的第3和第15分钟执行

3,15 8-11 * * * myCommand

实例4:每隔两天的上午8点到11点的第3和第15分钟执行

3,15 8-11 */2  *  * myCommand

实例5:每周一上午8点到11点的第3和第15分钟执行

3,15 8-11 * * 1 myCommand

ตัวอย่างที่ 6: รีสตาร์ท smb เวลา 21:30 น. ทุกคืน

30 21 * * * /etc/init.d/smb restart

实例7:每月1、10、22日的4 : 45重启smb

45 4 1,10,22 * * /etc/init.d/smb restart

ตัวอย่างที่ 8: รีสตาร์ท smb เวลา 1:10 น. ทุกวันเสาร์และอาทิตย์

10 1 * * 6,0 /etc/init.d/smb restart

ตัวอย่างที่ 9: เริ่ม smb ใหม่ทุก ๆ 18 นาทีระหว่างเวลา 00:23 ถึง 00:30 น. ทุกวัน

0,30 18-23 * * * /etc/init.d/smb restart

ตัวอย่างที่ 10: รีสตาร์ท smb ทุกวันเสาร์ เวลา 11:00 น.

0 23 * * 6 /etc/init.d/smb restart

ตัวอย่างที่ 11: รีสตาร์ท smb ทุก ๆ ชั่วโมง

* */1 * * * /etc/init.d/smb restart

ตัวอย่างที่ 12: รีสตาร์ท smb ทุกชั่วโมงระหว่าง 11 น. ถึง 7 น.

* 23-7/1 * * * /etc/init.d/smb restart

จะลบงาน Crontab ที่ระบุได้อย่างไร?

SSH ป้อนคำสั่ง crontab ต่อไปนี้ ▼

crontab -e
  • สมมติว่าหลายงาน ลบงานที่กำหนดเวลาไว้เป็นกลุ่ม (เลื่อนเคอร์เซอร์ไปที่บรรทัดการกำหนดค่าที่จะลบ กดปุ่มลบเพื่อลบ)

:wq บันทึกและออก

ตรวจสอบเพื่อดูว่างาน Crontab ถูกลบหรือไม่

crontab -l
  • พบว่างานที่กำหนดเวลาไว้ของ crontab ที่เพิ่งถูกลบไม่มีอยู่ ซึ่งหมายความว่าการลบสำเร็จ

แผงควบคุม CWPวิธีตั้งค่างานตามกำหนดเวลาของ Crontab

  • ในงานที่กำหนดเวลาไว้ ให้เพิ่มคำสั่งการซิงโครไนซ์เพื่อซิงโครไนซ์ไฟล์สำรองข้อมูลของแผงควบคุม CWP กับ GDrive โดยอัตโนมัติ

หากใช้แผงควบคุม CWP ให้เข้าสู่ระบบ CWP Control PanelServer SettingCrontab for root ▼

วิธีตั้งค่างาน Crontab timed ให้ซิงค์กับ GDrive ในแผงควบคุม CWP โดยอัตโนมัติครั้งที่ 2

ใน "เพิ่มงาน Cron แบบกำหนดเองแบบเต็ม" ให้ป้อนคำสั่ง cron แบบกำหนดเองทั้งหมดต่อไปนี้ ▼

00 7 * * * rclone sync /backup2 gdrive:cwp-backup2
55 7 * * * rclone sync /newbackup gdrive:cwp-newbackup
  • (ซิงค์ไดเรกทอรีท้องถิ่นโดยอัตโนมัติทุกเช้าเวลา 7:00 น. /backup2ไปยังดิสก์เครือข่ายที่มีชื่อการกำหนดค่า gdrivebackup2สารบัญ)
  • (ซิงค์ไดเรกทอรีท้องถิ่นโดยอัตโนมัติทุกเช้าเวลา 7:55 น. /newbackup  ไปยังดิสก์เครือข่ายที่มีชื่อการกำหนดค่า gdrivecwp-newbackupสารบัญ)
  • เดินเหมือนกันWordPressสำหรับไฟล์เว็บไซต์ ขอแนะนำไม่ให้สำรองข้อมูลทีละน้อย เพราะจากการทดสอบพบว่าถ้าชื่อไฟล์เหมือนกัน แต่เนื้อหาของไฟล์ต่างกัน ไฟล์จะไม่ซิงโครไนซ์

เนื่องจากการกำหนดเวลาเริ่มต้นrcloneหลังจากการซิงโครไนซ์อัตโนมัติเสร็จสิ้น กระบวนการ rclone อาจยังคงทำงานในพื้นหลัง ซึ่งจะกินทรัพยากร CPU มากถึงประมาณ 20% และทำให้สิ้นเปลืองทรัพยากรเซิร์ฟเวอร์

ดังนั้นจึงจำเป็นต้องเพิ่มคำสั่งงานตามกำหนดเวลาที่ปรับแต่งอย่างเต็มที่เพื่อบังคับให้ปิดกระบวนการ rclone ▼

00 09 * * * killall rclone
  • (บังคับปิดกระบวนการ rclone โดยอัตโนมัติเวลา 7:00 น. ทุกเช้า)

หากแผงควบคุม CWP ไม่สามารถแก้ไขงานที่กำหนดเวลาไว้ของ Crontab ได้ คุณสามารถใช้ FTP软件打 文件件 /var/spool/cron/ แก้ไขงานหมดเวลาของ Crontab โดยตรง

จะใช้การสำรองข้อมูล rclone สำหรับ VPS ได้อย่างไร?กรุณาคลิกลิงค์ด้านล่างเพื่อดูCentOSการใช้ GDrive Automatic Sync Tutorial▼

หวัง Chen Weiliang บล็อก ( https://www.chenweiliang.com/ ) แชร์ "Linux Crontab Scheduled Script Task Command & Setting Configuration File Usage" ซึ่งเป็นประโยชน์กับคุณ

ยินดีต้อนรับสู่การแบ่งปันลิงค์ของบทความนี้:https://www.chenweiliang.com/cwl-1429.html

ยินดีต้อนรับสู่ช่อง Telegram ของบล็อกของ Chen Weiliang เพื่อรับข่าวสารล่าสุด!

🔔 เป็นคนแรกที่ได้รับ "คู่มือการใช้งานเครื่องมือ AI การตลาดเนื้อหา ChatGPT" อันทรงคุณค่าในไดเรกทอรีด้านบนของช่อง! 🌟
📚 คู่มือนี้มีคุณค่ามหาศาล 🌟 นี่เป็นโอกาสที่หายาก อย่าพลาด! ⏰⌛💨
แชร์และชอบถ้าคุณชอบ!
การแบ่งปันและไลค์ของคุณเป็นแรงจูงใจอย่างต่อเนื่องของเรา!

 

发表评论

ที่อยู่อีเมลของคุณจะไม่ถูกเผยแพร่ 必填项已用 * 标注