官网地址:管理磁盘使用(任务列表) - Oracle Solaris 管理:常见任务
欢迎关注留言,我是收集整理小能手,工具翻译,仅供参考,笔芯笔芯.
管理磁盘使用(任务列表)
|
显示有关文件和磁盘空间的信息
|
如何显示有关文件和磁盘空间的信息
- 使用 df 命令可显示有关磁盘空间使用情况的信息。
$ df [directory] [-h] [-t]
df
没有任何选项时,该命令将列出所有已挂载文件系统及其设备名称、使用的 512 字节块的数量以及文件数量。
directory
指定要检查其文件系统的目录。
-h
以 1024 的幂次方形式显示磁盘空间。
-t
显示总块数以及用于所有已挂载文件系统的块数。
示例 13-1 显示有关文件大小和磁盘空间的信息
在以下示例中,所列的所有文件系统都是本地挂载的,但 /usr/dist 除外。
$ df / (rpool/ROOT/solaris):100709074 blocks 100709074 files /devices (/devices ): 0 blocks 0 files /dev (/dev ): 0 blocks 0 files /system/contract (ctfs ): 0 blocks 2147483601 files /proc (proc ): 0 blocks 29946 files /etc/mnttab (mnttab ): 0 blocks 0 files /system/volatile (swap ):42191440 blocks 2276112 files /system/object (objfs ): 0 blocks 2147483441 files /etc/dfs/sharetab (sharefs ): 0 blocks 2147483646 files /dev/fd (fd ): 0 blocks 0 files /tmp (swap ):42191440 blocks 2276112 files /export (rpool/export ):100709074 blocks 100709074 files /export/home (rpool/export/home ):100709074 blocks 100709074 files /export/home/admin (rpool/export/home/admin):100709074 blocks 100709074 files /rpool (rpool ):100709074 blocks 100709074 files /home/joey (home.domain:/export/home1/03/joey):960033722 blocks 67158851 files
示例 13-2 以 1024 字节为单位显示文件大小信息
在以下示例中,针对每个指定的文件系统都显示了一个对应的信息行,其中以 1024 字节为单位显示文件系统信息。
$ df -h Filesystem Size Used Available Capacity Mounted on rpool/ROOT/solaris 67G 2.7G 48G 6% / /devices 0K 0K 0K 0% /devices /dev 0K 0K 0K 0% /dev ctfs 0K 0K 0K 0% /system/contract proc 0K 0K 0K 0% /proc mnttab 0K 0K 0K 0% /etc/mnttab swap 20G 704K 20G 1% /system/volatile objfs 0K 0K 0K 0% /system/object sharefs 0K 0K 0K 0% /etc/dfs/sharetab fd 0K 0K 0K 0% /dev/fd swap 20G 0K 20G 0% /tmp rpool/export 67G 32K 48G 1% /export rpool/export/home 67G 32K 48G 1% /export/home rpool/export/home/admin67G 33K 48G 1% /export/home/admin rpool 67G 74K 48G 1% /rpool home.domain:/export/home1/03/joey539G 81G 452G 16% /home/joey
示例 13-3 显示文件系统分配的总块数和总文件数
以下示例显示所有已挂载文件系统、设备名称、使用的 512 字节块总数以及文件数量的列表。每个两行项的第二行都显示为文件系统分配的总块数和总文件数。
$ df -t / (rpool/ROOT/solaris): 100709077 blocks 100709077 filestotal: 140378112 blocks 100838460 files /devices (/devices ): 0 blocks 0 filestotal: 0 blocks 456 files /dev (/dev ): 0 blocks 0 filestotal: 0 blocks 681 files /system/contract (ctfs ): 0 blocks 2147483601 filestotal: 0 blocks 46 files /proc (proc ): 0 blocks 29946 filestotal: 0 blocks 30002 files /etc/mnttab (mnttab ): 0 blocks 0 filestotal: 0 blocks 1 files /system/volatile (swap ): 42190928 blocks 2276112 filestotal: 42192336 blocks 2276330 files /system/object (objfs ): 0 blocks 2147483441 filestotal: 0 blocks 206 files /etc/dfs/sharetab (sharefs ): 0 blocks 2147483646 filestotal: 0 blocks 1 files /dev/fd (fd ): 0 blocks 0 filestotal: 0 blocks 31 files /tmp (swap ): 42190928 blocks 2276112 filestotal: 42190928 blocks 2276330 files /export (rpool/export ): 100709077 blocks 100709077 filestotal: 140378112 blocks 100709085 files /export/home (rpool/export/home ): 100709077 blocks 100709077 filestotal: 140378112 blocks 100709085 files /export/home/admin (rpool/export/home/admin): 100709077 blocks 100709077 filestotal: 140378112 blocks 100709086 files /rpool (rpool ): 100709077 blocks 100709077 filestotal: 140378112 blocks 100709090 files /home/joey (home.domain:/export/home1/03/joey): 960033724 blocks 67158850 filestotal: 1129776786 blocks 67966080 files
检查文件大小
使用 ls 命令可以检查文件的大小并对文件排序。使用 find 命令可以查找超过大小限制的文件。有关更多信息,请参见ls(1)和find(1)手册页。
注 - 如果 /var 目录中的空间不足,请不要将 /var 目录符号链接到文件系统中具有更多磁盘空间的目录。这种做法即使作为一种临时措施,也可能导致某些守护进程和实用程序出现问题。
如何显示文件大小
- 转到要检查的文件所在的目录。
- 显示文件的大小。
$ ls [-lh] [-s]
-l
以长格式显示文件和目录的列表,以字节为单位显示大小。(请参见以下示例。)
-h
文件或目录大小大于 1024 字节时,请以 KB、MB、GB 或 TB 来表示文件大小和目录大小。该选项还可以修改 -o、-n、-@ 和 -g 选项显示的输出,以使用新格式显示文件或目录大小。有关更多信息,请参见ls(1)手册页。
-s
显示文件和目录(大小以块为单位)的列表。
示例 13-4 显示文件大小
以下示例表明,lastlog 和 messages 文件比 /var/adm 目录中的其他文件大。
$ cd /var/adm $ ls -lh total 682 drwxrwxr-x 9 root sys 15 Jan 4 03:10 . drwxr-xr-x 41 root sys 42 Jan 3 19:03 .. drwxrwxr-x 5 adm adm 5 Jan 3 17:26 acct -rw------- 1 uucp bin 0 Jan 3 17:34 aculog drwxr-xr-x 2 adm adm 2 Jan 3 17:26 exacct -r--r--r-- 1 root root 3.2M Jan 4 06:47 lastlog drwxr-xr-x 2 adm adm 2 Jan 3 17:26 log -rw-r--r-- 1 root root 0 Jan 4 03:10 messages -rw-r--r-- 1 root root 55K Jan 3 19:10 messages.0 drwxr-xr-x 2 root sys 2 Jan 3 17:26 pool drwxrwxr-x 2 adm sys 2 Jan 3 17:26 sa drwxr-xr-x 2 root sys 2 Jan 3 17:26 sm.bin drwxr-xr-x 2 root sys 2 Jan 3 17:26 streams lrwxrwxrwx 1 root root 27 Jan 3 17:36 utmpx -> \../../system/volatile/utmpx -rw-r--r-- 1 adm adm 10K Jan 4 06:47 wtmpx
$ cd /var/lp/logs $ ls -s total 2 0 lpsched 2 lpsched.1
如何查找大文件
- 转到要搜索的目录。
- 以块为单位按从大到小的顺序显示文件大小。
-
如果文件的字符或列不同,请使用以下命令按块大小从大到小的顺序对文件列表进行排序。
$ ls -l | sort +4rn | more
请注意,此命令按照第四个字段中的字符(从左侧开始)对列表中的文件进行排序。
-
如果文件的字符或列相同,请使用以下命令按块大小从大到小的顺序对文件列表进行排序。
$ ls -s | sort -nr | more
请注意,此命令从最左侧的字符开始对列表中的文件进行排序。
-
示例 13-5 查找大文件(按第五个字段的字符进行排序)
$ cd /var/adm $ ls -l | sort +4rn | more -r--r--r-- 1 root root 3353420 Jan 7 06:45 lastlog -rw-r--r-- 1 root root 3221924 Jan 7 12:15 messages -rw-r--r-- 1 root root 56045 Jan 3 19:10 messages.0 -rw-r--r-- 1 adm adm 12648 Jan 7 06:45 wtmpx drwxr-xr-x 41 root sys 42 Jan 3 19:03 .. lrwxrwxrwx 1 root root 27 Jan 3 17:36 utmpx -> ../../system/volatile/utmpx drwxrwxr-x 9 root sys 15 Jan 4 03:10 . drwxrwxr-x 5 adm adm 5 Jan 3 17:26 acct drwxr-xr-x 2 adm adm 2 Jan 3 17:26 exacct drwxr-xr-x 2 adm adm 2 Jan 3 17:26 log drwxr-xr-x 2 root sys 2 Jan 3 17:26 pool drwxr-xr-x 2 root sys 2 Jan 3 17:26 sm.bin drwxr-xr-x 2 root sys 2 Jan 3 17:26 streams drwxrwxr-x 2 adm sys 2 Jan 3 17:26 sa -rw------- 1 uucp bin 0 Jan 3 17:34 aculog
示例 13-6 查找大文件(按最左侧的字符进行排序)
在以下示例中,lastlog 和 messages 文件是 /var/adm 目录中最大的文件。
$ cd /var/adm $ ls -s | sort -nr | more6409 -rw-r--r-- 1 root root 3221924 Jan 7 12:15 messages517 -r--r--r-- 1 root root 3353420 Jan 7 06:45 lastlog111 -rw-r--r-- 1 root root 56045 Jan 3 19:10 messages.026 -rw-r--r-- 1 adm adm 12648 Jan 7 06:45 wtmpx5 drwxr-xr-x 41 root sys 42 Jan 3 19:03 ..3 drwxrwxr-x 9 root sys 15 Jan 4 03:10 .3 drwxrwxr-x 5 adm adm 5 Jan 3 17:26 acct3 drwxrwxr-x 2 adm sys 2 Jan 3 17:26 sa3 drwxr-xr-x 2 root sys 2 Jan 3 17:26 streams3 drwxr-xr-x 2 root sys 2 Jan 3 17:26 sm.bin3 drwxr-xr-x 2 root sys 2 Jan 3 17:26 pool3 drwxr-xr-x 2 adm adm 2 Jan 3 17:26 log3 drwxr-xr-x 2 adm adm 2 Jan 3 17:26 exacct1 lrwxrwxrwx 1 root root 27 Jan 3 17:36 utmpx -> ../../system/volatile/utmpx1 -rw------- 1 uucp bin 0 Jan 3 17:34 aculog total 7094
如何查找超过指定大小限制的文件
- 要查找并显示超过指定大小的文件的名称,请使用 find 命令。
$ find directory -size +nnn
directory
标识要搜索的目录。
-size +nnn
512 字节块的数量。将列出超过此大小的文件。
示例 13-7 查找超过指定大小限制的文件
以下示例显示如何在当前工作目录中查找大于 400 块的文件。-print 选项显示 find 命令的输出。
$ find . -size +400 -print ./Howto/howto.doc ./Howto/howto.doc.backup ./Howto/howtotest.doc ./Routine/routineBackupconcepts.doc ./Routine/routineIntro.doc ./Routine/routineTroublefsck.doc ./.record ./Mail/pagination ./Config/configPrintadmin.doc ./Config/configPrintsetup.doc ./Config/configMailappx.doc ./Config/configMailconcepts.doc ./snapshot.rs
检查目录大小
可以使用 du 命令及选项显示目录的大小。有关这些命令的更多信息,请参见 du(1) 手册页。
如何显示目录、子目录和文件的大小
- 使用 du 命令显示一个或多个目录、子目录和文件的大小。以 512 字节块为单位显示大小。
$ du [-as] [directory ...]
du
显示您指定的每个目录的大小,包括目录下的每个子目录。
-a
显示每个文件和子目录的大小,以及指定目录中包含的总块数。
-s
显示指定目录中包含的总块数。
-h
以 1024 字节块为单位显示每个目录的大小。
-H
以 1000 字节块为单位显示每个目录的大小。
[directory ...]
标识要检查的一个或多个目录。命令行语法中的多个目录以空格分隔。
示例 13-8 显示目录、子目录和文件的大小
以下示例显示两个目录的大小。
$ du -s /var/adm /var/spool/cups 7098 /var/adm 0 /var/spool/cups
以下示例显示两个目录的大小,其中包括每个目录下的所有子目录和文件的大小。还显示每个目录中包含的总块数。
$ du /var/adm /var/spool/cups 3 /var/adm/streams 3 /var/adm/sa 3 /var/adm/acct/fiscal 3 /var/adm/acct/nite 3 /var/adm/acct/sum 12 /var/adm/acct 3 /var/adm/exacct 3 /var/adm/sm.bin 3 /var/adm/log 3 /var/adm/pool 7098 /var/adm
以下示例以 1024 字节块为单位显示目录大小。
$ du -h /usr/share/audio796K /usr/share/audio/samples/au797K /usr/share/audio/samples798K /usr/share/audio
查找并删除旧文件或非活动文件
清理负载较大的文件系统的工作部分包括查找并删除最近未使用的文件。使用 ls 或 find 命令可以查找未使用的文件。有关更多信息,请参见 ls(1) 和 find(1) 手册页。
节省磁盘空间的其他方法包括清空临时目录(例如 /var/tmp 或 /var/spool 中的目录)以及删除 core 文件和故障转储文件。有关故障转储文件的更多信息,请参阅Chapter 17, 管理系统故障转储信息(任务)。
如何列出最新文件
示例 13-9 列出最新文件
以下示例显示如何使用 ls -tl 命令在 /var/adm 目录中查找最近创建或更改的文件。sulog 文件是最近创建或编辑的文件。
$ ls -tl /var/adm -rw-r--r-- 1 root root 3227516 Jan 7 12:22 messages -rw-r--r-- 1 adm adm 12648 Jan 7 06:45 wtmpx -r--r--r-- 1 root root 3353420 Jan 7 06:45 lastlog drwxrwxr-x 9 root sys 15 Jan 4 03:10 . -rw-r--r-- 1 root root 56045 Jan 3 19:10 messages.0 drwxr-xr-x 41 root sys 42 Jan 3 19:03 .. lrwxrwxrwx 1 root root 27 Jan 3 17:36 utmpx -> ../../system/volatile/utmpx -rw------- 1 uucp bin 0 Jan 3 17:34 aculog drwxr-xr-x 2 root sys 2 Jan 3 17:26 streams drwxr-xr-x 2 root sys 2 Jan 3 17:26 sm.bin drwxrwxr-x 2 adm sys 2 Jan 3 17:26 sa drwxr-xr-x 2 root sys 2 Jan 3 17:26 pool drwxr-xr-x 2 adm adm 2 Jan 3 17:26 log drwxr-xr-x 2 adm adm 2 Jan 3 17:26 exacct drwxrwxr-x 5 adm adm 5 Jan 3 17:26 acct
如何查找并删除旧文件或非活动文件
- 成为管理员。
有关更多信息,请参见《Oracle Solaris 管理:安全服务》中的"如何获取管理权限"。
- 查找在指定的天数内未访问的文件并在一个文件中列出这些文件。
# find directory -type f[-atime +nnn] [-mtime +nnn] -print > filename &
directory
标识要搜索的目录。还会搜索此目录下面的子目录。
-atime +nnn
查找在您指定的天数内 (nnn) 未访问的文件。
-mtime +nnn
查找在您指定的天数内 (nnn) 未修改的文件。
filename
标识包含非活动文件列表的文件。
- 删除在前面的步骤中列出的非活动文件。
# rm `cat filename`
其中 filename 标识在前面的步骤中创建的文件。此文件包含非活动文件的列表。
示例 13-10 查找并删除旧文件或非活动文件
以下示例显示 /var/adm 目录及子目录中在过去 60 天内未访问的文件。/var/tmp/deadfiles 文件包含非活动文件的列表。rm 命令删除这些非活动文件。
# find /var/adm -type f -atime +60 -print > /var/tmp/deadfiles & # more /var/tmp/deadfiles /var/adm/aculog /var/adm/spellhist /var/adm/wtmpx /var/adm/sa/sa13 /var/adm/sa/sa27 /var/adm/sa/sa11 /var/adm/sa/sa23 /var/adm/sulog /var/adm/vold.log /var/adm/messages.1 /var/adm/messages.2 /var/adm/messages.3 # rm `cat /var/tmp/deadfiles` #
如何清除临时目录
- 成为管理员。
有关更多信息,请参见《Oracle Solaris 管理:安全服务》中的"如何获取管理权限"。
- 转到要清除的目录。
# cd directory
注意 - 完成步骤 3 之前,请确保您处于正确的目录中。步骤 3 将删除当前目录中的所有文件。
- 删除当前目录中的文件和子目录。
# rm -r *
- 转到包含不必要、临时或过时子目录和文件的其他目录。
- 重复步骤 3,删除这些子目录和文件。
示例 13-11 清除临时目录
以下示例显示如何清除 mywork 目录以及如何验证是否已删除所有文件和子目录。
# cd mywork # ls filea.000 fileb.000 filec.001 # rm -r * # ls #
如何查找并删除 core 文件
示例 13-12 查找并删除 core 文件
以下示例显示如何使用 find 命令查找并删除 jones 用户帐户的 core 文件。
# cd /home/jones # find . -name core -exec rm {} \;
如何删除故障转储文件
故障转储文件可能会很大。如果允许系统存储这些文件,除非必要,否则不要使其保留太长时间。
- 成为管理员。
- 转到存储故障转储文件的目录。
# cd /var/crash/
注意 - 完成步骤 3 之前,请确保您处于正确的目录中。步骤 3 将删除当前目录中的所有文件。
- 删除故障转储文件。
# rm *
- 验证是否已删除故障转储文件。
# ls
示例 13-13 删除故障转储文件
以下示例显示如何从系统 venus 中删除故障转储文件,以及如何验证故障转储文件是否已删除。
# cd /var/crash # rm * # ls