この章では、使用していないファイルや大きなディレクトリを見つけることにより、ディスク容量を最適化する方法を示します。
ディスク使用の管理に関する手順については、「ディスク使用の管理 (手順マップ)」を参照してください。
作業 |
説明 |
参照先 |
---|---|---|
ファイルとディスク容量の情報を表示します。 |
df コマンドを使用して、ディスク容量の利用状況に関する情報を表示します。 | |
ファイルのサイズを表示します。 |
ls コマンドと -lh オプションを使用して、ファイルのサイズに関する情報を表示します。 | |
サイズの大きなファイルを探します。 |
ls -s コマンドを使用して、ファイルをサイズの降順にソートします。 | |
指定されたサイズ制限を超えるファイルを見つけます。 |
find コマンドと -size オプションを使用し、サイズ制限の値を指定して、そのサイズ制限を超えるファイルを見つけ、名前を表示します。 | |
ディレクトリ、サブディレクトリ、およびファイルのサイズを表示します。 |
du コマンドを使用して、1 つ以上のディレクトリ、サブディレクトリ、およびファイルのサイズを表示する | |
ローカル UFS ファイルシステムの所有状況を表示します。 |
quot -a コマンドを使用して、ファイルの所有状況を表示します。 | |
最新ファイルのリストを表示します。 |
ls -t コマンドを使用して、もっとも新しく作成または変更されたファイルから順番にファイルのリストを表示します。 | |
古いファイルと使用されていないファイルを見つけて削除します。 |
find コマンドと -atime および -mtime オプションを使用して、指定された日数アクセスされていないファイルを見つけます。これらのファイルは、rm `cat filename' コマンドを使用して削除できます。 | |
一時ディレクトリを一度にクリアします。 |
一時ディレクトリを見つけ、rm -r * コマンドを使用してディレクトリ全体を削除します。 | |
コアファイルを見つけて削除します。 |
find . -name core -exec rm {} \; コマンドを使用し、コアファイルを見つけて削除します。 | |
クラッシュダンプファイルを削除します。 |
rm * コマンドを使用して、/var/crash/ ディレクトリにあるクラッシュダンプファイルを削除します。 |
次の表に、ファイルのサイズとディスク容量の情報を表示するコマンドを示します。
コマンド |
説明 |
マニュアルページ |
---|---|---|
df |
空きディスクブロック数とファイル数を表示します。 | |
du |
各サブディレクトリに割り当てられたディスク容量を表示します。 | |
find -size |
-size オプションで指定したサイズに基づいて、ディレクトリを再帰的に検索します。 | |
ls -lh |
ファイルのサイズを 1024 の累乗でリストします。 |
次のように df コマンドを入力して、ディスク容量の利用状況に関する情報を表示します。
$ df [directory] [-h] [-t] |
オプションを指定しない場合、マウントされている全ファイルシステム、それらの装置名、使用されている 512 バイトのブロック数、ファイル数のリストを表示します。
チェックするファイルシステムのディレクトリを指定します。
ディスク容量を 1024 の累乗で表示します。
マウントされている全ファイルシステムの合計ブロック数と使用されているブロック数を表示します。
次の例では、/usr/dist を除き、リストされているすべてのファイルシステムがローカルにマウントされています。
$ df / (/dev/dsk/c0t0d0s0 ): 101294 blocks 105480 files /devices (/devices ): 0 blocks 0 files /system/contract (ctfs ): 0 blocks 2147483578 files /proc (proc ): 0 blocks 1871 files /etc/mnttab (mnttab ): 0 blocks 0 files /etc/svc/volatile (swap ): 992704 blocks 16964 files /system/object (objfs ): 0 blocks 2147483530 files /usr (/dev/dsk/c0t0d0s6 ): 503774 blocks 299189 files /dev/fd (fd ): 0 blocks 0 files /var/run (swap ): 992704 blocks 16964 files /tmp (swap ): 992704 blocks 16964 files /opt (/dev/dsk/c0t0d0s5 ): 23914 blocks 6947 files /export/home (/dev/dsk/c0t0d0s7 ): 16810 blocks 7160 files |
次の例では、UFS ルートファイルシステムを使用したシステムのファイルシステム情報が 1024 バイト単位で表示されています。
$ df -h Filesystem size used avail capacity Mounted on /dev/dsk/c0t0d0s0 249M 200M 25M 90% / /devices 0K 0K 0K 0% /devices ctfs 0K 0K 0K 0% /system/contract proc 0K 0K 0K 0% /proc mnttab 0K 0K 0K 0% /etc/mnttab swap 485M 376K 485M 1% /etc/svc/volatile objfs 0K 0K 0K 0% /system/object /dev/dsk/c0t0d0s6 3.2G 2.9G 214M 94% /usr fd 0K 0K 0K 0% /dev/fd swap 485M 40K 485M 1% /var/run swap 485M 40K 485M 1% /tmp /dev/dsk/c0t0d0s5 13M 1.7M 10M 15% /opt /dev/dsk/c0t0d0s7 9.2M 1.0M 7.3M 13% /export/home |
/proc と /tmp は、ローカルファイルシステムですが、UFS ファイルシステムではありません。/proc は PROCFS ファイルシステムであり、/var/run と /tmp は TMPFS ファイルシステムであり、/etc/mnttab は MNTFS ファイルシステムです。
次の例では、Oracle Solaris ZFS ルートファイルシステムを使用したシステムのファイルシステム情報が 1024 バイト単位で表示されています。
Filesystem size used avail capacity Mounted on rpool/ROOT/s1008be 67G 4.6G 58G 8% / /devices 0K 0K 0K 0% /devices ctfs 0K 0K 0K 0% /system/contract proc 0K 0K 0K 0% /proc mnttab 0K 0K 0K 0% /etc/mnttab swap 1.9G 1.5M 1.9G 1% /etc/svc/volatile objfs 0K 0K 0K 0% /system/object sharefs 0K 0K 0K 0% /etc/dfs/sharetab /platform/sun4u-us3/lib/libc_psr/libc_psr_hwcap1.so.1 63G 4.6G 58G 8% /platform/sun4u-us3/lib/libc_psr.so.1 /platform/sun4u-us3/lib/sparcv9/libc_psr/libc_psr_hwcap1.so.1 63G 4.6G 58G 8% /platform/sun4u-us3/lib/sparcv9/libc_psr.so.1 fd 0K 0K 0K 0% /dev/fd rpool/ROOT/s1008be/var 67G 73M 58G 1% /var swap 1.9G 32K 1.9G 1% /tmp swap 1.9G 40K 1.9G 1% /var/run rpool/export 67G 20K 58G 1% /export rpool/export/home 67G 18K 58G 1% /export/home |
次の例は、マウントされているすべてのファイルシステム、装置名、使用されている 512 バイトブロックの合計数、ファイル数を示しています。2 行構成の各エントリの 2 行目は、それぞれのファイルシステムに割り当てられているブロックの合計数とファイルの合計数を示します。
$ df -t / (/dev/dsk/c0t0d0s0 ): 101294 blocks 105480 files total: 509932 blocks 129024 files /devices (/devices ): 0 blocks 0 files total: 0 blocks 113 files /system/contract (ctfs ): 0 blocks 2147483578 files total: 0 blocks 69 files /proc (proc ): 0 blocks 1871 files total: 0 blocks 1916 files /etc/mnttab (mnttab ): 0 blocks 0 files total: 0 blocks 1 files /etc/svc/volatile (swap ): 992608 blocks 16964 files total: 993360 blocks 17025 files /system/object (objfs ): 0 blocks 2147483530 files total: 0 blocks 117 files /usr (/dev/dsk/c0t0d0s6 ): 503774 blocks 299189 files total: 6650604 blocks 420480 files /dev/fd (fd ): 0 blocks 0 files total: 0 blocks 31 files /var/run (swap ): 992608 blocks 16964 files total: 992688 blocks 17025 files /tmp (swap ): 992608 blocks 16964 files total: 992688 blocks 17025 files /opt (/dev/dsk/c0t0d0s5 ): 23914 blocks 6947 files total: 27404 blocks 7168 files /export/home (/dev/dsk/c0t0d0s7 ): 16810 blocks 7160 files total: 18900 blocks 7168 files |
ls コマンドを使用して、ファイルサイズを調べたりソートしたりできます。また、find コマンドを使用して、サイズの制限を超えているファイルを探すことができます。詳細については、ls(1) および find(1) のマニュアルページを参照してください。
/var ディレクトリの容量がなくなった場合、/var ディレクトリに、ファイルシステム上の空き容量のあるディレクトリへのシンボリックリンクを設定しないでください。たとえそれが一時的な策であっても、デーモンプロセスおよびユーティリティーの一部に問題が生じることがあります。
次のように入力して、ファイルのサイズを表示します。
$ ls [-lh] [-s] |
長形式でファイルとディレクトリのリストを表示し、それぞれのサイズをバイト単位で示します。(次の例を参照)
ファイルやディレクトリのサイズが 1024 バイトより大きい場合、ファイルとディレクトリのサイズをキロバイト、メガバイト、ギガバイト、テラバイト単位で示します。このオプションは、-o、-n、-@、-g オプションによる出力も、ファイルやディレクトリのサイズを新しい形式で表示するよう変更します。詳細は、ls(1) のマニュアルページを参照してください。
ファイルとディレクトリのリストを表示し、それぞれのサイズをブロック単位で示します。
次の例は、lastlog と messages が /var/adm ディレクトリ内のその他のファイルよりも大きいことを示します。
$ cd /var/adm $ ls -lh total 148 drwxrwxr-x 5 adm adm 512 Nov 26 09:39 acct/ -rw------- 1 uucp bin 0 Nov 26 09:25 aculog drwxr-xr-x 2 adm adm 512 Nov 26 09:25 exacct/ -r--r--r-- 1 root other 342K Nov 26 13:56 lastlog drwxr-xr-x 2 adm adm 512 Nov 26 09:25 log/ -rw-r--r-- 1 root root 20K Nov 26 13:55 messages drwxr-xr-x 2 adm adm 512 Nov 26 09:25 passwd/ drwxrwxr-x 2 adm sys 512 Nov 26 09:39 sa/ drwxr-xr-x 2 root sys 512 Nov 26 09:49 sm.bin/ -rw-rw-rw- 1 root bin 0 Nov 26 09:25 spellhist drwxr-xr-x 2 root sys 512 Nov 26 09:25 streams/ -rw-r--r-- 1 root bin 3.3K Nov 26 13:56 utmpx -rw-r--r-- 1 root root 0 Nov 26 10:17 vold.log -rw-r--r-- 1 adm adm 19K Nov 26 13:56 wtmpx |
次の例は、lpsched.1 ファイルが 2 ブロックを使用していることを示します。
$ cd /var/lp/logs $ ls -s total 2 0 lpsched 2 lpsched.1 |
ファイルのサイズをブロック数でもっとも大きいものから降順に表示します。
ファイルの文字またはカラムが異なる場合、次のコマンドを使用して、ブロックサイズによりもっとも大きいものから降順で、ファイルのリストをソートします。
$ ls -l | sort +4rn | more |
このコマンドは、左から 4 番目のフィールドにある文字により、リスト内のファイルをソートすることに注意してください。
ファイルの文字またはカラムが同じである場合、次のコマンドを使用して、ブロックサイズによりもっとも大きいものから降順で、ファイルのリストをソートします。
$ ls -s | sort -nr | more |
このコマンドは、もっとも左側の文字から始め、リスト内のファイルをソートすることに注意してください。
$ cd /var/adm $ ls -l | sort +4rn | more -r--r--r-- 1 root root 4568368 Oct 17 08:36 lastlog -rw-r--r-- 1 adm adm 697040 Oct 17 12:30 pacct.9 -rw-r--r-- 1 adm adm 280520 Oct 17 13:05 pacct.2 -rw-r--r-- 1 adm adm 277360 Oct 17 12:55 pacct.4 -rw-r--r-- 1 adm adm 264080 Oct 17 12:45 pacct.6 -rw-r--r-- 1 adm adm 255840 Oct 17 12:40 pacct.7 -rw-r--r-- 1 adm adm 254120 Oct 17 13:10 pacct.1 -rw-r--r-- 1 adm adm 250360 Oct 17 12:25 pacct.10 -rw-r--r-- 1 adm adm 248880 Oct 17 13:00 pacct.3 -rw-r--r-- 1 adm adm 247200 Oct 17 12:35 pacct.8 -rw-r--r-- 1 adm adm 246720 Oct 17 13:15 pacct.0 -rw-r--r-- 1 adm adm 245920 Oct 17 12:50 pacct.5 -rw-r--r-- 1 root root 190229 Oct 5 03:02 messages.1 -rw-r--r-- 1 adm adm 156800 Oct 17 13:17 pacct -rw-r--r-- 1 adm adm 129084 Oct 17 08:36 wtmpx |
次の例では、lastlog と messages ファイルが /var/adm 内でもっとも大きなファイルです。
$ cd /var/adm $ ls -s | sort -nr | more 48 lastlog 30 messages 24 wtmpx 18 pacct 8 utmpx 2 vold.log 2 sulog 2 sm.bin/ 2 sa/ 2 passwd/ 2 pacct1 2 log/ 2 acct/ 0 spellhist 0 aculog total 144 |
次のように find コマンドを使用して、指定したサイズを超えるファイルを見つけてファイル名を表示します。
$ find directory -size +nnn |
検索するディレクトリを指定します。
512 バイトブロック数です。このサイズを上回るファイルがリストされます。
次の例は、作業中のカレントディレクトリ内で 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 コマンドとそのオプションを使用すると、ディレクトリのサイズを表示できます。さらに quot コマンドを使用すれば、ユーザーアカウントによって占められるローカル UFS ファイルシステム上のディスク容量のサイズを知ることができます。これらのコマンドについては、du(1) と quot(1M) のマニュアルページを参照してください。
du コマンドを使用して、1 つ以上のディレクトリ、サブディレクトリ、およびファイルのサイズを表示するサイズは 512 バイトブロック単位で表示されます。
$ du [-as] [directory ...] |
指定した各ディレクトリとそれらの下の各サブディレクトリのサイズを表示します。
指定したディレクトリ内の各ファイルと各サブディレクトリのサイズと合計ブロック数を表示します。
指定したディレクトリ内の合計ブロック数を表示します。
ディレクトリのサイズを 1024 バイト単位のブロック数で表示します。
ディレクトリのサイズを 1000 バイト単位のブロック数で表示します。
調べたい 1 つ以上のディレクトリを指定します。複数のディレクトリを指定する場合は、コマンド行構文で空白を使用して区切ります。
次の例は、2 つのディレクトリのサイズを示しています。
$ du -s /var/adm /var/spool/lp 130 /var/adm 40 /var/spool/lp |
次の例は、2 つのディレクトリとそれらのすべてのサブディレクトリとファイルのサイズを示しています。各ディレクトリ内の合計ブロック数も表示しています。
$ du /var/adm /var/spool/lp 2 /var/adm/exacct 2 /var/adm/log 2 /var/adm/streams 2 /var/adm/acct/fiscal 2 /var/adm/acct/nite 2 /var/adm/acct/sum 8 /var/adm/acct 2 /var/adm/sa 2 /var/adm/sm.bin 258 /var/adm 4 /var/spool/lp/admins 2 /var/spool/lp/requests/printing.... 4 /var/spool/lp/requests 4 /var/spool/lp/system 2 /var/spool/lp/fifos 24 /var/spool/lp |
次の例は、ディレクトリのサイズを 1024 バイト単位のブロック数で示しています。
$ du -h /usr/share/audio 796K /usr/share/audio/samples/au 797K /usr/share/audio/samples 798K /usr/share/audio |
スーパーユーザーになるか、同等の役割を引き受けます。
役割には、認証と特権コマンドが含まれます。役割の詳細については、『Solaris のシステム管理 (セキュリティサービス)』の「RBAC の構成 (作業マップ)」を参照してください。
次のように入力して、ユーザー、ディレクトリまたはファイルシステム、1024 バイト単位のブロック数を表示します。
# quot [-a] [filesystem ...] |
マウントされている各 UFS ファイルシステムの全ユーザーと 1024 バイト単位のブロック数を表示します。
UFS ファイルシステムを指定します。このファイルシステムについて、ユーザーと使用されているブロック数が表示されます。
quot コマンドは、ローカル UFS ファイルシステムに対してだけ使用できます。
次の例では、ルート (/) ファイルシステムのユーザーが表示されています。その次に、マウントされた全 UFS ファイルシステムのユーザーが表示されています。
# quot / /dev/rdsk/c0t0d0s0: 43340 root 3142 rimmer 47 uucp 35 lp 30 adm 4 bin 4 daemon |
# quot -a /dev/rdsk/c0t0d0s0 (/): 43340 root 3150 rimmer 47 uucp 35 lp 30 adm 4 bin 4 daemon /dev/rdsk/c0t0d0s6 (/usr): 460651 root 206632 bin 791 uucp 46 lp 4 daemon 1 adm /dev/rdsk/c0t0d0s7 (/export/home): 9 root |
負荷の大きいファイルシステムを整理する作業として、最近使用されていないファイルの特定と削除があります。使用されていないファイルは ls コマンドまたは find コマンドを使用して見つけることができます。詳細については、ls(1) および find(1) のマニュアルページを参照してください。
ディスク容量を節約するには、/var/tmp または /var/spool 内にある一時ディレクトリを空にしたり、コアファイルやクラッシュダンプファイルを削除したりするなどの方法もあります。クラッシュダンプファイルの詳細は、第 17 章システムクラッシュ情報の管理 (手順)を参照してください。
ls -t コマンドを使用して、もっとも新しく作成または変更されたファイルから順番にファイルのリストを表示します。
$ ls -t [directory] |
最新タイムスタンプのファイルを最初にしてソートします。
検索するディレクトリを指定します。
次の例では、ls -tl コマンドを使用して、/var/adm ディレクトリ内でもっとも新しく作成または変更されたファイルを見つける方法を示します。sulog がもっとも新しく作成または変更されたファイルです。
$ ls -tl /var/adm total 134 -rw------- 1 root root 315 Sep 24 14:00 sulog -r--r--r-- 1 root other 350700 Sep 22 11:04 lastlog -rw-r--r-- 1 root bin 4464 Sep 22 11:04 utmpx -rw-r--r-- 1 adm adm 20088 Sep 22 11:04 wtmpx -rw-r--r-- 1 root other 0 Sep 19 03:10 messages -rw-r--r-- 1 root other 0 Sep 12 03:10 messages.0 -rw-r--r-- 1 root root 11510 Sep 10 16:13 messages.1 -rw-r--r-- 1 root root 0 Sep 10 16:12 vold.log drwxr-xr-x 2 root sys 512 Sep 10 15:33 sm.bin drwxrwxr-x 5 adm adm 512 Sep 10 15:19 acct drwxrwxr-x 2 adm sys 512 Sep 10 15:19 sa -rw------- 1 uucp bin 0 Sep 10 15:17 aculog -rw-rw-rw- 1 root bin 0 Sep 10 15:17 spellhist drwxr-xr-x 2 adm adm 512 Sep 10 15:17 log drwxr-xr-x 2 adm adm 512 Sep 10 15:17 passwd |
スーパーユーザーになるか、同等の役割を引き受けます。
役割には、認証と特権コマンドが含まれます。役割の詳細については、『Solaris のシステム管理 (セキュリティサービス)』の「RBAC の構成 (作業マップ)」を参照してください。
指定した日数の間アクセスのないファイルを見つけて、ファイルにそれらのリストを書き込みます。
# find directory -type f[-atime +nnn] [-mtime +nnn] -print > filename & |
検索するディレクトリを指定します。このディレクトリの下にあるディレクトリも検索します。
指定した日数 (nnn) の間アクセスのないファイルを見つけます。
指定した日数 (nnn) の間変更のないファイルを見つけます。
使用されないファイルリストを書き込むファイルを指定します。
上の手順でリストに書き込んだ使用されていないファイルを削除します。
# rm `cat filename` |
filename は、前の手順で作成したファイルです。このファイルには、使用されていないファイルのリストが入っています。
次の例は、/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` # |
スーパーユーザーになるか、同等の役割を引き受けます。
役割には、認証と特権コマンドが含まれます。役割の詳細については、『Solaris のシステム管理 (セキュリティサービス)』の「RBAC の構成 (作業マップ)」を参照してください。
整理するディレクトリに移動します。
# cd directory |
手順 3 を実行する前に、正しいディレクトリにいることを確認してください。手順 3 はカレントディレクトリ内のすべてのファイルを削除します。
カレントディレクトリ内のファイルとサブディレクトリを削除します。
# rm -r * |
サブディレクトリやファイルで、不要なもの、一時的なもの、または古くなったものがある他のディレクトリに移動します。
手順 3 を繰り返してこれらのサブディレクトリやファイルを削除します。
次の例は、mywork ディレクトリを空にする方法、およびすべてのファイルとサブディレクトリが削除されたことを確認する方法を示しています。
# cd mywork # ls filea.000 fileb.000 filec.001 # rm -r * # ls # |
スーパーユーザーになるか、同等の役割を引き受けます。
役割には、認証と特権コマンドが含まれます。役割の詳細については、『Solaris のシステム管理 (セキュリティサービス)』の「RBAC の構成 (作業マップ)」を参照してください。
コアファイルを検索したいディレクトリに移動します。
ディレクトリとサブディレクトリ内のすべてのコアファイルを見つけて削除します。
# find . -name core -exec rm {} \; |
次の例は、find コマンドを使用して jones のユーザーアカウントからコアファイルを見つけて削除する方法を示します。
# cd /home/jones # find . -name core -exec rm {} \; |
クラッシュダンプファイルは非常に大きくなる可能性があります。これらのファイルを保存するようシステムで設定している場合は、必要以上に長期間保存しないでください。
スーパーユーザーになるか、同等の役割を引き受けます。
役割には、認証と特権コマンドが含まれます。役割の詳細については、『Solaris のシステム管理 (セキュリティサービス)』の「RBAC の構成 (作業マップ)」を参照してください。
次のように入力して、クラッシュダンプファイルが格納されているディレクトリに移動します。
# cd /var/crash/system |
system は、クラッシュダンプファイルを作成したシステムのことです。
手順 3 を実行する前に、正しいディレクトリにいることを確認してください。手順 3 はカレントディレクトリ内のすべてのファイルを削除します。
クラッシュダンプファイルを削除します。
# rm * |
クラッシュダンプファイルが削除されたことを確認します。
# ls |
次の例は、システム venus からクラッシュダンプファイルを削除する方法、およびクラッシュダンプファイルが削除されたことを確認する方法を示します。
# cd /var/crash/venus # rm * # ls |