# การใช้งานดิสก์ด้วย du และ ncdu

> วิธีค้นหาว่าสิ่งใดทำให้ดิสก์ Linux เต็มด้วย du และ ncdu แบบโต้ตอบ พร้อมตัวเลือกที่จำกัดการทำงานอยู่ภายในระบบไฟล์เดียว

du (disk usage) เป็นคำสั่งมาตรฐานของ Linux ที่รายงานว่าไฟล์และไดเรกทอรีใช้พื้นที่ไปเท่าใด ส่วน ncdu เป็นทางเลือกแบบโต้ตอบที่ใช้ ncurses ซึ่งช่วยให้คุณเรียกดูผลลัพธ์และลบรายการต่างๆ ได้ เมื่อใช้ร่วมกับ df ซึ่งแสดงพื้นที่ว่างต่อระบบไฟล์ ทั้งสองคำสั่งนี้เป็นวิธีทั่วไปในการค้นหาว่าสิ่งใดทำให้ดิสก์เต็ม

## ตัวเลือกที่มีประโยชน์ของ du

'du -sh /var' จะแสดงผลรวมหนึ่งค่าในรูปแบบที่อ่านง่าย 'du -h --max-depth=1 /' จะแสดงรายการขนาดของแต่ละไดเรกทอรีระดับบนสุด '-x' จะจำกัดการทำงานอยู่ภายในระบบไฟล์เดียว ดังนั้นดิสก์ที่เมาท์ไว้และ /proc จะถูกข้ามไป

การส่งผลลัพธ์ไปยังคำสั่ง sort จะช่วยค้นหารายการที่ใหญ่ที่สุด: 'du -xh --max-depth=1 / | sort -h'

## ncdu

'ncdu -x /' จะสแกนระบบไฟล์รูทและเปิดรายการที่เรียกดูได้ซึ่งเรียงลำดับตามขนาด ใช้ปุ่มลูกศรเพื่อเลื่อน, Enter เพื่อเปิดโฟลเดอร์, 'd' เพื่อลบรายการที่เลือกหลังจากยืนยัน, และ 'q' เพื่อออก โดยปกติแล้ว ncdu จะติดตั้งจากแพ็กเกจของดิสทริบิวชัน (ตัวอย่างเช่น 'apt install ncdu')

## เมื่อ du และ df แสดงข้อมูลไม่ตรงกัน

หาก df รายงานว่าดิสก์เต็มแต่ du พบพื้นที่ใช้งานน้อยกว่า อาจเป็นไปได้ว่าไฟล์ที่ถูกลบไปแล้วยังคงถูกเปิดค้างไว้โดยกระบวนการที่กำลังทำงานอยู่ พื้นที่จะถูกคืนค่าเมื่อกระบวนการนั้นปิดไฟล์หรือรีสตาร์ท

## วิธีค้นหาว่าสิ่งใดทำให้ดิสก์เต็ม

1. ตรวจสอบว่าระบบไฟล์ใดเต็ม: df -h
2. แสดงรายการโฟลเดอร์ระดับบนสุดที่ใหญ่ที่สุด: sudo du -xh --max-depth=1 / | sort -h
3. เจาะลึกลงไปอีกหนึ่งระดับในโฟลเดอร์ที่ใหญ่ที่สุดแล้วทำซ้ำ
4. หรือเรียกดูแบบโต้ตอบ: sudo ncdu -x /

## ข้อควรระวัง

- ห้ามลบไฟล์ที่คุณไม่รู้จักใน /usr, /lib, /boot หรือ /var/lib
- 'd' ใน ncdu จะลบทันทีหลังจากที่คุณยืนยัน โดยไม่มีถังขยะ

## แหล่งอ้างอิง

- [du(1)](https://man7.org/linux/man-pages/man1/du.1.html)
- [ncdu(1) (Debian)](https://manpages.debian.org/bookworm/ncdu/ncdu.1.en.html)
- [df(1)](https://man7.org/linux/man-pages/man1/df.1.html)

อัปเดตล่าสุด: 2026-10-08
URL: https://raincleaner.eu/th/wiki/linux/disk-usage-du-ncdu
