ขั้นแรกคำสั่งนี้จะค้นหาและลบไฟล์ทั้งหมดที่เก่ากว่า 7 วันในไดเรกทอรีย่อยใด ๆ/home
ที่ชื่อขึ้นต้นด้วยsecurityuser
:
find /home/securityuser* -mtime +6 -type f -delete
คุณต้องการ-mtime +6
และไม่ได้+7
เพราะ-mtime
ระยะเวลานับ 24 ชั่วโมง ตามที่อธิบายไว้ใน-atime
ส่วนของman find
( -mtime
ทำงานในลักษณะเดียวกัน):
-atime n
File was last accessed n*24 hours ago. When find figures out
how many 24-hour periods ago the file was last accessed, any
fractional part is ignored, so to match -atime +1, a file has to
have been accessed at least two days ago.
ดังนั้นเพื่อค้นหาไฟล์ที่มีการปรับเปลี่ยนหรือมากกว่า 7 วันที่ผ่านมาคุณต้องไปหาไฟล์ที่มีการแก้ไขมากกว่า 6 -mtime +6
วันที่ผ่านมาจึง
ขั้นตอนต่อไปคือให้รันคำสั่งวันละครั้ง เนื่องจากแต่ละคนsecurityuserN
เป็นผู้ใช้ที่แตกต่างกัน (คุณอาจต้องการคิดใหม่เกี่ยวกับการตั้งค่ามันทำให้ทุกอย่างซับซ้อนขึ้น) จึงต้องเรียกใช้ในฐานะรูท ดังนั้นแก้ไข/etc/crontab
:
sudo nano /etc/crontab
และเพิ่มบรรทัดนี้:
@daily root find /home/securityuser* -mtime +6 -type f -delete
ที่จะเรียกใช้find
คำสั่งวันละครั้งและลบไฟล์
/home
มักจะมีโฟลเดอร์ย่อยสำหรับผู้ใช้แต่ละคน หากคุณไม่ต้องการจัดเก็บข้อมูลสำรองของคุณในฐานะผู้ใช้อื่น (ไม่ใช่ความคิดที่ดีจริงๆ) คุณควรพิจารณาสถานที่อื่นเช่น/home/security/backup1
และอื่น ๆ