หมด inodes


26

ฉันไม่สามารถอัปเดต Ubuntu ได้เพราะฉันมีการใช้งาน inode 99% วิธีที่ง่ายที่สุดสำหรับฉันในการบรรเทาปัญหานี้คืออะไร?

ขอบคุณสำหรับความช่วยเหลือของคุณ.


2
คำถามที่คล้ายกันมากถูกถามใน StackOverlow อาจจะช่วยstackoverflow.com/questions/653096/howto-free-inode-usage


นอกจากนี้ที่คล้ายกันที่นี่ในAskUbuntu
Pablo

คำตอบ:


24

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

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

สคริปต์ที่เขียนโดยpaxdiablo บน stackoverflowอาจเป็นวิธีที่สะดวกในการตรวจสอบการใช้ไฟล์ขนาดเล็กมากเกินไปซึ่งคุณอาจไม่ทราบ ที่นี่เป็นอีกครั้ง:

#!/bin/bash
# count_em - count files in all subdirectories under current directory.
echo 'echo $(ls -a "$1" | wc -l) $1' >/tmp/count_em_$$
chmod 700 /tmp/count_em_$$
find . -mount -type d -print0 | xargs -0 -n1 /tmp/count_em_$$ | sort -n
rm -f /tmp/count_em_$$

วางสคริปต์นี้ในไฟล์ข้อความ ~ / bin / count_em แล้วออกคำสั่ง

chmod +x ~/bin/count_em

เพื่อให้สามารถเรียกใช้งานได้ หากคุณต้องสร้างไดเรกทอรี ~ / bin แล้วมันจะไม่อยู่ในเส้นทางปฏิบัติการดังนั้นเพียงออกจากระบบและกลับมาใหม่อีกครั้ง

หากต้องการเรียกใช้โปรแกรมที่คุณพิมพ์

count_em

และมันจะแสดงรายการหมายเลขของไฟล์ทั้งหมดในไดเรกทอรีปัจจุบันและไดเรกทอรีย่อยตามไดเรกทอรีโดยนับสูงสุดครั้งสุดท้าย มีประโยชน์มาก!


สายนี้> chmode + x ~ / bin / count_em เป็นจริง> chmod + x ~ / bin / count_em

1
จำเป็นต้องลบไฟล์ทั้งหมดที่ผู้ใช้สร้างขึ้นหรือย้ายไฟล์เหล่านั้นไปยังไฟล์เก็บถาวร tar หรือไม่?
AMC

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

ทางเลือกบรรทัดเดียวที่ดีสำหรับสคริปต์ของคุณอาจเป็นได้sudo du -a -d 1 --inodes . | sort -nr | head -20
Charles Green

1
แน่นอนว่ามันใช้ไม่ได้ถ้าคุณไม่มี inodes อย่างสมบูรณ์เพราะมันสร้างไฟล์ชั่วคราว :(
Molomby

8

คุณยังสามารถแสดงรายการเรียงลำดับของไดเรกทอรีตามจำนวน inodes โดยใช้คำสั่งนี้: du --inodes -d 3 / | sort -n | tail

จากตรงนั้นคุณสามารถกำหนดไดเรกทอรีที่จะลบ


1
unrecognized option '--inodes'บน Ubuntu 14.04, fyi
Molomby

ทำไมคุณใช้ ubundu 14.04 ในปี 2019 ฉันเห็นว่ามันมี coreutils 8.21 จากกุมภาพันธ์ 2013 --inodesตัวเลือกที่ถูกเพิ่มกรกฎาคม 2013 lmao
ZN13

2

ฉันพบว่าการใช้ inode นั้นมาจาก /root/.local และลบโฟลเดอร์นั้น


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