ให้ค้นหาไฟล์แล้วลบด้วยโปรแกรม

บนลีนุกซ์มีโปรแกรมที่สามารถค้นหาไฟล์ที่มีนามสกุลตามที่เรากำหนด เช่น .mp3, .dat, .3gp เมื่อเจอแล้วให้โปรแกรมลบเองโดยอัตโนมัติ โดยที่เราไม่ต้องไปกดปุ่มใดๆเลยหรือเปล่าครับ
จุดประสงค์คือ ต้องการตั้งเวลาให้โปรแกรมทำงาน เมื่อพบไฟล์นามสกุลดังกล่าวให้จัดการลบเองทันที เนื่องจากที่ทำงานมีพนักงานแอบเก็บไฟล์จำพวกนี้ปะปนไว้กับไดร์ฟและโฟลเดอร์ที่ใช้งานเยอะมาก ทั้งที่ได้กำหนดไว้แล้วว่าให้เก็บได้เฉพาะที่ w: ที่เดียวเท่านั้น แต่พนักงานก็ยังแอบไปเก็บที่อื่นอีก เมื่อก่อนใช้ windows2000 มีโปรแกรมที่ว่านี้ ตอนนี้เปลี่ยนเป็น Linux ทั้งหมดเลยไม่รู้จะหาโปรแกรมอะไรมาใช้ดี ทุกวันนี้ใช้วิธีการสุ่มตรวจแล้วสั่งให้ผู้ใช้ลบ มี cc ไปยังหัวหน้าให้รับรู้ด้วย

ใช้คำสั่งนี้ครับ find

ใช้คำสั่งแบบนี้ครับ

# find /home -name *.mp3 -delete
# find /home -name *.dat -delete
# find /home -name *3gp -delete

*.dat อย่าไปรันที่ / นะครับเดี๋ยวข้อมูลสำคัญหาย

หมายเหตุ เปลี่ยน -delete เป็น -print จะพิมรายชื่อไฟล์มาให้ครับ ลองเล่นดู

ถ้าจะตั้งเวลา ก็เขียนลง shell script นะครับเอาแบบง่าย ๆ แล้วกัน พอเป็นตัวอย่าง
สมมุติผมตั้งว่า rm_mp3.sh เก็บไว้ที่ /root อย่าลืมรัน chmod +x rm_mp3.sh ด้วยนะครับ

#!/bin/sh
SEARCH_DIR="/home"
/usr/bin/find $SEARCH_DIR *.mp3 -delete
/usr/bin/find $SEARCH_DIR *.dat -delete
/usr/bin/find $SEARCH_DIR *.3gp -delete
exit 0

หาที่อยู่คำสั่ง find ใช้ which find นะครับจะได้รู้ว่า find อยู่ path ไหนพอดีเครื่องผมใช้อยู่ที่ /usr/bin/find ครับ

นี้ก็ตั้งเวลาใช้คำสั่ง

# crontab -e

โปรแกรมจะเปิดขึ้นมาก็เพิ่มบรรทัดนี้เข้าไป แล้วก็ save

0 0 * * * /root/rm_mp3.sh

แค่นี้ระบบก็จะลบไฟล์ให้ เวลาเที่ยงคืนของทุก ๆ วันครับ

ขอบคุณครับ

ใจดีจริงๆ อุตส่าห์ไปค้นหามาให้

ต้องใช้ shell script

สวัสดีครับพี่ demon-x
ต้องใช้ shell script ช่วยแล้วแหละครับส่วนจะเขียนยังไงนั้น ผมไม่ค่อยสันทัดแต่ที่แน่ๆใช้คำสั่ง find กับ rm แน่นอนผมจะลองช่วยค้นดูให้นะครับพี่