当前位置: 首页 > Linux

15个性能工具常用的Linux文件系统命令

时间:2023-04-06 19:32:22 Linux

前言测试人员最常见也是最繁琐的工作之一就是清理环境,比如防止磁盘空间不足。下面是我收集的一些常用的Linux文件系统相关命令。1.检查可用空间要在服务器上的所有文件系统上查找可用空间,请执行以下命令:$df-hfilesystemcapacityusedfreeused%mountpoint/dev/vda140G32G6.0G84%/devtmpfs1.9g01.9g0%/devtmpfs1.9g01.9g0%/dev/shmtmps1.9g2.0m1.9g1%/runtmpfs1.9g01.9g0%/sys/fs/cgrouptmps379m0379m0%/run/run/user/1001tmpfs379M0379M0%/run/user/1000对于特定目录:$df-h/homefilesystemcapacityusedfreeused%mountpoint/dev/vda140G32G6.0G84%/press占用顺序显示文件系统,你可以更全面地了解:~$df-h|awk'{print$5""$6}'|排序-n|tail-522%/23%/home43%/var/datos52%/usr77%/boot2.calculatedirectorysize-h参数以友好易读的方式以千字节、兆字节、千兆字节显示目录大小$du-h-s/var/log76M/var/log3.清理文件我们通常使用rm命令来删除文件以释放空间。但是,由于应用程序正在使用它而无法删除文件对我们来说是很常见的,这种情况最常见于无法停止压力测试的系统上的日志文件。彻底删除它们可能会产生有害影响,例如挂起应用程序,或者更温和但也不恰当的是,因为这些文件的转储数据将被中断并且不再有用。为了不改变应用程序行为并达到释放磁盘空间的目的,我们将清空文件而不是删除它们:~#>/var/log/syslog然后文件大小为0字节。如果你需要用一个命令一次清空多个文件:~#forIinls"/var/log/*.log";do>"$I";done4.统计目录中的文件数量$ls-l/var/日志|wc-l5。在文件系统中查找大文件。当您要清理空间时,此命令很有用。它会显示目录和子目录中最大的文件~#du-k/var/log|排序-n|tail-536904/var/log/audit45780/var/log/journal4207856/var/log/journal/f0f31005fb5a436d88e3c6cbf54e25aa4120800/var/log/journal4207856/var/logTIPS如果文件大小参数必须以千字节显示:是-h,排序-n命令不会按列表排序tail-x限制显示文件的数量,x是一个数字,如果目录有数百或数千个文件,这个参数尤其重要。6.列出文件系统中最大的文件和上面类似,但是这个命令不包括子目录[root@7dgroup3log]#ls-lSr|tail-5-rw-------1rootroot468120December1603:20messages-20181216-rw-------1rootroot470853December203:24messages-20181202-rw-------1rootroot470862December903:429message81-rw--------1rootroot476536Dec.2303:20messages-20181223-rw------1rootroot500087Dec.3000:20messages如果删除-r参数,list文件将是最小的而不是最大的。7.计算指定文件的大小如果想得到指定目录下.log文件的总大小:~$du-ch/var/log/*.log|greptotal20Mtotal8.查找范围内的大文件。比如文件大小超过100MB~$find.-typef-size+100M-ls或那些介于100MB和1GB之间的文件~$find.-typef-size+100M-size-1G-ls9.列出最近修改的文件~#ls-larth/var/log|tail-5-rw--------1rootroot5.2KDec3000:14secure-rw-r--r--1rootrootroot0Dec3000:14syslogdrwxr-xr-x。14rootroot4.0K30Dec00:14.-rw------1rootroot118K30Dec00:30cron-rw------1rootroot489KDecember3000:30消息参数-a表示必须显示隐藏文件10.查找旧文件(1)很多时候我们需要知道给定时间间隔内被修改的文件。在以下示例中,定位超过90天的文件是为了查找不再使用并且可以安全删除以释放空间的旧文件。~#find/var/log-mtime+90-ls~#find/var/log-mtime+90-ls-execrm{}\;第一个命令只定位文件,第二个命令也删除它们。11.查找旧文件(2)同上,另一种情况,也考虑在指定时间间隔内访问过、修改过或未修改过的文件。~#查找/var/log-atime+90-ls12。查找空文件以下命令允许您在当前目录中查找大小为0字节的文件,即空文件。这在生成此文件的异常情况下很有用,例如在文件系统已100%满且应用程序尝试写入磁盘失败后,或异常的应用程序行为。在这些情况下,清理是必要的,因为尽管这些空文件不占用磁盘空间,但如果大量创建0字节文件,它们可以使用所有可用的文件系统索引节点,这反过来会导致不再创建文件。~$找到。-typef-size0b-ls或~$find。-typef-empty-ls要查明文件系统中有多少可用inode,请使用df-i命令。~#DF-i文件系统INODE已使用(i)使用(i)使用(i)%挂载点/dev/VDA12621440704450191699027%/devtmpfs4824683314821371%/devTMPFS48511814851171%//DEV/SHMTMPFS48511810414840771%/RUNTMPFS485118164851021%/SYS/FS/CGROUPTMPFS48511814851171%/RUN/User/100113。tar文件以保留该目录在给定时间点的状态,然后安全地删除或清空所有这些文件以释放空间。~#tar-zcvfvar_log.date+%Y%m%d.tar.gz/var/log/*.log前面的命令将所有日志文件压缩到一个文件中,扩展名为.tar.gz,日期为day,方便以后查找。让我们看看如何节省空间,将此示例从468MB压缩到35MB:~#du-ch/var/log/*.log|greptotal468Mtotal~#ls-lhvar_log.20181230.tar.gz-rw-r--r--1rootroot35Msep3013:36var_log.20181230.tar.gz之后,我们可以继续清空所有日志如第3节所述的文件。14.在回收站中查找文件通常当我们将文件发送到回收站时,它只是移动到主目录中的一个隐藏文件夹中。但也有一些应用程序使用自己的目录来存放垃圾,其名称是由大写或小写的单词垃圾组合,再加上一串数字,例如。删除硬盘驱动器或SD卡的文件系统时,回收站的名称可能会因操作系统而异,导致无法识别,因此没有明显的原因说明尽管有垃圾桶,设备仍继续使用大量空间被清空。所以解决办法是搜索系统中所有没有大小写差异的垃圾子目录,并分析它们的内容,看看是否可以删除(不一定是所有找到的项目都是垃圾)。以下是必需的命令。执行起来可能很耗时,所以你可能想进入一个特定的文件系统或目录:~$find/-iname"trash"-ls15.查找重复文件最后,这是一个非常长的命令,允许你查找和删除复制下面的文件以避免不必要的冗余,这在磁盘空间消耗方面可能非常昂贵。~$find-not-empty-typef-printf"%s\n"|排序-rn|uniq-d|xargs-I{}-n1查找-typef-size{}c-print0|xargs-0md5sum|排序|uniq-w32--all-repeated=separate|剪切-f3-100-d''|tr'\n.''\t.'|sed's/\t\t/\n/g'|剪切-f2-100|tr'\t''\n'|perl-i-pe's/([(){}-])/\\$1/g'|perl-i-pe's/'\''/\'\''/g'|xargs-prrm-v