??官网地址:管理磁盘使用(任务列表) - Oracle Solaris 管理:常见任务
欢迎关注留言,我是收集整理小能手,工具翻译,仅供参考,笔芯笔芯.
|
|
$ 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
$ 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 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 [-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, 管理系统故障转储信息(任务)。
示例?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 *
示例?13-11 清除临时目录
以下示例显示如何清除?mywork?目录以及如何验证是否已删除所有文件和子目录。
# cd mywork # ls filea.000 fileb.000 filec.001 # rm -r * # ls #
示例?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