linux Maintaining disk 问题

df命令

df命令用于显示磁盘分区上的可使用的磁盘空间。默认显示单位为KB。可以利用该命令来获取硬盘被占用了多少空间,目前还剩下多少空间等信息。

-a或--all:包含全部的文件系统;
--block-size=<区块大小>:以指定的区块大小来显示区块数目;
-h或--human-readable:以可读性较高的方式来显示信息;
-H或--si:与-h参数相同,但在计算时是以1000 Bytes为换算单位而非1024 Bytes;
-i或--inodes:显示inode的信息;
-k或--kilobytes:指定区块大小为1024字节;
-l或--local:仅显示本地端的文件系统;
-m或--megabytes:指定区块大小为1048576字节;
--no-sync:在取得磁盘使用信息前,不要执行sync指令,此为预设值;
-P或--portability:使用POSIX的输出格式;
--sync:在取得磁盘使用信息前,先执行sync指令;
-t<文件系统类型>或--type=<文件系统类型>:仅显示指定文件系统类型的磁盘信息;
-T或--print-type:显示文件系统的类型;
-x<文件系统类型>或--exclude-type=<文件系统类型>:不要显示指定文件系统类型的磁盘信息;
--help:显示帮助;
--version:显示版本信息。

find命令

-amin<分钟>:查找在指定时间曾被存取过的文件或目录,单位以分钟计算;
-anewer<参考文件或目录>:查找其存取时间较指定文件或目录的存取时间更接近现在的文件或目录;
-atime<24小时数>:查找在指定时间曾被存取过的文件或目录,单位以24小时计算;
-cmin<分钟>:查找在指定时间之时被更改过的文件或目录;
-cnewer<参考文件或目录>查找其更改时间较指定文件或目录的更改时间更接近现在的文件或目录;
-ctime<24小时数>:查找在指定时间之时被更改的文件或目录,单位以24小时计算;
-daystart:从本日开始计算时间;
-depth:从指定目录下最深层的子目录开始查找;
-empty:寻找文件大小为0 Byte的文件,或目录下没有任何子目录或文件的空目录;
-exec<执行指令>:假设find指令的回传值为True,就执行该指令;
-false:将find指令的回传值皆设为False;
-fls<列表文件>:此参数的效果和指定“-ls”参数类似,但会把结果保存为指定的列表文件;
-follow:排除符号连接;
-fprint<列表文件>:此参数的效果和指定“-print”参数类似,但会把结果保存成指定的列表文件;
-fprint0<列表文件>:此参数的效果和指定“-print0”参数类似,但会把结果保存成指定的列表文件;
-fprintf<列表文件><输出格式>:此参数的效果和指定“-printf”参数类似,但会把结果保存成指定的列表文件;
-fstype<文件系统类型>:只寻找该文件系统类型下的文件或目录;
-gid<群组识别码>:查找符合指定之群组识别码的文件或目录;
-group<群组名称>:查找符合指定之群组名称的文件或目录;
-help或——help:在线帮助;
-ilname<范本样式>:此参数的效果和指定“-lname”参数类似,但忽略字符大小写的差别;
-iname<范本样式>:此参数的效果和指定“-name”参数类似,但忽略字符大小写的差别;
-inum<inode编号>:查找符合指定的inode编号的文件或目录;
-ipath<范本样式>:此参数的效果和指定“-path”参数类似,但忽略字符大小写的差别;
-iregex<范本样式>:此参数的效果和指定“-regexe”参数类似,但忽略字符大小写的差别;
-links<连接数目>:查找符合指定的硬连接数目的文件或目录;
-iname<范本样式>:指定字符串作为寻找符号连接的范本样式;
-ls:假设find指令的回传值为Ture,就将文件或目录名称列出到标准输出;
-maxdepth<目录层级>:设置最大目录层级;
-mindepth<目录层级>:设置最小目录层级;
-mmin<分钟>:查找在指定时间曾被更改过的文件或目录,单位以分钟计算;
-mount:此参数的效果和指定“-xdev”相同;
-mtime<24小时数>:查找在指定时间曾被更改过的文件或目录,单位以24小时计算;
-name<范本样式>:指定字符串作为寻找文件或目录的范本样式;
-newer<参考文件或目录>:查找其更改时间较指定文件或目录的更改时间更接近现在的文件或目录;
-nogroup:找出不属于本地主机群组识别码的文件或目录;
-noleaf:不去考虑目录至少需拥有两个硬连接存在;
-nouser:找出不属于本地主机用户识别码的文件或目录;
-ok<执行指令>:此参数的效果和指定“-exec”类似,但在执行指令之前会先询问用户,若回答“y”或“Y”,则放弃执行命令;
-path<范本样式>:指定字符串作为寻找目录的范本样式;
-perm<权限数值>:查找符合指定的权限数值的文件或目录;
-print:假设find指令的回传值为Ture,就将文件或目录名称列出到标准输出。格式为每列一个名称,每个名称前皆有“./”字符串;
-print0:假设find指令的回传值为Ture,就将文件或目录名称列出到标准输出。格式为全部的名称皆在同一行;
-printf<输出格式>:假设find指令的回传值为Ture,就将文件或目录名称列出到标准输出。格式可以自行指定;
-prune:不寻找字符串作为寻找文件或目录的范本样式;
-regex<范本样式>:指定字符串作为寻找文件或目录的范本样式;
-size<文件大小>:查找符合指定的文件大小的文件;
-true:将find指令的回传值皆设为True;
-type<文件类型>:只寻找符合指定的文件类型的文件; -uid<用户识别码>:查找符合指定的用户识别码的文件或目录; -used<日数>:查找文件或目录被更改之后在指定时间曾被存取过的文件或目录,单位以日计算; -user<拥有者名称>:查找符和指定的拥有者名称的文件或目录; -version或——version:显示版本信息; -xdev:将范围局限在先行的文件系统中; -xtype<文件类型>:此参数的效果和指定“-type”参数类似,差别在于它针对符号连接检查。

 显示 inode 信息


[root@kube ~]# df -hi
Filesystem              Inodes IUsed IFree IUse% Mounted on
devtmpfs                  227K   366  227K    1% /dev
tmpfs                     230K     4  230K    1% /dev/shm
tmpfs                     230K   690  230K    1% /run
tmpfs                     230K    16  230K    1% /sys/fs/cgroup
/dev/mapper/centos-root   3.5M   87K  3.4M    3% /
/dev/sda1                 512K   341  512K    1% /boot
/dev/mapper/centos-home   2.0M    13  2.0M    1% /home
tmpfs                     230K     9  230K    1% /var/lib/kubelet/pods/16ef049e-eec3-4070-8862-06f517a9cef3/volumes/kubernetes.io~secret/kube-proxy-token-txd7d
tmpfs                     230K     1  230K    1% /run/user/0
[root@kube ~]# 

 显示最大的20 个文件, 以KB 为单位

[root@kube ~]# find /var/ -xdev -type f -exec du {} \; | sort -rn | head -20
624712    /var/lib/docker/containers/c17f2510c0d8cd6158152e4c32fc434ae548759845d36ad3923c6dca9c5e07a3/c17f2510c0d8cd6158152e4c32fc434ae548759845d36ad3923c6dca9c5e07a3-json.log
376908    /var/lib/docker/containers/acb97e676f5c2de7b4d5778c7aa9c3913a4aa0ca2fa3f2c0057fca8644d8b84c/acb97e676f5c2de7b4d5778c7aa9c3913a4aa0ca2fa3f2c0057fca8644d8b84c-json.log
160640    /var/lib/docker/overlay2/bea2bebe5fbe3bf2404a4c73f539f0aee5fbc445f052de6ea914b3e3e23d0ca4/diff/usr/local/bin/kube-apiserver
118788    /var/lib/mysql/zabbix/history_uint.ibd
115908    /var/lib/rpm/Packages
113668    /var/lib/docker/overlay2/390a7e6962bfd7c4885063e2ac655125d72a811b0768b2cd1bb04f1c532f6502/diff/usr/local/bin/kube-controller-manager
106496    /var/lib/mysql/employees/salaries.ibd
94212    /var/lib/mysql/zabbix/history.ibd
77824    /var/lib/mysql/ibdata1
71632    /var/cache/yum/x86_64/7/epel/gen/filelists_db.sqlite
62504    /var/lib/etcd/member/wal/00000000000001f9-0000000003007040.wal
62504    /var/lib/etcd/member/wal/00000000000001f8-0000000002ff0f33.wal
62504    /var/lib/etcd/member/wal/00000000000001f7-0000000002fdae01.wal
62504    /var/lib/etcd/member/wal/00000000000001f6-0000000002fc4b8a.wal
62500    /var/lib/etcd/member/wal/1.tmp
62500    /var/lib/etcd/member/wal/00000000000001fa-000000000301d280.wal
49152    /var/lib/mysql/ib_logfile1
49152    /var/lib/mysql/ib_logfile0
48008    /var/cache/yum/x86_64/7/base/gen/filelists_db.sqlite
37876    /var/lib/docker/overlay2/f920e6b7c8d6479f1a1dec3f4d3e09305664edd7b4de46369101fa13ea5dd2cd/diff/usr/local/bin/kube-scheduler
[root@kube ~]# 

 检查/ var  分区中是否有大文件  以下命令语法显示前20个最大的文件/文件夹,但不包括预期会很大的文件/文件夹:

[root@kube ~]# find /var/ -xdev -type f -exec du {} \; | sort -rn | grep -Ev $(mount | awk '/\/var\// {print $3}' | sed -e :a -e N -e 's/\n/|/' -e ta) | head -20
624712    /var/lib/docker/containers/c17f2510c0d8cd6158152e4c32fc434ae548759845d36ad3923c6dca9c5e07a3/c17f2510c0d8cd6158152e4c32fc434ae548759845d36ad3923c6dca9c5e07a3-json.log
376908    /var/lib/docker/containers/acb97e676f5c2de7b4d5778c7aa9c3913a4aa0ca2fa3f2c0057fca8644d8b84c/acb97e676f5c2de7b4d5778c7aa9c3913a4aa0ca2fa3f2c0057fca8644d8b84c-json.log
160640    /var/lib/docker/overlay2/bea2bebe5fbe3bf2404a4c73f539f0aee5fbc445f052de6ea914b3e3e23d0ca4/diff/usr/local/bin/kube-apiserver
118788    /var/lib/mysql/zabbix/history_uint.ibd
115908    /var/lib/rpm/Packages
113668    /var/lib/docker/overlay2/390a7e6962bfd7c4885063e2ac655125d72a811b0768b2cd1bb04f1c532f6502/diff/usr/local/bin/kube-controller-manager
106496    /var/lib/mysql/employees/salaries.ibd
94212    /var/lib/mysql/zabbix/history.ibd
77824    /var/lib/mysql/ibdata1
71632    /var/cache/yum/x86_64/7/epel/gen/filelists_db.sqlite
62504    /var/lib/etcd/member/wal/00000000000001f9-0000000003007040.wal
62504    /var/lib/etcd/member/wal/00000000000001f8-0000000002ff0f33.wal
62504    /var/lib/etcd/member/wal/00000000000001f7-0000000002fdae01.wal
62504    /var/lib/etcd/member/wal/00000000000001f6-0000000002fc4b8a.wal
62500    /var/lib/etcd/member/wal/1.tmp
62500    /var/lib/etcd/member/wal/00000000000001fa-000000000301d280.wal
49152    /var/lib/mysql/ib_logfile1
49152    /var/lib/mysql/ib_logfile0
48008    /var/cache/yum/x86_64/7/base/gen/filelists_db.sqlite
37876    /var/lib/docker/overlay2/f920e6b7c8d6479f1a1dec3f4d3e09305664edd7b4de46369101fa13ea5dd2cd/diff/usr/local/bin/kube-scheduler
[root@kube ~]# 

 检查/ var分区中包含大量小文件的文件夹。以下命令语法返回最大的20个文件夹的列表:

[root@kube ~]# du -a /var | sort -rn | grep -Ev $(mount | awk '/\/var\// {print $3}' | sed -e :a -e N -e 's/\n/|/' -e ta) | head -n 20
3233540    /var
2901948    /var/lib
1682208    /var/lib/docker
1029916    /var/lib/docker/containers
700964    /var/lib/mysql
651000    /var/lib/docker/overlay2
624724    /var/lib/docker/containers/c17f2510c0d8cd6158152e4c32fc434ae548759845d36ad3923c6dca9c5e07a3
624712    /var/lib/docker/containers/c17f2510c0d8cd6158152e4c32fc434ae548759845d36ad3923c6dca9c5e07a3/c17f2510c0d8cd6158152e4c32fc434ae548759845d36ad3923c6dca9c5e07a3-json.log
378524    /var/lib/etcd/member
378524    /var/lib/etcd
376920    /var/lib/docker/containers/acb97e676f5c2de7b4d5778c7aa9c3913a4aa0ca2fa3f2c0057fca8644d8b84c
376908    /var/lib/docker/containers/acb97e676f5c2de7b4d5778c7aa9c3913a4aa0ca2fa3f2c0057fca8644d8b84c/acb97e676f5c2de7b4d5778c7aa9c3913a4aa0ca2fa3f2c0057fca8644d8b84c-json.log
375016    /var/lib/etcd/member/wal
331332    /var/cache
329516    /var/cache/yum/x86_64/7
329516    /var/cache/yum/x86_64
329516    /var/cache/yum
313064    /var/lib/mysql/zabbix
226580    /var/lib/docker/overlay2/3e1d84188d0611c206fb2f7716bf2a308e8aa50fa526052274cf385ba5a718b5
226572    /var/lib/docker/overlay2/3e1d84188d0611c206fb2f7716bf2a308e8aa50fa526052274cf385ba5a718b5/diff/usr/local/bin
[root@kube ~]# 

 您可以在问题出现时检查最近修改的文件。以下命令语法返回不超过72小时(-3 * 24)且不少于24小时(+1 * 24)之前/ tmp中修改的文件的列表 

[root@kube ~]# find /tmp -mtime -3 -mtime +1 -ls
[root@kube ~]# find /var -mtime -3 -mtime +1 -ls
13020608 29920 -rw-r--r--   1 root     root     30638080 Jul 25 09:16 /var/cache/yum/x86_64/7/epel/gen/primary_db.sqlite
535785    8 -rw-r--r--   1 root     root         4849 Jul 25 09:36 /var/cache/yum/x86_64/7/epel/repomd.xml
535787 1044 -rw-r--r--   1 root     root      1065355 Jul 25 09:36 /var/cache/yum/x86_64/7/epel/e5aca45ab09936348dce205adb85612600c4bc8de015457e1230beb1125e610c-updateinfo.xml.bz2
1194090 7020 -rw-r--r--   1 root     root      7187666 Jul 25 09:16 /var/cache/yum/x86_64/7/epel/9667369dfa22dba112df1a8c5560234aa364a4ad594b94a985aac388043d19fa-primary.sqlite.bz2
[root@kube ~]# 

 以下命令语法返回最近48小时(-2 * 24)创建的/ tmp文件的列表  

[root@kube ~]# find /var  -ctime -2 -ls  |head -5
17051825  172 -rw-r--r--   1 root     root       311296 Jul 27 17:51 /var/lib/rpm/__db.001
17051826   88 -rw-r--r--   1 root     root        90112 Jul 27 17:51 /var/lib/rpm/__db.002
17051827 1288 -rw-r--r--   1 root     root      1318912 Jul 27 17:51 /var/lib/rpm/__db.003
8579833    0 drwxr-xr-x   2 root     root           30 Jul 27 17:37 /var/lib/logrotate
8625532    4 -rw-r--r--   1 root     root          937 Jul 27 17:37 /var/lib/logrotate/logrotate.status
[root@kube ~]# 

猜你喜欢

转载自www.cnblogs.com/zy09/p/13386806.html