休言女子非英物,夜夜龙泉壁上鸣。这篇文章主要讲述性能工具之15个常用的Linux文件系统命令相关的知识,希望能为你提供帮助。
前言测试人员最常见和繁琐的任务之一就是清理环境,比如防止磁盘空间出现不足。下面是我收集的一些常用的 Linux 文件系统相关命令。
1.检查可用空间要查找服务器上所有文件系统上的可用空间,请执行以下命令:
$ df -h
文件系统容量已用可用 已用% 挂载点
/dev/vda140G32G6.0G84% /
devtmpfs1.9G01.9G0% /dev
tmpfs1.9G01.9G0% /dev/shm
tmpfs1.9G2.0M1.9G1% /run
tmpfs1.9G01.9G0% /sys/fs/cgroup
tmpfs379M0379M0% /run/user/1001
tmpfs379M0379M0% /run/user/1000
$ df -h /home
文件系统容量已用可用 已用% 挂载点
/dev/vda140G32G6.0G84% /
~$ df -h | awk \'{print $5 " " $6}\' | sort -n | tail -5
22% /
23% /home
43% /var/datos
52% /usr
77% /boot
-h
参数以友好的可读方式显示目录大小,以千字节、兆字节、千兆字节为单位$ du -h -s /var/log
76M/var/log
为了不改变应用程序行为并实现释放磁盘空间的目标,我们将清空文件而不是删除它们:
~# > /var/log/syslog
如果需要使用单命令一次清空多个文件:
~# for I in `ls "/var/log/*.log"`; do > "$I"; done
$ls -l /var/log | wc -l
~# du -k /var/log | sort -n | tail -5
- 【性能工具之15个常用的Linux文件系统命令】
36904/var/log/audit
45780/var/log/sa
4120792/var/log/journal/f0f31005fb5a436d88e3c6cbf54e25aa
4120800/var/log/journal
4207856/var/log
- 文件大小必须以千字节(参数
-k
)显示,如果参数是-h
,sort-n
命令不会按列表排序
tail-x
限制显示文件数,x 是数字,如果目录有数百或数千个文件,此参数就尤为重要了。
[root@7dgroup3 log]# ls -lSr | tail -5
-rw-------1 rootroot468120 12月 16 03:20 messages-20181216
-rw-------1 rootroot470853 12月2 03:24 messages-20181202
-rw-------1 rootroot470862 12月9 03:43 messages-20181209
-rw-------1 rootroot476536 12月 23 03:20 messages-20181223
-rw-------1 rootroot500087 12月 30 00:20 messages
7.计算指定文件大小如果想获取指定目录中
.log
文件的总大小:~$ du -ch /var/log/*.log | grep total
20Mtotal
~$ find . -type f -size +100M -ls
~$ find . -type f -size +100M -size -1G -ls
~# ls -larth /var/log | tail -5
-rw-------1 rootroot5.2K 12月 30 00:14 secure
-rw-r--r--1 rootroot0 12月 30 00:14 syslog
drwxr-xr-x. 14 rootroot4.0K 12月 30 00:14 .
-rw-------1 rootroot118K 12月 30 00:30 cron
-rw-------1 rootroot489K 12月 30 00:30 messages
10.查找旧文件(一)很多时候我们需要知道在给定时间间隔内修改的文件。在以下示例中,定位了超过90天的文件,以便找出不再使用的旧文件,可以安全地删除这些文件以释放空间。
?#find / var / log - mtime + 90 - ls
?#find / var / log - mtime + 90 - ls - exec rm {} \\;
第一个命令仅定位文件,第二个命令还能删除它们。
?#find / var / log - atime + 90 - ls
~$ find . -type f -size 0b -ls
~$ find . -type f -empty -ls
df-i
命令。~# df -i
文件系统Inode 已用(I) 可用(I) 已用(I)% 挂载点
/dev/vda12621440704450 191699027% /
devtmpfs4824683314821371% /dev
tmpfs48511814851171% /dev/shm
tmpfs48511810414840771% /run
tmpfs485118164851021% /sys/fs/cgroup
tmpfs48511814851171% /run/user/1001
~# tar -zcvf var_log.`date +%Y%m%d`.tar.gz /var/log/*.log
~# du -ch /var/log/*.log | grep total
468Mtotal
~# ls -lh var_log.20181230.tar.gz
-rw-r--r-- 1 root root 35M sep 30 13:36 var_log.20181230.tar.gz
14.回收站中查找文件通常当我们将文件发送到回收站时,它只是移动到主目录中的隐藏文件夹。但是存在一些应用程序使用它们自己的目录来存储垃圾,其名称是大写或小写的单词 trash 的组合,并结合一系列数字,例如
.Trash001
, .trash-002
, .Trash_0003
等此外,当安装来自外部硬盘驱动器或SD卡的文件系统时,回收站的名称可能因操作系统而异,导致无法识别,因此尽管垃圾箱已清空,但设备继续使用大量空间没有明显的理由。
因此,解决方案在于搜索系统中没有大小写差异的所有 * trash *子目录,并分析其内容以查看是否可以删除它(并不总是找到所有找到的项目都是垃圾)。
以下是必需的命令。它的执行可能非常耗时,因此你可能想要输入特定的文件系统或目录:
?$ find / - iname “* trash *” - ls
~$ find -not -empty -type f -printf "%s\\n" | sort -rn | uniq -d | xargs -I{} -n1 find -type f -size {}c -print0 | xargs -0 md5sum | sort | uniq -w32 --all-repeated=separate | cut -f3-100 -d \' \' | tr \'\\n.\' \'\\t.\' | sed \'s/\\t\\t/\\n/g\' | cut -f2-100 | tr \'\\t\' \'\\n\' | perl -i -pe \'s/([ (){}-])/\\\\$1/g\' | perl -i -pe \'s/\'\\\'\'/\\\\\'\\\'\'/g\' | xargs -pr rm -v
推荐阅读
- CentOS配置mailx通过465端口发送qq邮件
- Python降低XGBoost 过度拟合的多种方法
- 使用 Jenkins 创建微服务应用的持续集成
- 最近很火的低代码到底是什么()
- Prometheus监控运维实战七( 主机监控指标)
- 我们离真正的三维可视化“智慧机场”还有多远()
- 验证OSPF的NSSA区域ABR对LSA的七转五
- ??测试人生?? | 低薪运营6年,转行即拿下 20W 年薪,她的故事才刚刚开始···
- 8.23-8.29上周精彩回顾