官网地址:管理磁盘使用(任务列表) - Oracle Solaris 管理:常见任务
欢迎关注留言,我是收集整理小能手,工具翻译,仅供参考,笔芯笔芯.
管理磁盘使用(任务列表)
|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| | 任务 | 说明 | 参考 | |-----------------|-----------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------| | 显示有关文件和磁盘空间的信息。 | 使用 df 命令显示有关磁盘空间使用情况的信息。 | 如何显示有关文件和磁盘空间的信息 | | 显示文件的大小。 | 使用带有 -lh 选项的 ls 命令显示有关文件大小的信息。 | 如何显示文件大小 | | 查找大文件。 | 使用 ls -s 命令可按大小对文件进行降序排序。 | 如何查找大文件 | | 查找超过指定大小限制的文件。 | 使用带有 -size 选项的 find 命令和指定大小限制值来查找并显示超过指定大小的文件的名称。 | 如何查找超过指定大小限制的文件 | | 显示目录、子目录和文件的大小。 | 使用 du 命令显示一个或多个目录、子目录和文件的大小。 | 如何显示目录、子目录和文件的大小 | | 列出最新的文件。 | 使用 ls -t 命令首先显示最新创建或更改的文件。 | 如何列出最新文件 | | 查找并删除旧文件或非活动文件。 | 使用带有 -atime 和 -mtime 选项的 find 命令查找在指定天数内未访问的文件。可以使用 rm `cat filename' 命令来删除这些文件。 | 如何查找并删除旧文件或非活动文件 | | 清除临时目录。 | 查找临时目录,然后使用 rm -r * 命令删除整个目录。 | 如何清除临时目录 | | 查找并删除核心文件。 | 使用 find . -name core -exec rm {} \; 命令查找并删除核心文件。 | 如何查找并删除 core 文件 | | 删除故障转储文件。 | 使用 rm * 命令删除位于 /var/crash 目录中的故障转储文件。 | 如何删除故障转储文件 | |
显示有关文件和磁盘空间的信息
此表概括说明了可用于显示有关文件大小和磁盘空间信息的命令。
|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| | 命令 | 说明 | 手册页 | |------------|------------------------|-------------------------------------------------------------------------------------------------| | df | 报告空闲磁盘块和文件的数量 | df(1M) | | du | 概述分配给每个子目录的磁盘空间 | du(1) | | find -size | 根据 -size 选项指定的大小递归搜索目录 | find(1) | | ls -lh | 以 1024 的幂次方形式列出文件大小 | ls(1) | |
如何显示有关文件和磁盘空间的信息
-
使用 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/admin
67G 33K 48G 1% /export/home/admin
rpool 67G 74K 48G 1% /rpool
home.domain:/export/home1/03/joey
539G 81G 452G 16% /home/joey
示例 13-3 显示文件系统分配的总块数和总文件数
以下示例显示所有已挂载文件系统、设备名称、使用的 512 字节块总数以及文件数量的列表。每个两行项的第二行都显示为文件系统分配的总块数和总文件数。
$ df -t
/ (rpool/ROOT/solaris): 100709077 blocks 100709077 files
total: 140378112 blocks 100838460 files
/devices (/devices ): 0 blocks 0 files
total: 0 blocks 456 files
/dev (/dev ): 0 blocks 0 files
total: 0 blocks 681 files
/system/contract (ctfs ): 0 blocks 2147483601 files
total: 0 blocks 46 files
/proc (proc ): 0 blocks 29946 files
total: 0 blocks 30002 files
/etc/mnttab (mnttab ): 0 blocks 0 files
total: 0 blocks 1 files
/system/volatile (swap ): 42190928 blocks 2276112 files
total: 42192336 blocks 2276330 files
/system/object (objfs ): 0 blocks 2147483441 files
total: 0 blocks 206 files
/etc/dfs/sharetab (sharefs ): 0 blocks 2147483646 files
total: 0 blocks 1 files
/dev/fd (fd ): 0 blocks 0 files
total: 0 blocks 31 files
/tmp (swap ): 42190928 blocks 2276112 files
total: 42190928 blocks 2276330 files
/export (rpool/export ): 100709077 blocks 100709077 files
total: 140378112 blocks 100709085 files
/export/home (rpool/export/home ): 100709077 blocks 100709077 files
total: 140378112 blocks 100709085 files
/export/home/admin (rpool/export/home/admin): 100709077 blocks 100709077 files
total: 140378112 blocks 100709086 files
/rpool (rpool ): 100709077 blocks 100709077 files
total: 140378112 blocks 100709090 files
/home/joey (home.domain:/export/home1/03/joey): 960033724 blocks 67158850 files
total: 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
以下示例显示 lpsched.1 文件使用了两个块。
$ 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 | more
6409 -rw-r--r-- 1 root root 3221924 Jan 7 12:15 messages
517 -r--r--r-- 1 root root 3353420 Jan 7 06:45 lastlog
111 -rw-r--r-- 1 root root 56045 Jan 3 19:10 messages.0
26 -rw-r--r-- 1 adm adm 12648 Jan 7 06:45 wtmpx
5 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 acct
3 drwxrwxr-x 2 adm sys 2 Jan 3 17:26 sa
3 drwxr-xr-x 2 root sys 2 Jan 3 17:26 streams
3 drwxr-xr-x 2 root sys 2 Jan 3 17:26 sm.bin
3 drwxr-xr-x 2 root sys 2 Jan 3 17:26 pool
3 drwxr-xr-x 2 adm adm 2 Jan 3 17:26 log
3 drwxr-xr-x 2 adm adm 2 Jan 3 17:26 exacct
1 lrwxrwxrwx 1 root root 27 Jan 3 17:36 utmpx -> ../../system/volatile/utmpx
1 -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/audio
796K /usr/share/audio/samples/au
797K /usr/share/audio/samples
798K /usr/share/audio
查找并删除旧文件或非活动文件
清理负载较大的文件系统的工作部分包括查找并删除最近未使用的文件。使用 ls 或 find 命令可以查找未使用的文件。有关更多信息,请参见 ls(1) 和 find(1) 手册页。
节省磁盘空间的其他方法包括清空临时目录(例如 /var/tmp 或 /var/spool 中的目录)以及删除 core 文件和故障转储文件。有关故障转储文件的更多信息,请参阅Chapter 17, 管理系统故障转储信息(任务)。
如何列出最新文件
-
使用 ls -t 命令列出文件,首先会显示最近创建或更改的文件。
$ ls -t [directory]
-t
先按最近的时间戳对文件进行排序。
directory
标识要搜索的目录。
示例 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 文件
-
成为管理员。
-
转到要搜索 core 文件的目录。
-
查找并删除此目录及其子目录中的所有 core 文件。
# find . -name core -exec rm {} \;
示例 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