Setting up Cronjob

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

Ruk-Com Cloud ให้คุณสามารถรันโปรแกรมของคุณในเวลาที่กำหนดด้วยความช่วยเหลือจาก cron คุณสามารถใช้สิ่งนี้เพื่อทำงานตามสถานการณ์ที่ได้รับ:

  • การล้าง logs
  • การสำรองข้อมูล
  • การรันสคริปต์

คุณสามารถดูตัวอย่างได้ด้านล่าง

การสร้าง environment

1. เข้าสู่ระบบ Ruk-Com Cloud Dashboard

2. คลิกปุ่ม New environment



3. ในหน้า environment topology ให้เลือกแอปพลิเคชันเซิร์ฟเวอร์และฐานข้อมูลที่คุณต้องการใช้ (เช่น Tomcat และ MySQL) พิมพ์ชื่อของ environment และคลิก Create

ในเวลาไม่กี่นาที environment ของคุณพร้อมทั้งโหนด Tomcat และ MySQL จะถูกสร้างขึ้น

การอัปโหลดสคริปต์

Application Server

1. คลิกปุ่ม Config สำหรับแอปพลิเคชันเซิร์ฟเวอร์ของคุณ

2. อัปโหลดสคริปต์ที่คุณต้องการรันไปยังโฟลเดอร์ต่อไปนี้

  • home – หากคุณใช้ Java server ใน environment ของคุณ (ตามที่เรายกตัวอย่างในคำแนะนำนี้)
  • โฟลเดอร์ที่จัดเก็บแอปพลิเคชันของคุณ – หากคุณใช้ PHP server ใน environment ของคุณ
Database

1. คลิกปุ่ม Config สำหรับฐานข้อมูล (MySQL หรือ MariaDB)

2. อัปโหลดสคริปต์ที่คุณต้องการดำเนินการไปยังโฟลเดอร์สคริปต์

หมายเหตุ: สคริปต์ที่คุณต้องการดำเนินการควรเป็นไฟล์ปฏิบัติการ หากไม่ใช่คุณสามารถใช้ตัวแปรภาษาในตัว เช่น Bash, Perl, Python, SED, AWK หรือ Expect (ขึ้นอยู่กับสคริปต์ที่คุณใช้)

Cron Event Scheduler

1. ในแท็บการกำหนดค่าที่เปิดอยู่ ให้ไปที่โฟลเดอร์ cron และเปิดไฟล์ {nodeName}

2. ในส่วนนี้คุณสามารถเขียนคำสั่งที่จำเป็นทั้งหมดเพื่อกำหนดตารางเวลางานของคุณซึ่งควรประกอบด้วยรูปแบบพื้นฐานของการกำหนด crontab ที่ประกอบด้วย 6 ช่องและคั่นด้วยช่องว่าง

{minute} {hour} {day} {month} {day-of-week} {command-line-to-execute}
FieldRange of values
minute0-59
hour0-23
day1-31
month1-12
day-of-week0-7 (โดยที่ทั้ง 0 และ 7 หมายถึง Sun, 1 = Mon, 2 = Tue เป็นต้น)
command-line-to-executeเส้นทางไปยังโปรแกรมที่คุณต้องการเรียกใช้

ในขณะที่ระบุค่าคุณต้องปฏิบัติตามมาตรฐานนี้:

  • ฟิลด์จะต้องอยู่ในลำดับที่แน่นอน โดยไม่มีฟิลด์ว่างหรือขาดหายไป
  • หากจำเป็นคุณสามารถใช้อักขระแทน – “*” (เครื่องหมายดอกจัน) ในไฟล์ crontab จะแสดงถึงทุกค่าที่เป็นไปได้สำหรับฟิลด์ ตัวอย่างเช่นการระบุ “*” ในช่อง “ชั่วโมง” หมายถึง “รันทุกชั่วโมง”
  • อักขระ “/” ใช้เพื่อกำหนดความถี่เพิ่มเติม ตัวอย่างเช่น “* / 3” ใน “ชั่วโมง” หมายถึง “ทุกสามชั่วโมง”
  • สำหรับแต่ละพารามิเตอร์คุณสามารถระบุค่าได้หลายค่าโดยคั่นด้วยเครื่องหมายจุลภาค ตัวอย่างเช่น หากใน “ชั่วโมง” คุณพิมพ์ “1,6,19” งานจะรัน “เวลา 1:00 น. เวลา 6:00 น. และ 19 ชั่วโมง” คุณยังสามารถระบุช่วงเวลาได้ เช่น “8-17” หมายความว่าโปรแกรมจะรัน “ทุกชั่วโมงตั้งแต่ 8 ถึง 17”

คุณควรระบุ path แบบเต็มไปยังสคริปต์ของคุณด้วยคำสั่ง cron ขึ้นอยู่กับตำแหน่งของสคริปต์ของคุณ เส้นทางสามารถเป็นอย่างใดอย่างหนึ่งต่อไปนี้:

– โฟลเดอร์ home สำหรับการคำนวณ Java nodes:
/opt/tomcat/temp/{scriptName} – Tomcat, TomEE
/opt/jetty/home/{scriptName} – Jetty
/opt/glassfish3/temp/{scriptName} – GlassFish


– โฟลเดอร์ที่มีไฟล์แอปพลิเคชันและสคริปต์สำหรับการคำนวณ PHP nodes:
/var/www/webroot/{appFolder}/{scriptName}

– โฟลเดอร์สคริปต์สำหรับ MySQL/MariaDB databases:
/var/lib/jelastic/bin/{scriptName}

3. ตัวอย่างเช่น หากสคริปต์ของคุณอยู่ในโฟลเดอร์ home ของ Tomcat และคุณต้องการให้ดำเนินการทุกนาที บรรทัดคำสั่งของคุณอาจมีลักษณะดังนี้:

*/1 * * * *  /opt/tomcat/temp/test.sh

เคล็ดลับ: หากสคริปต์ของคุณไม่มี flag ปฏิบัติการและคุณใช้ตัวแปลภาษาเป็นโปรแกรมในตัว เช่น Bash, Perl, Python, SED, AWK หรือ Expect (ขึ้นอยู่กับสคริปต์ของคุณ) คุณควรเพิ่มเส้นทางต่อไปนี้หลังจากการตั้งค่าเวลาสำหรับการระบุตัวแปลภาษาเป็นโปรแกรมอย่างชัดเจน:

– /bin/bash – สำหรับ Bash
– /usr/bin/python – สำหรับ Python
– /usr/bin/perl – สำหรับ Perl
– /bin/sed – สำหรับ SED
– /bin/awk – สำหรับ AWK
– /usr/bin/expect – สำหรับ Expect
– /usr/bin/php – สำหรับ php-interpreter



ในกรณีนี้คำสั่งของคุณจะเป็นดังนี้:

*/1 * * * *  /bin/bash /opt/tomcat/temp/test.sh

4. โปรดตรวจสอบให้แน่ใจว่ามีบรรทัดว่างหลังจากรายการ cronjob ล่าสุด

5. บันทึกการเปลี่ยนแปลงเพื่อใช้การตั้งค่า