ไม่มีพื้นที่ว่างในดิสก์เพิ่มเติม: ฉันจะค้นหาสิ่งที่ใช้พื้นที่ว่างได้อย่างไร


81

ฉันพบปัญหาในเซิร์ฟเวอร์ตัวใดตัวหนึ่งที่ใช้ 16.04: ไม่มีพื้นที่ดิสก์เหลืออยู่

ฉันไม่รู้ว่ากำลังเพิ่มพื้นที่ว่าง มีคำสั่งให้แสดงขนาดไดเรกทอรีปัจจุบันหรือไม่ดังนั้นฉันสามารถข้ามและสิ้นสุดในไดเรกทอรีที่ใช้พื้นที่ทั้งหมดได้หรือไม่


1
ตรวจสอบตัววิเคราะห์การใช้งานดิสก์
Pranal Narayan

@PranalNarayan ไม่มี GUI เพราะอยู่บนเซิร์ฟเวอร์ของฉันฉันกลัว :(
Karl Morrison

1
ยี้คุณตอนนี้ผมไปมองพบนี้bugs.launchpad.net/ubuntu/+source/baobab/+bug/942255และหวังว่ามันจะเป็นสิ่งที่
Sam

1
wrt "no GUI เป็นเซิร์ฟเวอร์": คุณสามารถติดตั้งแอพ GUI (สมมติว่าคุณมีความสุขกับมันและห้องสมุดสนับสนุนที่อยู่บนเซิร์ฟเวอร์) และการใช้งานอยู่บนหน้าจอท้องถิ่นของคุณผ่าน X11-tunnelled-through-SSH export DISPLAY=:0.0; ssh -Y <user>@<server> filelight(แทนที่filelightด้วยเครื่องมือที่คุณต้องการ) แน่นอนว่าไม่มีที่ว่างเหลืออยู่ถ้าคุณยังไม่มีเครื่องมือที่ติดตั้งอยู่คุณจะต้องใช้อย่างอื่น!
David Spillett

4
@DavidSpillett ตามที่ระบุไว้ไม่มีที่ว่างเหลืออยู่บนเซิร์ฟเวอร์ ดังนั้นฉันไม่สามารถติดตั้งอะไรได้เลย
Karl Morrison

คำตอบ:


93

เช่นเคยใน Linux มีวิธีการทำงานมากกว่าหนึ่งวิธี อย่างไรก็ตามหากคุณต้องการทำจาก CLI นี่เป็นวิธีที่ฉันต้องการ:

ฉันเริ่มด้วยการเรียกใช้สิ่งนี้ในฐานะรูทหรือด้วย sudo

du -cha --max-depth=1 / | grep -E "M|G"

grep คือการ จำกัด บรรทัดที่ส่งคืนกลับไปยังบรรทัดที่กลับมาพร้อมกับค่าในช่วงเมกะไบต์หรือกิกะไบต์ หากดิสก์ของคุณมีขนาดใหญ่พอคุณสามารถเพิ่มได้|Tเช่นกันเพื่อรวมจำนวนเทราไบต์ คุณอาจได้รับข้อผิดพลาดบางอย่างเกี่ยวกับ/proc, /sysและ / หรือ/devเพราะพวกเขาไม่ได้เป็นไฟล์จริงบนดิสก์ อย่างไรก็ตามควรให้ผลลัพธ์ที่ถูกต้องสำหรับไดเรกทอรีที่เหลือในรูท หลังจากที่คุณพบสิ่งที่ยิ่งใหญ่ที่สุดแล้วคุณสามารถเรียกใช้คำสั่งภายในไดเรกทอรีนั้นเพื่อ จำกัด วิธีการของคุณให้แคบลงผู้กระทำผิด ดังนั้นสำหรับตัวอย่างเช่นถ้า/varเป็นใหญ่ที่สุดที่คุณสามารถทำมันได้เช่นต่อไปนี้:

du -cha --max-depth=1 /var | grep -E "M|G"

นั่นน่าจะพาคุณไปสู่ปัญหาเด็ก!

ข้อควรพิจารณาเพิ่มเติม

ในขณะที่คำสั่งดังกล่าวจะทำเคล็ดลับอย่างแน่นอนฉันมีการวิจารณ์เชิงสร้างสรรค์ในความคิดเห็นด้านล่างที่ชี้ให้เห็นบางสิ่งที่คุณอาจรวมถึง

  1. ที่grepฉันให้ไว้อาจส่งผลให้มีการส่งคืนค่า "K" เป็นครั้งคราวหากชื่อของไดเรกทอรีหรือไฟล์มีตัวพิมพ์ใหญ่ G หรือ M หากคุณไม่ต้องการให้ไดเรกทอรีที่มีค่า K แสดงขึ้นมาอย่างที่คุณต้องการ เกม regex ของคุณมีความสร้างสรรค์และซับซ้อนมากขึ้น เช่นgrep -E "^[0-9\.]*[MG]"
  2. หากคุณรู้ว่าไดรฟ์ตัวใดเป็นปัญหาและมีไดรฟ์ตัวอื่นที่ติดตั้งอยู่ด้านบนซึ่งคุณไม่ต้องการเสียเวลารวมถึงในการค้นหาคุณสามารถเพิ่มการ-xตั้งค่าสถานะลงในduคำสั่งของคุณ คำอธิบายหน้าผู้ชายของธงนั้น:

      -x, --one-file-system
          skip directories on different file systems
    
  3. คุณสามารถเรียงลำดับผลลัพธ์ของduคำสั่งเพื่อให้ค่าสูงสุดอยู่ด้านล่าง เพียงแค่ผนวกสิ่งนี้ต่อท้ายคำสั่ง:| sort -h


นี่คือสิ่งที่ฉันทำ
Lightness Races ใน Orbit

5
grep ของคุณส่งคืนโฟลเดอร์ใด ๆ ด้วยตัวอักษร M หรือ G ในชื่อของพวกเขาเช่นกัน regex โฆษณาควรกดตัวเลขด้วยตัวเลือก dot + M | G หรืออาจ"^[0-9]*[.]*[0-9]*[MG]"
Xen2050

4
หากคุณรู้ว่าเป็นหนึ่งไดรฟ์ที่เป็นปัญหาคุณสามารถใช้-xตัวเลือกเพื่อให้duอยู่ในไดรฟ์นั้น (ระบุไว้ในบรรทัดคำสั่ง) คุณยังสามารถไพพ์ผ่านsort -hเพื่อจัดเรียงค่าที่มนุษย์สามารถอ่านได้เมกะไบต์ / กิกะไบต์อย่างถูกต้อง ฉันมักจะออกจาก--max-depthตัวเลือกและเพียงแค่ค้นหาไดรฟ์ทั้งหมดด้วยวิธีนี้เรียงลำดับอย่างเหมาะสมเพื่อให้ได้สิ่งที่ยิ่งใหญ่ที่สุดที่ด้านล่าง
Muzer

1
@alexis ประสบการณ์ของฉันคือบางครั้งฉันก็ลงเอยกับขยะอื่น ๆ ที่อยู่ด้านล่างของจุดที่ฉันสนใจ (โดยเฉพาะอย่างยิ่งถ้าเป็น/) และการใช้-xให้ฉันรับประกันฉันจะไม่ผิดสิ่ง หากคุณ/เต็มแล้วและคุณติดตั้งแยกต่างหาก/homeหรืออะไรก็ตามการใช้-xก็เป็นเรื่องจำเป็นมากที่จะกำจัดสิ่งที่ไม่เกี่ยวข้องออกไป ดังนั้นฉันจึงพบว่ามันใช้งานได้ง่ายขึ้นตลอดเวลาในกรณี
Muzer

1
หากคุณมีประเภทคุณไม่จำเป็นต้อง grep
OrangeDog

77

คุณสามารถใช้ncduสำหรับสิ่งนี้ มันใช้งานได้ดีมาก

sudo apt install ncdu

ป้อนคำอธิบายรูปภาพที่นี่


34
ฉันเตะตัวเองตามปกติฉันใช้โปรแกรมนี้จริง ๆ แล้ว แต่เนื่องจากไม่มีพื้นที่เหลือฉันไม่สามารถติดตั้งได้ฮ่าฮ่า
Karl Morrison

@ KarlMorrison ฉันเห็นวิธีแก้ปัญหาต่าง ๆ ที่เป็นไปได้เพียงติดตั้งผ่าน sshfs บนคอมพิวเตอร์เครื่องอื่นและเรียกใช้ ncdu ที่นั่น (สมมติว่าคุณมีเซิร์ฟเวอร์ ssh อยู่แล้ว .. ) - หรือถ้าคุณไม่มีเซิร์ฟเวอร์ ssh อยู่คุณสามารถทำได้ ย้อนกลับติดตั้ง ncdu บนเซิร์ฟเวอร์อื่นและเชื่อมต่อกับ sshfs และเรียกใช้ ncdu จาก mount (สมมติว่าคุณมี sshfs บนเซิร์ฟเวอร์แล้ว) - หรือถ้าคุณไม่มีทั้ง ... ถ้า ncdu เป็นสคริปต์เดียวคุณ ทำได้เพียงcurl http://path/to/ncdu | shและมันจะทำงานในแคช IO stdin ในหน่วยความจำ แต่นั่นจะต้องมีโชค อาจมีวิธีที่จะทำให้แกะดิสก์เกินไป
hanshenrik

@KarlMorrison หรือคุณสามารถบูทอิมเมจสดของ Linux และติดตั้งในนั้นได้

เมื่อติดตั้งแล้วประเภทsudo ncdu /จากบรรทัดคำสั่ง sudoเพราะถ้าคุณไม่ใส่ sudo มันจะไม่รายงานขนาดของโฟลเดอร์ที่ root เป็นเจ้าของและ/ถ้าคุณไม่พิมพ์มันจะรายงาน recusively จากโฟลเดอร์ที่คุณอยู่
Max Carroll

19

ฉันใช้คำสั่งนี้

sudo du -aBM -d 1 . | sort -nr | head -20

บางครั้งฉันจำเป็นต้องเรียกใช้จาก/ไดเรกทอรีเนื่องจากฉันได้วางบางสิ่งบางอย่างในตำแหน่งที่แปลก


ให้ +1 แก่คุณเพื่อใช้งานได้! อย่างไรก็ตามวิธีแก้ปัญหา TopHats อ่านไดรฟ์ของฉันเร็วกว่าจริง!
Karl Morrison

ฉันมักจะพบว่ามีประโยชน์มากกว่าในการทำสิ่งนี้โดยไม่ใช้-d 1สวิตช์ (และโดยปกติจะlessแทนที่ด้วยhead -20) ดังนั้นฉันจึงได้รับรายการของไฟล์และไดเร็กตอรี่ทั้งหมดที่เรียงลำดับแบบเรียกซ้ำโดยสมบูรณ์ ด้วยวิธีนี้ถ้าฉันเห็นไดเรกทอรีที่ใช้พื้นที่มากฉันสามารถเลื่อนลงเพื่อดูว่าพื้นที่ส่วนใหญ่ถูกใช้โดยไฟล์หรือไดเรกทอรีย่อยบางส่วนในนั้นหรือไม่ เป็นวิธีที่ดีในการค้นหาไฟล์และไดเรกทอรีที่ไม่ต้องการที่จะลบเพื่อเพิ่มพื้นที่ว่าง: เพียงเลื่อนลงจนกว่าคุณจะเห็นสิ่งที่คุณแน่ใจว่าคุณไม่ต้องการเก็บไว้ลบและทำซ้ำ
Ilmari Karonen

@KarlMorrison ไม่อ่านเร็วขึ้นมันแค่sortรอให้เอาต์พุตเสร็จก่อนที่จะเริ่มเอาต์พุต
muru

@muru Ah เอาล่ะ ฉันได้รับข้อมูลเร็วขึ้นเพื่อที่ฉันจะสามารถเริ่มต้นการสำรวจได้เร็วขึ้นถ้านั่นเป็นคำที่ดีกว่า!
Karl Morrison

13

มีคำตอบที่ดีเกี่ยวกับวิธีการค้นหาไดเรกทอรีที่ใช้พื้นที่ส่วนใหญ่อยู่แล้ว find / -size +10Mหากคุณมีเหตุผลที่จะเชื่อว่าไฟล์ขนาดใหญ่ไม่กี่ปัญหาหลักมากกว่าคนขนาดเล็กจำนวนมากที่คุณสามารถใช้สิ่งที่ต้องการ


11

ฉันไม่รู้จัก Ubuntu และไม่สามารถตรวจสอบคำตอบของฉันได้ แต่โพสต์คำตอบที่นี่ตามประสบการณ์ของฉันในฐานะผู้ดูแลระบบยูนิกซ์เมื่อนานมาแล้ว

  1. ค้นหาว่าระบบไฟล์ใดขาดพื้นที่ว่าง

    df -h
    

    จะแสดงรายการระบบไฟล์ทั้งหมดขนาดและพื้นที่ว่าง คุณเสียเวลาหากคุณตรวจสอบระบบไฟล์ที่มีพื้นที่เพียงพอ สมมติว่าระบบไฟล์แบบเต็มคือ / myfilesystem ตรวจสอบเอาต์พุต df หากมีระบบไฟล์ติดตั้งอยู่ที่ส่วนย่อยของ / myfilesystems ถ้าเป็นเช่นนั้น speps ต่อไปนี้จะต้องปรับให้เข้ากับสถานการณ์นี้

  2. ค้นหาขนาดไฟล์ที่ใช้ในระบบไฟล์นี้

    du -sh /myfilesystem
    

    อ็อพชัน -x อาจถูกใช้เพื่อรับประกันว่าจะพิจารณาเฉพาะไฟล์ที่เป็นสมาชิกของระบบไฟล์นี้ ตัวแปร Unix บางตัว (เช่น Solaris) ไม่รู้จักตัวเลือก -x สำหรับ du จากนั้นคุณต้องใช้วิธีแก้ไขปัญหาบางอย่างเพื่อค้นหา du ของระบบไฟล์ของคุณ

  3. ตรวจสอบดูว่าไฟล์ที่มองเห็นนั้นมีขนาดโดยประมาณของพื้นที่ที่ใช้ซึ่งแสดงโดย df หรือไม่ หากเป็นเช่นนั้นคุณสามารถเริ่มค้นหาไฟล์ / ไดเร็กทอรีขนาดใหญ่ของระบบไฟล์ / myfilesystem เพื่อล้างข้อมูล

  4. เพื่อค้นหาไดเรกทอรีย่อยที่ใหญ่ที่สุดของไดเรกทอรี /.../dir ใช้

    du -sk /.../dir/*|sort -n
    

    อ็อพชัน -k บังคับให้ du เพื่อเอาต์พุต sie เป็นกิโลไบต์โดยไม่มีหน่วยใด ๆ นี่อาจเป็นค่าเริ่มต้นในบางระบบ จากนั้นคุณสามารถละเว้นตัวเลือกนี้ ไฟล์ / ไดเรกทอรีย่อยที่ใหญ่ที่สุดจะแสดงที่ด้านล่างของผลลัพธ์

  5. หากคุณพบไฟล์ / ไดเรกทอรีขนาดใหญ่ที่คุณไม่ต้องการอีกต่อไปคุณสามารถลบออกได้อย่างเหมาะสม อย่ากังวลเกี่ยวกับไดเรกทอรีขนาดเล็กที่ด้านบนของผลลัพธ์ มันจะไม่แก้ปัญหาของคุณถ้าคุณลบพวกเขา หากคุณยังมีพื้นที่ไม่เพียงพอที่จะทำซ้ำขั้นตอนที่ 4 ในไดเรกทอรีย่อย larges ซึ่งจะปรากฏที่ด้านล่างของรายการ

แต่เกิดอะไรขึ้นถ้าเอาต์พุต du ไม่ได้ประมาณพื้นที่ว่างที่แสดงโดย df

หากเอาต์พุต du มีขนาดใหญ่กว่าคุณจะพลาดไดเรกทอรีย่อยที่ติดตั้งระบบไฟล์อื่น หากเอาต์พุต du มีขนาดเล็กกว่ามากไฟล์ som จะไม่แสดงในไดเร็กทอรีใด ๆ ที่ตรวจสอบ อาจมีเหตุผลที่แตกต่างกันสำหรับปรากฏการณ์ของเขา

  1. กระบวนการบางอย่างกำลังใช้ไฟล์ที่ถูกลบไปแล้ว ดังนั้นไฟล์นี้ถูกลบออกจากไดเรกทอรีและคุณไม่สามารถดูได้ แต่สำหรับระบบไฟล์บล็อกของพวกเขายังคงใช้งานอยู่จนกว่ากระบวนการจะปิดไฟล์ คุณสามารถลองค้นหากระบวนการที่เกี่ยวข้อง (เช่นกับ lsof) และบังคับให้ปิดไฟล์นี้ (เช่นโดยการหยุดแอปพลิเคชันหรือโดยการฆ่ากระบวนการ) หรือคุณเพียงแค่รีบูทเครื่อง

  2. มีไฟล์ในไดเรกทอรีที่ไม่สามารถมองเห็นได้อีกต่อไปเพราะหนึ่งในไดเรกทอรีหลักของพวกเขาในระบบไฟล์อื่นติดตั้งอยู่ ดังนั้นหากคุณมีไฟล์ / myfilesysem / subdir / bigfile และตอนนี้ติดตั้งระบบไฟล์อื่นบน / myfilesystem / subdir แล้วคุณจะไม่เห็นไฟล์นี้อีก

    du -shx /myfilesystem 
    

    จะรายงานค่าที่ไม่มีขนาด / myfilesystem / subdir / bigfile วิธีเดียวที่จะตรวจสอบว่ามีไฟล์ดังกล่าวอยู่หรือไม่คือ unmount / myfilesystem / subir และตรวจสอบ

    ls -la /myfilesystem/subdir 
    

    ถ้ามันมีไฟล์

  3. อาจมีระบบไฟล์ชนิดพิเศษที่ใช้ / จองพื้นที่บนดิสก์ที่ไม่สามารถมองเห็นได้ด้วยคำสั่ง ls คุณต้องการเครื่องมือพิเศษในการแสดงสิ่งนี้

นอกจากวิธีที่เป็นระบบนี้โดยใช้คำสั่ง du ยังมีบางอย่างที่คุณสามารถใช้ได้ ดังนั้นคุณสามารถใช้คำสั่ง find เพื่อค้นหาไฟล์ที่มีขนาดใหญ่กว่าค่าที่คุณให้ไว้คุณสามารถค้นหาไฟล์ที่มีขนาดใหญ่กว่าค่าที่คุณจัดหาหรือสร้างขึ้นใหม่หรือมีชื่อพิเศษ (เช่น * .log, core, * .trc) แต่คุณควรทำ df ตามที่อธิบายไว้ใน 1 เพื่อให้คุณทำงานกับระบบไฟล์ที่ถูกต้อง


บนเซิร์ฟเวอร์ไม่ว่างคุณไม่สามารถถอนติดตั้งสิ่งต่าง ๆ ได้ตลอดเวลา แต่คุณสามารถผูกติดไดเรกทอรีบนไปยังตำแหน่งชั่วคราวและจะไม่รวมถึงการติดตั้งอื่น ๆ และจะช่วยให้การเข้าถึงไฟล์ที่ซ่อนอยู่
Zan Lynx

ก่อน systemd ฉันมักจะมีความล้มเหลวในการเมานท์ส่งผลให้การเติม / ติดกับถังขยะ เขียนการสำรองข้อมูลไปยัง / mnt / backup โดยไม่เชื่อมต่อไดรฟ์ USB ตัวอย่างเช่น ตอนนี้ฉันต้องแน่ใจว่าหน่วยงานเหล่านั้นมีข้อกำหนดเมานต์
Zan Lynx

@ZanLynx ขอบคุณฉันไม่เคยได้ยินการผูกม้ามาก่อน
miracle173

@ZanLynx: ไม่เพียง แต่บนเซิร์ฟเวอร์ไม่ว่าง ลองนึกภาพว่าคุณมี/tmpระบบไฟล์แยกต่างหาก (เช่น tmpfs) และสิ่งที่สร้างไฟล์/tmpก่อนที่มันจะกลายเป็นจุดเชื่อมต่อไปยังระบบไฟล์อื่น ตอนนี้ไฟล์เหล่านี้กำลังนั่งอยู่ในระบบไฟล์รูทเงาโดยจุดเชื่อมต่อและคุณไม่สามารถเข้าถึงได้โดยไม่ต้องรีบูตไปที่โหมดการกู้คืน (ซึ่งไม่ได้ดำเนินการ/etc/fstab) หรือเหมือนกับที่คุณแนะนำ
David Foerster

9

ในกรณีที่คุณสนใจที่จะไม่ใช้คำสั่งนี่คือแอพ: Filelight

มันช่วยให้คุณเห็นภาพสิ่งที่ใช้พื้นที่ดิสก์ในโฟลเดอร์ใด ๆ ได้อย่างรวดเร็ว

ป้อนคำอธิบายรูปภาพที่นี่


มันเป็นเซิร์ฟเวอร์ที่ฉันใช้ SSH ไม่มี GUI
Karl Morrison

@KarlMorrison ฉันคิดว่ามีวิธีเรียกใช้โปรแกรม GUI ผ่าน ssh แต่มันเป็นความคิดในภายหลังเมื่อคุณมีพื้นที่สำหรับติดตั้งแพ็คเกจ
Xen2050

@ David Oh ใช่ฉันพยายามออกจากที่ มันเคยจำเป็นสำหรับแพลตฟอร์มอื่นที่ฉันใช้ ฉันจะแก้ไขความคิดเห็นนั้น

@Karl ใช่มันเป็นเรื่องง่ายถ้า X ติดตั้งไว้แล้วบนไคลเอนต์: ssh -X <your host>จากนั้นเรียกใช้โปรแกรมของคุณจากบรรทัดคำสั่ง

@ Markyisri ประเด็นก็คือคุณต้องติดตั้งโปรแกรมและการขึ้นต่อกันของมัน และกรณีของ Filelight ต้องการอย่างน้อย KDElibs และ Qt ซึ่งไม่เล็กเลย ดูเช่นหน้านี้สำหรับแพคเกจ Filelight Ubuntu , ทราบจำนวนอ้างอิงที่มี
Ruslan

5

ลองsudo apt-get autoremoveลบไฟล์ที่ไม่ได้ใช้ออกหากคุณยังไม่ได้ดำเนินการ


1
ทำแบบนั้นมาก่อน :( แต่เป็นความคิดที่ดีสำหรับคนอื่น ๆ !
Karl Morrison

3

ฉันมักจะใช้อันนี้

du -sh /*/

ถ้าฉันเจอโฟลเดอร์ใหญ่บางอันฉันจะเปลี่ยนมันและทำการตรวจสอบเพิ่มเติม

cd big_dir
du -sh */

หากต้องการคุณสามารถจัดเรียงอัตโนมัติได้ด้วย

du -s /*/ | sort -n

2

ไม่ใช่คำตอบที่แท้จริง - แต่เป็นภาคผนวก

คุณไม่มีพื้นที่เหลือแล้วและไม่สามารถติดตั้ง ncdu จากคำตอบของ @erman

คำแนะนำบางอย่าง

  • sudo apt clean allเพื่อลบแพ็คเกจที่คุณดาวน์โหลดไปแล้ว SAFE
  • sudo rm -f /var/log/*gzล้างไฟล์บันทึกที่เก่ากว่าหนึ่งหรือสองสัปดาห์ - จะไม่ลบบันทึกใหม่ / ปัจจุบัน ปลอดภัยที่สุด
  • sudo lsof | grep deletedรายการไฟล์ที่เปิดทั้งหมด แต่กรองลงไปยังไฟล์ที่ถูกลบออกจากดิสก์ ปลอดภัย FAIRLY
  • sudo rm /tmp/*ลบไฟล์ temp บางไฟล์ - ถ้ามีบางอย่างกำลังใช้งานอยู่คุณอาจทำให้กระบวนการไม่พอใจ ไม่จริงที่ปลอดภัย

เพื่อ `หนึ่งอาจกลับบรรทัดเช่นนี้

server456 ~ $ lsof | grep deleted
init          1          root    9r      REG              253,0  10406312       3104 /var/lib/sss/mc/initgro                        ups (deleted)
salt-mini  4532          root    0r      REG              253,0        17     393614 /tmp/sh-thd-1492991421                         (deleted)

ไม่สามารถทำอะไรได้มากไปกว่าบรรทัด init แต่บรรทัดที่สองแนะนำ Salt-minion ซึ่งมีไฟล์ที่เปิดอยู่ซึ่งถูกลบและบล็อกดิสก์จะถูกส่งคืนเมื่อการจัดการไฟล์ทั้งหมดถูกปิดโดยการรีสตาร์ทเซอร์วิส

ผู้ต้องสงสัยทั่วไปอื่น ๆ ที่นี่จะรวม syslog / rsyslog / syslog-ng, squid, apache หรือกระบวนการใด ๆ ที่เซิร์ฟเวอร์ของคุณทำงานซึ่ง "หนัก"


2

ฉันพบว่ามีประโยชน์อย่างมากต่อผลลัพธ์ของเครื่องมือเช่น Filelight แต่ในกรณีของคุณบนเซิร์ฟเวอร์โดยทั่วไปจะไม่มีการติดตั้ง GUI แต่duคำสั่งจะพร้อมใช้งานเสมอ

สิ่งที่ฉันทำตามปกติคือ:

  • เขียนduผลลัพธ์ไปยังไฟล์ ( du / > du_output.txt);
  • คัดลอกไฟล์บนเครื่องของฉัน;
  • ใช้DuFSเพื่อ "mount" duผลลัพธ์ในไดเรกทอรีชั่วคราว DuFSใช้ FUSE เพื่อสร้างระบบไฟล์เสมือน (= ไม่มีไฟล์ที่ถูกสร้างขึ้นจริงมันเป็นของปลอมทั้งหมด) ตามduผลลัพธ์
  • เรียกใช้ Filelight หรือเครื่องมือ GUI อื่นในไดเรกทอรีชั่วคราวนี้

คำเตือน: ฉันเขียนdufs- เพราะฉันมักจะต้องค้นหาสิ่งที่หมูพื้นที่ดิสก์บนเครื่องหัวขาด


คุณสามารถเรียงลำดับ -n du_output.txt
Zan Lynx

ฉันพบว่าจอแสดงผลกราฟิกของวิธีใช้พื้นที่ใช้งานง่ายขึ้น
Matteo Italia

-1

คล้ายกับ @TopHat แต่จะกรองไฟล์บางไฟล์หากไฟล์มี M, G หรือ T ในชื่อ ฉันไม่เชื่อว่ามันจะมีขนาดที่ขาดหายไปในคอลัมน์แรก แต่จะไม่ตรงกับชื่อไฟล์เว้นแต่ว่าคุณจะตั้งชื่อไฟล์อย่างสร้างสรรค์

du -chad 1 . | grep -E '[0-9]M[[:blank:]]|[0-9]G[[:blank:]]|[0-9]T[[:blank:]]'

สวิตช์บรรทัดคำสั่งอธิบายที่นี่เนื่องจากฉันไม่รู้ว่า c หรือ a ทำอะไร

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.