Findlargedir-Go เป็นแฮ็คอย่างรวดเร็วเพื่อช่วยระบุไดเรกทอรี "Black Hole" ในระบบไฟล์ใด ๆ ที่มีมากกว่า 100,000 รายการในโครงสร้างแบนเดียว โปรแกรมจะพยายามระบุจำนวนเหตุการณ์ดังกล่าวและรายงานเกี่ยวกับพวกเขา
โปรแกรมจะ ไม่เป็นไปตาม Symlinks และ ต้องการสิทธิ์ R/W เพื่อให้สามารถคำนวณขนาดของไดเรกทอรี inode ต่อจำนวนอัตราส่วนรายการและประมาณจำนวนของรายการในไดเรกทอรีโดยไม่ต้องนับจริง ในขณะที่วิธีนี้เป็นเพียงการประมาณจำนวนรายการจริงในไดเรกทอรีมันก็ดีพอที่จะสแกนสำหรับไดเรกทอรีที่ละเมิดอย่างรวดเร็ว
-a ) อาจทำให้ I/O มากเกินไปและการใช้หน่วยความจำมากเกินไป ใช้เมื่อเหมาะสมเท่านั้น-7 พารามิเตอร์) เนื่องจากความแตกต่างในโครงสร้างสถิติเคอร์เนล OneFS-x พารามิเตอร์) มีสองวิธีในการติดตั้ง findlargedir -go: มีสองวิธีในการติดตั้ง findlargedir-go: ดาวน์โหลดรสชาติที่คุณต้องการจากหน้ารีลีสและติดตั้งด้วยตนเอง
go get https://github.com/dkorunic/findlargedir-goการใช้งาน:
Usage: findlargedir [-7ahopx] [-c value] [-t value] [parameters ...]
-7, --isilon enable support for EMC Isilon OneFS 7.x
-a, --accurate full accuracy when checking large directories
-c, --testcount=value
set initial file count for inode size testing phase (default
20000)
-h, --help display help
-o, --onefilesystem
never cross filesystem boundaries
-p, --progress display progress status every 5 minutes
-t, --threshold=value
set file count threshold for alerting (default 50000)
-x, --cloexec disable open O_CLOEXEC for really ancient Unix systems เมื่อใช้ โหมดที่ถูกต้อง ( -a พารามิเตอร์) ระวังว่าการค้นหาไดเรกทอรีขนาดใหญ่จะหยุดกระบวนการอย่างสมบูรณ์เป็นระยะเวลานาน สิ่งที่โหมดนี้ทำคือการผ่านที่แม่นยำรองอย่างสมบูรณ์ในไดเรกทอรีที่อาจละเมิดการคำนวณจำนวนรายการที่แน่นอน
เมื่อไม่แน่ใจเกี่ยวกับความคืบหน้าของโปรแกรมสามารถส่งสัญญาณกระบวนการ SIGUSR1 หรือ SIGUSR2 (บน Windows ลองด้วย ^c) เพื่อดูเส้นทางที่ประมวลผลล่าสุดหรือใช้ธง ความคืบหน้า (พารามิเตอร์ -p ) เพื่อดูการอัปเดตสถานะ 5 นาทีต่อเนื่อง
หากคุณพยายามที่จะเรียกใช้บน EMC isilon onefs> = 7.1 และ <8.0 (ขึ้นอยู่กับ FreeBSD 7.4) ตรวจสอบให้แน่ใจว่าได้เพิ่ม โหมด isilon ด้วยพารามิเตอร์ -7 มิฉะนั้นโปรแกรมจะตรวจจับ ST_SIZE ที่ไม่ถูกต้องและข้ามระบบไฟล์ทั้งหมด การเผยแพร่ OneFS 8.0+ ไม่จำเป็นต้องใช้พารามิเตอร์ -7 สิ่งนี้จะทำงานได้เฉพาะบนแพลตฟอร์ม 386 และ AMD64
หากคุณมีระบบ FreeBSD โบราณ (<8.3) หรืออนุพันธ์เช่น EMC Isilon OneFs (<7.2) และโปรแกรมไม่สามารถสร้างไฟล์ชั่วคราวลองใช้ โหมด CloExec ด้วยพารามิเตอร์ -x สิ่งนี้จะทำงานได้เฉพาะบนแพลตฟอร์ม 386 และ AMD64
หากคุณต้องการหลีกเลี่ยงการลงไปในระบบไฟล์ที่ติดตั้ง (เช่นในตัวเลือก FIND -xDev) ให้ใช้ โหมด OneFilesYstem ด้วยพารามิเตอร์ -o สิ่งนี้จะไม่ทำงานบน Windows
กรณีการใช้งานทั่วไปเพื่อค้นหาผู้กระทำความผิดที่เป็นไปได้ในหลายระบบไฟล์:
root@box: ~ # findlargedir -c 10000 -t 50000 -a /var /home
2018/09/04 08:13:16 Note: program will attempt to alert on directories larger than 50000 entries by default.
2018/09/04 08:13:16 Determining inode to file count ratio on " /var " . Please wait, creating 10000 files...
2018/09/04 08:13:16 Done. Approximate directory inode size to file count ratio on " /var " is 26.2144.
2018/09/04 08:13:21 Found 0 large directories in " /var " .
2018/09/04 08:13:21 Determining inode to file count ratio on " /home " . Please wait, creating 10000 files...
2018/09/04 08:13:21 Done. Approximate directory inode size to file count ratio on " /home " is 27.0336.
2018/09/04 08:13:21 Directory " /home/user/torrent " is possibly a large directory with ~ 100k entries.
2018/09/04 08:13:21 Calculating " /home/user/torrent " directory exact entry count. Please wait...
2018/09/04 08:13:21 Done. Directory " /home/user/torrent " has exactly 99164 entries.
2018/09/04 08:13:21 Found 1 large directories in " /home " .