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 ~]#