【Linux】任意のサイズのダミーファイルを作成する方法【dd】

技術

とあるシステム開発の結合試験で、試験条件として「ディスク使用量90%以上」の環境を用意する必要がありました。
元々、ディスク使用量が逼迫している環境であれば、試験条件を整えるのも比較的容易かと思います。
それはそれでどうなんだ感が否めないですが……。

しかし、ディスクに十分な空きがある環境で意図的に使用量を増やそうとすると、なかなか骨が折れます。
限られた時間の中で試験を進める以上、サクッとできるならそれに越したことはありません。

そんなときに役に立つのが、ddコマンド。
この記事では、ddコマンドを使って任意のサイズのダミーファイルを作成する方法を紹介します。

ddコマンドとは

ddコマンドは、ファイルやデバイスをブロック単位で読み書きを行うコマンドです。
読み込み元(入力)と書き込み先(出力)を指定することで、指定したサイズのデータをそのままコピーすることができます。
この特性を利用することで、任意のサイズのダミーファイルを作成することができます。

コマンドで指定する主なオプションの詳細は、以下のとおりです。
if:読み込み元のファイル
of:出力先のファイル
bs:ブロックサイズ(Byte)
count:コピーするブロック数

ddコマンドでダミーファイルを作成する

任意のサイズのダミーファイルを作成

以下は、約10MBのダミーファイルを作成する例です。
ダミーファイルを配置したいディレクトリ上で、次のようにコマンドを実行します。

$ dd if=/dev/zero of=test bs=1024 count=10000
10000+0 records in
10000+0 records out
10240000 bytes (10 MB, 9.8 MiB) copied, 2.2124 s, 4.6 MB/s

ifに指定している/dev/zeroは、Unix系OSであらかじめ用意されている特殊なファイルです。
このファイルを読み込むと、常に Null文字(\0)を返します。

コマンドを実行した結果は以下のとおりです。

$ ll
total 10000
drwxrwxrwx 1 xxx xxx     4096 Jan 10 12:51 ./
drwxrwxrwx 1 xxx xxx     4096 Jan 10 01:12 ../
-rwxrwxrwx 1 xxx xxx 10240000 Jan 10 12:52 test*

すべて Null文字で構成された、ファイルサイズが10,240KB(約10MB)の test という名前のファイルが作成されました。
出力されるファイルサイズは、「bs × count」によって決まります。
bs と count に設定する値を変更することで、出力するダミーファイルのサイズを任意に調整できます。

この方法を使うことで、「ディスク使用量が多い状態」を短時間で簡単に用意することができます。

実行時の注意点

ddコマンドは指定したサイズのファイルをそのまま作成するため、
実行する環境やディレクトリに注意が必要です。
・空きディスク容量が十分にあることを必ず事前に確認してください
・誤って重要なディレクトリやファイルを指定しないよう注意してください
・大容量のファイルを作成する場合、ディスクI/Oに負荷がかかる点にも注意が必要です

特に本番環境での利用は避け、検証用の環境で利用することをおすすめします。

まとめ

この記事では、ddコマンドを使った任意のサイズのダミーファイルを作成する方法を紹介しました。

ddコマンドを利用することで、
指定したサイズのダミーファイルを簡単に作成できる
ディスク使用量を意図的に増やした試験環境を短時間で用意できる

といったことが可能になります。

結合試験や負荷試験など、ディスク使用量を増やす必要がある場面において、
今回紹介した方法を活用することで、効率よく試験環境を整えることができます。

なお、ddコマンドは強力なコマンドであるため、
実行する環境や指定するパスには十分注意した上で利用してください。

コメント