วิธีล้างไฟล์ที่ไม่จำเป็น


19

โปรดแนะนำไฟล์ใด ๆ ที่ไม่จำเป็นโดยเฉพาะซึ่งฉันสามารถล้างข้อมูลทุกอย่างกลับสู่สภาพปกติ (ชั่วคราว) (เช่นบันทึกหรือจดหมายเหตุหรืออะไรก็ได้) var / log ของฉันมีเพียง 40MB และไดเรกทอรี Home มีพื้นที่ 3GB (ดังนั้นฉันเชื่อว่านั่นไม่ใช่ปัญหา) นอกจากนั้นสิ่งที่ฉันสามารถทำความสะอาดเพื่อให้มีพื้นที่

[user@host]$ df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/mapper/vg_inamivm-lv_root
                       18G   17G     0 100% /
tmpfs                 1.9G     0  1.9G   0% /dev/shm
/dev/sda1             485M   71M  389M  16% /boot

ฉันอยู่ในเครื่องเดเบียน

UPDATE1:

การส่งออกของ cd /; du -sxh *

6.1M    bin
61M     boot
156K    dev
22M        etc
3.3G    home
306M    lib
18M     lib64
16K     lost+found
4.0K    media
4.0K    mnt
408K    opt
du: cannot access `proc/18605/task/18605/fd/4': No such file or directory
du: cannot access `proc/18605/task/18605/fdinfo/4': No such file or directory
du: cannot access `proc/18605/fd/4': No such file or directory
du: cannot access `proc/18605/fdinfo/4': No such file or directory
0       proc
208K    root
9.7M    sbin
0       selinux
4.0K    srv
0       sys
8.0K    tmp
536M    usr
187M    var

Update2

ผลผลิตของ ls -la /

dr-xr-xr-x.  22 root root  4096 Aug  7 08:42 .
dr-xr-xr-x.  22 root root  4096 Aug  7 08:42 ..
-rw-r--r--.   1 root root     0 Aug  7 08:42 .autofsck
dr-xr-xr-x.   2 root root  4096 Mar 28 16:53 bin
dr-xr-xr-x.   5 root root  1024 Mar 28 16:54 boot
drwxr-xr-x.  16 root root  3580 Sep  9 03:13 dev
drwxr-xr-x.  69 root root  4096 Aug 23 09:19 etc
drwxr-xr-x.   9 root root  4096 Jun 29 16:10 home
dr-xr-xr-x.   8 root root  4096 Mar  7  2012 lib
dr-xr-xr-x.   9 root root 12288 Mar 28 16:53 lib64
drwx------.   2 root root 16384 Mar  7  2012 lost+found
drwxr-xr-x.   2 root root  4096 Sep 23  2011 media
drwxr-xr-x.   2 root root  4096 Sep 23  2011 mnt
drwxr-xr-x.   3 root root  4096 Mar  7  2012 opt
dr-xr-xr-x. 355 root root     0 Aug  7 08:42 proc
dr-xr-x---.   5 root root  4096 Aug 17 18:27 root
dr-xr-xr-x.   2 root root  4096 May  2 09:13 sbin
drwxr-xr-x.   7 root root     0 Aug  7 08:42 selinux
drwxr-xr-x.   2 root root  4096 Sep 23  2011 srv
drwxr-xr-x.  13 root root     0 Aug  7 08:42 sys
drwxrwxrwt.   3 root root  4096 Sep 13 03:37 tmp
drwxr-xr-x.  13 root root  4096 Mar 28 17:53 usr
drwxr-xr-x.  18 root root  4096 Mar  7  2012 var

5
ไม่มีคำตอบสากลที่นี่ cd /; du -sxh *เรียกใช้คำสั่งต่อไปนี้เป็นรากรอในขณะที่และวางผลลัพธ์ของคุณ: มันจะสรุปขนาดของไดเรกทอรีหลักทั้งหมดในเซิร์ฟเวอร์ของคุณ จากนั้นเราจะได้เบาะแส นอกจากนี้คุณยังสามารถป้อนไดเรกทอรีใหญ่พร้อม cd และเรียกใช้คำสั่ง du ภายในเพื่อให้ได้ลึกยิ่งขึ้น
Krzysztof Adamski

@KrzysztofAdamski ขอบคุณสำหรับการตอบกลับอย่างรวดเร็ว ฉันได้อัปเดตคำถามด้วยผลลัพธ์ของcd /; du -sxh *
Subhransu Mishra

@Subhransu ขึ้นอยู่กับสิ่งที่คุณเห็นมันปรากฏขึ้นราวกับว่าคุณมีไฟล์ที่ถูกลบขณะที่ยังคงเปิดอยู่
Karlson

@Karlson ฉันไม่เข้าใจจริงๆถ้าคุณมีไฟล์ที่ถูกลบในขณะที่ยังคงเปิดอยู่ กรุณาอธิบาย. โปรดแจ้งให้เราทราบว่าเอาต์พุตอื่นใดที่สามารถใช้งานได้เพื่อให้คุณสามารถช่วยฉันได้
Subhransu Mishra

คุณเพิ่งลบไฟล์ขนาดใหญ่หรือไม่ ชอบไฟล์บันทึกหรืออะไรแบบนี้?
Krzysztof Adamski

คำตอบ:


12

วิธีที่ดีที่สุดในการค้นหาการใช้ดิสก์คือการใช้ซอฟต์แวร์กราฟิกเช่นbaobab:

เปิดตัวด้วย sudo baobab /

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


มันจะทำงานในเซิร์ฟเวอร์ระยะไกลหรือไม่
Subhransu Mishra

@Subhransu แน่นอนว่าถ้าคุณเชื่อมต่อกับ X forwarding ( ssh -XหรือForwardX11 yesใน~/.ssh/config) อย่างไรก็ตามหากไม่ได้ติดตั้งคุณอาจมีพื้นที่ไม่เพียงพอในการติดตั้งและไดเรกทอรีที่จำเป็น
Gilles 'หยุดความชั่วร้าย'

1
ดูคำตอบของฉันด้านล่างสำหรับเครื่องมือกราฟิกที่ไม่ต้องการเซิร์ฟเวอร์ X และต้องการพื้นที่เซิร์ฟเวอร์น้อยมาก
dotancohen

34

คำตอบของเดซี่ในการใช้เครื่องมือกราฟิกเพื่อค้นหาไฟล์และไดเรกทอรีขนาดใหญ่ที่มองเห็นได้อาจเป็นวิธีที่ดีที่สุด อย่างไรก็ตามโปรดทราบว่า "เครื่องมือกราฟิก" ไม่ได้หมายความว่า "ต้องมีเซิร์ฟเวอร์ X"! ncduโปรแกรมที่ยอดเยี่ยมให้ผลผลิตกราฟิกใน CLI และทำงานอย่างสมบูรณ์บนเซิร์ฟเวอร์ระยะไกลผ่าน SSH:

$ ncdu /

.  43.7GiB [##########] /home
.   5.9GiB [#         ] /usr
    1.1GiB [          ] /lib
.   1.1GiB [          ] /var
  736.9MiB [          ] /opt
. 324.6MiB [          ] /tmp
  218.4MiB [          ] /boot
.  63.8MiB [          ] /etc
   10.0MiB [          ] /sbin
    8.8MiB [          ] /bin
    3.3MiB [          ] /lib32
.   1.0MiB [          ] /run
   64.0KiB [          ] /build
!  16.0KiB [          ] /lost+found
    8.0KiB [          ] /media
    8.0KiB [          ] /mnt
    8.0KiB [          ] /.config
    4.0KiB [          ] /dev
    4.0KiB [          ] /lib64
e   4.0KiB [          ] /srv
e   4.0KiB [          ] /selinux
!   4.0KiB [          ] /root
e   4.0KiB [          ] /cdrom
.   0.0  B [          ] /proc
.   0.0  B [          ] /sys
@   0.0  B [          ]  initrd.img.old
@   0.0  B [          ]  initrd.img
@   0.0  B [          ]  vmlinuz.old

จากนั้นหลังจากป้อน/var/เช่น:

. 395.3MiB [##########] /tmp
. 365.0MiB [######### ] /cache
. 297.8MiB [#######   ] /lib
   16.1MiB [          ] /backups
.   8.0MiB [          ] /log
.  56.0KiB [          ] /spool
   40.0KiB [          ] /games
    8.0KiB [          ] /www
e   4.0KiB [          ] /opt
e   4.0KiB [          ] /mail
e   4.0KiB [          ] /local
e   4.0KiB [          ] /crash
@   0.0  B [          ]  lock
@   0.0  B [          ]  run

ติดตั้งได้อย่างง่ายดายบน Debian หรือ Ubuntu:

$ sudo apt-get install ncdu

ติดตั้งบน CentOS ได้อย่างง่ายดายในฐานะรูท:

# yum install ncdu

6

Debian เสนอยูทิลิตี้ที่เรียกว่าcruftIIRC ซึ่งแสดงรายการไฟล์ที่อาจไม่จำเป็นในระบบของคุณ


จะนำไปใช้อย่างไร?
nilon

5

ทำไฟล์ใหม่ที่/binเรียกว่าtreesize

chmod +x /bin/treesize

วางสิ่งนี้ลงไป

#/bin/sh
du -k --max-depth=1 | sort -nr | awk '
     BEGIN {
        split("KB,MB,GB,TB", Units, ",");
     }
     {
        u = 1;
        while ($1 >= 1024) {
           $1 = $1 / 1024;
           u += 1
        }
        $1 = sprintf("%.1f %s", $1, Units[u]);
        print $0;
     }
    '

ผลลัพธ์มีลักษณะเช่นนี้

#treesize
3.0 GB .
1.1 GB ./usr
759.9 MB ./var
353.3 MB ./root
307.1 MB ./opt
270.7 MB ./lib
98.6 MB ./home
60.1 MB ./boot
9.8 MB ./etc
8.3 MB ./bin
8.1 MB ./sbin
268.0 KB ./run
40.0 KB ./tmp
16.0 KB ./lost+found

4

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


3

นี่จะให้ไฟล์ที่ใหญ่ที่สุดใน FS ของคุณและบางทีคุณอาจพบว่ามีไฟล์บางไฟล์ที่สามารถลบได้

find / -xdev -type f -size +100000c -exec ls -la {} \; 2>/dev/null | sort -nk5 | tail -20

หากคุณต้องการเอาต์พุตที่นานขึ้นให้เปลี่ยนหมายเลขหลังคำสั่ง tail
กรุณาโพสต์เอาท์พุทจาก:

df -h /
du -shx /

ทั้งสองคำสั่งควรแสดงพื้นที่ที่ใช้คล้ายกันของ FS ของคุณ


1

ฉันได้พบคำสั่งบางอย่างมีประโยชน์มากในโพสต์นี้ที่ Askubuntu.com ถอดความ:

  • แสดงตำบลที่ใหญ่ที่สุด 10 อันดับแรกใน dir ปัจจุบัน: du -sk * | sort -nr | head -10
  • ใช้ filelight / kDirStat / baobab เพื่อดูว่าที่ว่างบนดิสก์มองเห็นที่ใด
  • ตรวจสอบว่าคุณมีเมล็ดเก่าหรือไม่สำหรับการลบ: ls -lh /boot
  • แพ็คเกจทำความสะอาด: sudo apt-get autoremoveและsudo apt-get autoclean
  • ดูรายการแพ็คเกจที่ติดตั้งทั้งหมดเรียงตามขนาด: dpkg-query -W --showformat='${Installed-Size} ${Package}\n' | sort -nr | less
  • ล้างไฟล์ภาษาที่ไม่ได้ใช้พร้อมคำแปล: sudo apt-get install localepurge
  • ตรวจสอบเนื้อหาของ / var / tmp /: du -sh /var/tmp/
  • ตรวจสอบด้วย man deborphan
  • ค้นหาไฟล์ขนาดใหญ่: find / -type f -size +1024kหรือfind / -size +50000 -exec ls -lahg {} \;
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.