หากต้องการล้างไฟล์ที่ถูกลบใน Nextcloud โดยอัตโนมัติ ให้ตั้งค่าอายุการเก็บรักษาสูงสุด และตรวจสอบให้แน่ใจว่างานเบื้องหลังของ Nextcloud ทำงานตามกำหนดเวลา ตัวอย่างเช่น ตั้งค่าtrashbin_retention_obligationให้auto, 30ลบรายการที่เก่ากว่า 30 วันโดยอัตโนมัติ จากนั้นเรียกใช้ cron ของระบบที่ Nextcloud แนะนำทุกๆ ห้านาทีautoนโยบายเริ่มต้นเพียงอย่างเดียวไม่ได้รับประกันว่าจะลบไฟล์ได้ทันทีในวันที่ 30
การลบอัตโนมัติเป็นการลบถาวร เลือกช่วงเวลาการเก็บรักษาที่ให้เวลาผู้ใช้ในการแก้ไขข้อผิดพลาด และเก็บสำรองข้อมูลสำหรับสิ่งใดก็ตามที่ต้องสามารถกู้คืนได้หลังจากที่ถูกลบออกจากถังขยะแล้ว
โดยค่าเริ่มต้น Nextcloud จะล้างข้อมูลอะไรบ้าง?
เอกสารสำหรับผู้ดูแลระบบของ Nextcloud 35 อธิบายautoว่า ระบบจะเก็บรายการที่ถูกลบไว้อย่างน้อย 30 วัน จากนั้นจะอนุญาตให้ลบออกได้หากต้องการพื้นที่จัดเก็บข้อมูลเพิ่ม หากไม่ต้องการพื้นที่เพิ่ม รายการเหล่านั้นอาจยังคงอยู่เกิน 30 วัน พฤติกรรมนี้ทำให้ถังขยะเป็นพื้นที่สำหรับกู้คืนข้อมูล ไม่ใช่ตัวจับเวลาการลบ 30 วันอย่างเคร่งครัด
| ค่านโยบาย | ความหมาย | ใช้เมื่อ |
auto | เก็บสิ่งของไว้อย่างน้อย 30 วัน และนำออกหากต้องการพื้นที่ว่างเพิ่มเติม | คุณต้องการหน้าต่างกู้คืนเริ่มต้นและการล้างข้อมูลตามพื้นที่ว่าง |
auto, 30 | ระบบจะลบรายการที่เก่าเกิน 30 วันโดยอัตโนมัติ นอกจากนี้ ยังสามารถลบรายการก่อนหน้านั้นได้หากต้องการพื้นที่ว่าง | คุณต้องการจำกัดอายุสูงสุดไว้ที่ 30 วัน |
30, 90 | เก็บรักษาข้อมูลไว้อย่างน้อย 30 วัน และลบออกหลังจาก 90 วัน | คุณต้องการช่วงเวลาการกู้คืนข้อมูล รวมทั้งขีดจำกัดการเก็บรักษาข้อมูลสูงสุด |
disabled | อย่าทำการล้างถังขยะโดยอัตโนมัติ | คุณมีกระบวนการเก็บรักษาข้อมูลแยกต่างหาก และตั้งใจที่จะเก็บรักษาข้อมูลที่ถูกลบไปแล้ว |
การเก็บรักษาข้อมูลไม่ใช่สิ่งที่แน่นอนหากโควต้าของผู้ใช้เกินเนื่องจากมีรายการในถังขยะ: Nextcloud อาจยกเลิกนโยบายที่กำหนดไว้และล้างรายการจนกว่าจะตรงตามข้อกำหนดโควต้า ตรวจสอบเอกสารเกี่ยวกับระยะเวลาการเก็บรักษาข้อมูลในถังขยะ ฉบับปัจจุบัน ก่อนนำนโยบายไปใช้กับบัญชีที่มีข้อจำกัดด้านโควต้า
กำหนดอายุสูงสุดสำหรับไฟล์ที่ถูกลบ
เรียกใช้งานoccจากไดเร็กทอรีการติดตั้ง Nextcloud และใช้ผู้ใช้ HTTP เพื่อให้สิทธิ์การเข้าถึงไฟล์สอดคล้องกัน บน Debian หรือ Ubuntu ผู้ใช้ดังกล่าวโดยทั่วไปคือ `http:// localhost www-data:800` และเส้นทางการติดตั้งมักจะเป็น ` http /var/www/nextcloud://localhost:800` แทนที่ด้วยผู้ใช้และเส้นทางจริงของคุณบนระบบอื่นๆ หรือในคอนเทนเนอร์
cd /var/www/nextcloud
sudo -E -u www-data php occ config:system:set trashbin_retention_obligation --value='auto, 30'
กำหนดอายุสูงสุด 30 วัน โดยใช้ค่านโยบายการเก็บรักษาข้อมูลอัตโนมัติเป็น 30
การตั้งค่านี้จะถูกบันทึกไว้ในการกำหนดค่าระบบของ Nextcloud หากต้องการตรวจสอบค่าที่ใช้งานอยู่ ให้เรียกใช้คำสั่ง:
sudo -E -u www-data php occ config:system:get trashbin_retention_obligation
ผลลัพธ์ควรแสดงauto, 30. หากคุณต้องการนโยบายอื่น ให้ใช้ตารางด้านบนและป้อนค่าลงไปแทน30, 90ตัวเลือกนี้มีจุดประสงค์เพื่อเก็บรายการไว้อย่างน้อย 30 วันและลบออกหลังจาก 90 วัน การบังคับใช้โควต้าอาจบังคับให้ลบข้อมูลเร็วกว่านั้นได้
ตรวจสอบให้แน่ใจว่ากระบวนการทำงานเบื้องหลังดำเนินไปอย่างน่าเชื่อถือ
Nextcloud รันการหมดอายุของถังขยะเป็นงานเบื้องหลัง คู่มือผู้ดูแลระบบระบุว่างานเบื้องหลังถังขยะจะทำงานทุก 30 นาที แต่ก็ยังขึ้นอยู่กับการเรียกใช้งานตัวจัดการงานเบื้องหลังของระบบของคุณด้วย Nextcloud แนะนำให้ใช้ cron ของระบบปฏิบัติการสำหรับงานประจำ เนื่องจากโหมด AJAX เริ่มต้นของ Nextcloud มีความน่าเชื่อถือน้อยกว่า เพราะงานจะทำงานก็ต่อเมื่อผู้ใช้เข้าชมเว็บไซต์เท่านั้น
ตั้งค่า Nextcloud ให้ทำงานในโหมด cron:
sudo -E -u www-data php occ background:cron
เปลี่ยน Nextcloud เป็นโหมด cron เพื่อให้งานที่ทำงานเบื้องหลังตามกำหนดเวลาไม่ขึ้นอยู่กับการที่ผู้ใช้เปิดเว็บไซต์
จากนั้นแก้ไข crontab ของผู้ใช้เว็บเซิร์ฟเวอร์ บนระบบ Debian หรือ Ubuntu ทั่วไป:
sudo crontab -u www-data -e
เพิ่มบรรทัดนี้ โดยเปลี่ยนพาธของไฟล์ปฏิบัติการ PHP หรือ Nextcloud หากการติดตั้งของคุณใช้ตำแหน่งที่แตกต่างกัน:
*/5 * * * * php -f /var/www/nextcloud/cron.php
ตั้งค่า cron.php ภายใต้ผู้ใช้ HTTP แทนที่เส้นทาง Nextcloud ในตัวอย่างด้วยเส้นทางการติดตั้งของคุณ
กำหนดการนี้จะเรียกใช้งานโปรแกรมทำงานเบื้องหลังของ Nextcloud ทุกๆ ห้านาที โดยแต่ละงานจะมีกำหนดการของตัวเอง สำหรับการใช้งานในคอนเทนเนอร์ ให้ใช้บริการ cron หรือโปรแกรมทำงานตามกำหนดเวลาที่ระบุไว้สำหรับการใช้งานนั้น และเรียกใช้งานcron.phpในฐานะผู้ใช้เว็บของ Nextcloud อย่าเพิ่มงานที่สองโดยไม่จำเป็น หากอิมเมจหรือแพลตฟอร์มของคุณใช้งานอยู่แล้ว
จะตรวจสอบวันหมดอายุอย่างปลอดภัยได้อย่างไร?
ขั้นแรก ตรวจสอบทั้งนโยบายและงานที่กำหนดไว้ ตรวจสอบนโยบายด้วยคำสั่งocc config:system:get trashbin_retention_obligationจากนั้นแสดงรายการงานที่กำหนดไว้:
sudo crontab -u www-data -l
ตรวจสอบค่าการเก็บรักษาที่บันทึกไว้และยืนยันว่าผู้ใช้เว็บเซิร์ฟเวอร์มีรายการ cron.php ที่เกิดขึ้นซ้ำแล้ว
ในการตั้งค่าการดูแลระบบของ Nextcloud ให้ตรวจสอบว่างานเบื้องหลังถูกตั้งค่าเป็นCronและเวลาการทำงานของงานครั้งล่าสุดได้เลื่อนไปข้างหน้าแล้ว หลังจากระยะเวลาสูงสุดที่กำหนดไว้ผ่านไปแล้ว ให้ตรวจสอบไฟล์ที่ถูกลบเพื่อหารายการทดสอบเก่าที่สามารถลบได้อย่างปลอดภัย งานหมดอายุจะทำงานตามกำหนดเวลา ดังนั้นการล้างข้อมูลจึงไม่จำเป็นต้องเกิดขึ้นทันทีเมื่อถึงกำหนดเวลาการเก็บรักษาที่แน่นอน
สำหรับการทดสอบครั้งเดียวด้วยนโยบายการเก็บรักษาข้อมูลแบบกำหนดเอง ให้เรียกใช้คำสั่งที่รองรับการเก็บรักษาข้อมูล:
sudo -E -u www-data php occ trashbin:expire --quiet
ใน Nextcloud เวอร์ชันปัจจุบันtrashbin:expireจะใช้ระยะเวลาการเก็บรักษาที่กำหนดไว้ ตามautoนโยบายเริ่มต้น คำสั่งจะสิ้นสุดการทำงานโดยไม่ทำให้รายการหมดอายุ การหมดอายุอัตโนมัติเริ่มต้นจะถูกจัดการโดยงานเบื้องหลัง อย่าใช้ คำสั่งอื่นแทน trashbin:cleanup --all-usersเพราะคำสั่งนั้นจะลบถังขยะทั้งหมดสำหรับผู้ใช้ทุกคนอย่างถาวร โดยไม่คำนึงถึงอายุ และไม่ใช่การตั้งค่าการเก็บรักษาตามปกติ
รายการตรวจสอบการยืนยันอย่างรวดเร็ว
- นโยบายที่ใช้งานอยู่ซึ่งส่งคืนมานั้น
occ config:system:get trashbin_retention_obligationตรงกับช่วงเวลาการเก็บรักษาที่คุณกำหนดไว้
- งานเบื้องหลังของ Nextcloud ถูกตั้งค่าให้ใช้ Cron และ crontab ของผู้ใช้เว็บเซิร์ฟเวอร์มี
cron.phpเส้นทาง ที่ถูกต้องอยู่แล้ว
- เวลาในการดำเนินการงานครั้งล่าสุดจะถูกปรับเพิ่มในการตั้งค่าการดูแลระบบ
- รายการทดสอบเก่าที่เกินอายุสูงสุดจะหายไปหลังจากกระบวนการทำงานเบื้องหลังเสร็จสิ้น ในขณะที่รายการใหม่กว่าจะยังคงอยู่ เว้นแต่ว่าพื้นที่จัดเก็บหรือโควต้าจะจำกัดจนต้องทำการล้างข้อมูล
หากเวลาการดำเนินการครั้งล่าสุดไม่เปลี่ยนแปลง ให้ตรวจสอบปัญหาของระบบ cron, เส้นทาง PHP CLI, ผู้ใช้เว็บเซิร์ฟเวอร์ และเส้นทาง Nextcloud ก่อนที่จะเปลี่ยนค่าการเก็บรักษา นโยบายที่ถูกต้องไม่สามารถล้างข้อมูลใดๆ ได้หากตัวเรียกใช้งานเบื้องหลังไม่เคยทำงานเลย
เอกสารอย่างเป็นทางการ