Solarisで1ファイル当たりのサイズを制限する:UNIX処方箋
現場ですぐに役立つ知識を欲するあなたに贈る珠玉のTips集。今回は、SolarisのUFSファイルシステムで、1ファイル当たりのサイズに制限を設定する方法について解説します。
SolarisのUFSファイルシステムで、1ファイル当たりのサイズ(容量)に制限を設定したいと考えています。何かよい方法はないでしょうか? また、ファイルサイズ(容量)の初期値および上限値はどれぐらいになるのでしょうか?
SolarisのUFSファイルシステムでは、1ファイル当たりのサイズに制限を設けていない場合の初期値および上限値は1Tバイトになります。また、この上限値は、1Tバイト以上には設定できません。扱えるサイズの上限値は以下に挙げる方法で制限できます。
mountコマンドの「nolargefiles」オプションで制限
Solarisにおいて、mountコマンドを実行しUFSファイルシステムをマウントする場合、「largefiles」オプションがデフォルトで選択されます(largefiles、nolargefilesオプションともSolaris 7以降で有効。詳細はman largefilesを参照)。これによってlargefilesフラグが設定され、2Gバイト以上のファイルを扱えるようになります。
largefilesフラグをクリアするには、mountコマンド実行時に「-o nolargefiles」というオプションを指定します。すると、ファイルシステム単位での制限として2Gバイト以上のファイルが扱えなくなります。具体的には、以下のとおりです。
*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***
また次のように/etc/vfstabファイルにnolargefilesフラグを記述することで、OS起動時に制限を設定できます。
/dev/dsk/c0t0d0s4 /dev/rdsk/c0t0d0s4 /opt ufs 1 yes nolargefiles
「nolargefiles」オプションが設定されているかどうか確認するには、mountコマンドを実行します。
*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***
ulimit、limitコマンドによる制限
使用しているシェルが/bin/shの場合はulimitコマンド、/bin/cshの場合はlimitコマンドを実行することで、ユーザーごとに扱えるファイルサイズの制限値を設定できます。
/bin/shのulimitコマンド
例えば、/bin/shにおいてファイルサイズの上限値を1Mバイトに制限するには、「-f」オプションの後に数値を指定しulimitコマンドを実行します(512バイトブロック単位)。
*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***
/bin/shにおいてファイルサイズの制限を確認する場合は、「-f」オプションを指定しulimitコマンドを実行します。
*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***
単位はブロックで出力されます。ほかの項目も確認したい場合は「-a」オプションを指定します。
*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***
/bin/cshのlimitコマンド
/bin/cshの場合は、limitコマンドを利用します。ファイルサイズの上限値を1Mバイトに制限するには、次のように実行します。
*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***
limitコマンドを利用し、ファイルサイズの上限値が設定されているかどうか調べるには、次のように実行します。
*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***
制限なしの場合はデフォルトの1Tバイト、もしくはファイルシステムの制限値までのファイルを扱えます。
ulimit、limitコマンドによる制限設定をすべてのユーザーに反映させる
ユーザーごとの環境設定ファイルとして$HOME/.profile、またすべてのユーザーが読み込むファイルに/etc/profileがあります。これらのファイルにulimitおよびlimitコマンドを記載することで、すべてのユーザーに対してファイルサイズの制限設定を反映させられます。また、ユーザーの環境設定ファイル$HOME/.profileの方が優先される点に注意する必要があります。
これら環境設定ファイルの読み込み順は以下のようになります。
- ログインシェルが/bin/shの場合、/etc/profile、$HOME/.profile
- ログインシェルが/bin/cshの場合、/etc/.login、$HOME/.cshrc、$HOME/.login
UNIX関連の悩みなら、「UNIX処方箋」にどうぞ
関連記事
- BINDで連番レコードを生成する
- AIXを管理する上でのポイント
- Solaris 9で、Qpopperのログ出力先を指定する
- sudoコマンドを利用し、一般ユーザーにroot権限を部分的に与える
- SolairsでISOイメージをマウントする
- Solarisのリリース番号とは?
- Solaris 10の最小特権機能の利用方法
- RAID 1の再同期の速度を速くする
- Solaris 9上で、TCPを用いて接続記録やアクセス制御を行う
- Solarisマシンにおける/tmpのファイルシステム
- Solaris 9におけるCDの自動マウント
- Basic認証を用いたアクセス制御
- quotaコマンドでファイルシステムの容量制限を行う
- 電源投入時にdiagが実行される設定の解除(ALOMの設定)
- mdbコマンドでSCSIのTagged Command Queueing設定を確認
- tarアーカイブ内から、特定キーワードを含むファイルを指定してリストアする
- /etc/systemファイルの編集に失敗してマシンが起動しない場合の対処法
- Perlを用いた自動FTP転送
- iノード数の変更方法
- Solaris 8以前と9以降のログローテーション設定の違い
- HTTPSサーバを構築する
- SolarisからIPv6ルーターのようにRAを配信する
- Solstice Backup 7.1によるディスクバックアップ
- シェルスクリプトによる特定ファイルのバックアップ
- 9個以上のディスクスライス作成
- bashが起動時に実行するファイル
- acctcomコマンドによる終了ステータスの確認
- 電源制御キーの役割と無効化
- 「load average」によるCPU負荷の確認
- FTP利用でのファイル/ディレクトリの属性変更
- UFS loggingによるエラーと復旧方法
- ALOMにおけるSC用ユーザーの確認とパスワード変更
- PostgreSQLのテーブルデータをファイルへコピーする方法
- sotrussやapptraceによる実行コマンドのトレース
- TCP遅延肯定応答タイマーのタイムアウト値の変更
- 複数のマシンで効率的にシャットダウンする方法
- WWW::MechanizeモジュールによるWebアクセスの自動化
- IPv6アドレスの自動生成による不具合解消法
- キャッシュファイルを利用したNFSマウント
関連リンク
Copyright © ITmedia, Inc. All Rights Reserved.