11 พฤศจิกายน 2567

ตั้งค่า cron สั่งให้ drush ทำงาน ก่อน backup เพื่อลดขนาดไฟล์

ตั้งค่า cron สั่งให้ drush ทำงาน ก่อน backup เพื่อลดขนาดไฟล์

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

จากการประมวลผล สรุปออกมาได้ดังนี้

คำสั่ง drush ลบไฟล์ภาพที่ Image Style สร้างขึ้น คือ

drush image:flush --all

คำสั่ง drush ลบข้อมูล cache ในฐานข้อมูล คือ

drush cache:rebuild

แล้วเอามารวมกัน พร้อมตั้งเวลา cron คือ

0 3 * * * drush -r /path/to/drupal-root image:flush --all && drush -r /path/to/drupal-root cache:rebuild

อธิบายคำสั่ง : ให้ดำเนินการทุกวัน เวลา 03:00 น. คำสั่งแรก เรียก drush ที่โฟลเดอร์ drupal-root เพื่อลบไฟล์ภาพจาก Image Style และคำสั่งที่สอง ลบไฟล์แคชในฐานข้อมูล

หรือถ้าหาก เรียกคำสั่ง drush เฉยๆ แล้วระบบไม่ทำงาน อาจจะต้องระบุไปให้ถึง path ของ drush ดังนี้

0 3 * * * /path/to/drupal-root/vender/bin/drush -r /path/to/drupal-root image:flush --all && /path/to/drupal-root/vender/bin/drush -r /path/to/drupal-root cache:rebuild

เพื่อความชัวร์ อาจจะใช้คำสั่ง pwd เพื่อตรวจสอบตำแหน่งโฟลเดอร์ปัจจุบัน