การใช้ moosh commandline เพื่อบริหารจัดการระบบ moodle
- Posted by Sutthiphong Hachit
- Categories Explicit Knowledge
- Date August 4, 2023
การติดตั้ง
เครื่องมือ moosh ต้องมี php เวอร์ชันขั้นต่ำเป็นเวอร์ชัน 5.3+ และ moodle เวอร์ชัน 1.9, 2.2 หรือสูงกว่า ซึ่งใน moodle ที่ใช้อยู่ปัจจุบันนั้นสูงกว่าที่เครื่องมือนี้ต้องการอยู่แล้วจึงสามารถใช้งานได้ และมีขั้นตอนการติดตั้งดังนี้
- ดาวน์โหลดไฟล์จาก org (https://moodle.org/plugins/view.php?id=522) จากนั้นวางไฟล์ในเซิร์ฟเวอร์ โดยต้องวางไฟล์ในตำแหน่งนอกโฟลเดอร์ของ moodle
- สร้างลิงค์ไฟล์เพื่อให้ง่ายต่อการใช้คำสั่ง ln -s $PWD/moosh.php ~/bin/moosh
การใช้งานและคำสั่ง
การใช้งานสามารถทำได้ด้วยการใช้คำสั่งในรูปแบบการพิมพ์คำสั่งโดยมีรูปแบบดังนี้
php /bin/moosh -option –command
เช่น php /bin/moosh course-backup 3
คือ การสั่งสำรองข้อมูลวิชาที่มี course id เท่ากับ 3
คำสั่งที่น่าสนใจและใช้ในการปฏิบัติงานจริง
1. Course-restore
ตัวอย่างที่ 1 กู้คืนรายวิชาเข้าสู่ categories id = 1
php /bin/moosh course-restore backup.mbz 1
ตัวอย่าง 2 กู้คืนรายวิชาเข้าสู่ course id = 3
php /bin/moosh course-restore -e backup.mbz 3
ตัวอย่าง 3 กู้คืนรายวิชาโดยไม่สนการแจ้งเตือน เช่น การกู้คืนรายวิชาจากระบบที่เวอร์ชันสูงกว่า
php /bin/moosh course-restore –ignore-warnings backup.mbz 1
ตัวอย่าง 4 กู้คืนรายวิชาเข้าสู่ courseid = 3 โดยการเขียนทับเนื้อหาเดิม
php /bin/moosh course-restore –overwrite backup.mbz 3
2. Course-backup
ตัวอย่างที่ 1 สำรองรายวิชาที่ course id = 3 เป็นไฟล์ default.mbz ในไดเรกทอรี่ที่อยู่รันคำสั่ง
php /bin/moosh course-backup 3
ตัวอย่างที่ 2 สำรองรายวิชา course id=3 และบันทึกที่ /tmp/mybackup.mbz
php /bin/moosh course-backup -f /tmp/mybackup.mbz 3
ตัวอย่างที่ 3 สำรองรายวิชา course id=3 รวมถึง logs และประวัติเกรด
php /bin/moosh course-backup –fullbackup 3
ตัวอย่างที่ 4 สำรองรายวิชา course id=3 โดยไม่รวมข้อมูลผู้ใช้ (ไม่รวม บัญชีผู้ใช้, บันทึกการใช้งาน, ประวัติเกรด, แบบทดสอบ, comments, and filters)
php /bin/moosh course-backup –template 3
แหล่งข้อมูลเพิ่มเติม
https://moosh-online.com/
You may also like
ที่มา/ปัญหา เพื่อให้การใช้งาน Docker Volumes ร่วมกับโปรแกรม Cursor และ Git Azure ได้อย่างมีประสิทธิภาพจึงต้องทำการเชื่อมต่อข้อมูลไฟล์ Project กับ Container และใช้ SSH ในการเชื่อมต่อโดยมีขั้นตอนการทำดังต่อไปนี้ สิ่งที่จำเป็นและต้องเตรียม ๑. Docker Desktop ๒. Docker Container ๓. Extension SFTP ของ Cursor หรือ VS Code ขั้นตอนการติดตั้งและใช้งาน ๑. ติดตั้ง OpenSSH Server โดยเข้าไปที่ Container Exec แล้วลองพิมพ์ …
ที่มา/ปัญหา การใช้งาน Docker Container ปัจจุบันเราจะใช้วิธีการ Bind Mounts เพื่อเชื่อมโยง Folder Code จากเครื่อง Windows เข้าไปใน Container โดยตรงทำให้เราสามารถแก้ไขเปลี่ยนแปลงไฟล์ระหว่าง Windows กับ Container ได้สะดวกแต่ปัญหาก็คือการใช้ Bind Mounts นั้นทำให้ web ที่เราพัฒนาอยู่เรียกใช้งานได้ช้ามากเนื่องจากการเชื่อมต่อไฟล์ระหว่าง Windows กับ Container จะต้องแปลงไฟล์ระบบของ Windows ให้เข้ากันกับไฟล์ระบบของ Container ก่อน ทำให้การอ่านไฟล์ช้ากว่าปกติ การแก้ปัญหาก็คือ การนำ Docker Volumes มาใช้แทนการ Bind Mounts …
กรณีที่ไม่สามารถลบรายวิชาได้ผ่านในส่วนของหน้าบ้านของระบบ BUU LMS เมื่อพยายามที่จะลบรายวิชาดังกล่าวระบบจะขึ้นค้างตามภาพด้านล่าง หลังจากกด Refresh แล้วทดสอบค้นหารายวิชาบนระบบยังคงพบว่ารายวิชาดังกล่าวที่การลบออกไปนั้นยังคงมีอยู่ระบบ 1. แก้ปัญหาโดยการรัน Script ของ delete_course.php เพื่อลบรายวิชา โดยใช้คำสั่ง php /app/moodle/lms/admin/cli/delete_course.php –courseid=xxxx 2. ถ้าหาก Run Script ตามข้อที่ 1 แล้วเจอ Error เหมือนภาพด้านล่าง ให้ใช้สั่ง php /app/moodle/lms/admin/cli/delete_course.php –courseid=xxxx –non-interactive –disablerecyclebin แทน
