tarコマンドを実行する前にテストしたい
サーバー上でバックアップファイル等のアーカイブ(圧縮)ファイルを作成する際に頻繁に使うtarコマンド。
しかし、今のサーバーでアーカイブファイルを保存するにはディスク容量がギリギリ…
tarコマンドを実行する前になんとかバックアップファイルのサイズを知ることはできないだろうか?
そんな時に使える便利なテストコマンドがあったのでご紹介したいと思います。
tarコマンド実行前のチェック=dry run(ドライラン)
コマンドを実行する前のテストとしてシミュレーションすることを「dry run(ドライラン)」と言います。
ファイルを同期するrsyncコマンド等にオプションで備わっているものなのですが、残念ながらtarコマンドにはdry runのオプションがありません。
そこで使うのがパイプと”wc -c”の組み合わせです。
$ tar czvf - (アーカイブ対象ディレクトリ) | wc -c
このコマンドによって、tarコマンドでアーカイブファイルが作成されなくなり、アーカイブ対象のファイルリストとアーカイブファイルの合計バイト数が画面に出力されます。実際にやってみましょう。
WordPressのファイルアップロードディレクトリ「wp-content/uploads」のアーカイブ作成をテスト実行してみます。
$ tar cvzf - ./wp-content/uploads |wc -c
./wp-content/uploads/
./wp-content/uploads/2015/
./wp-content/uploads/2015/05/
./wp-content/uploads/2015/05/20150502114157-200x140.gif
./wp-content/uploads/2015/05/20150502114157-300x164.gif
./wp-content/uploads/2015/05/20150502114157.gif
./wp-content/uploads/2015/05/20150502114157-150x150.gif
...(中略)...
./wp-content/uploads/2014/12/20141207221642.png
./wp-content/uploads/2014/12/20141207221642-300x47.png
15286932
テストの結果、15,286,932バイトになるようです。
実際にtarアーカイブ作成すると、若干サイズは異なる
さて、実際に実行して作成されたアーカイブファイルは15,523,840バイトでした。(約230KB多い)
おそらく保存される際に付加情報が追加された影響ではないかと思われます。(詳しい方解説お願いします(^-^;;)
単に容量だけを知りたい場合は以下のように「v」オプションを除きます。
$ tar czf - ./wp-content/uploads |wc -c
15286932
便利なコマンドなので、ぜひ使ってみてください。
参考URL:tar pre-run to evaluate expected size or amount of files
2015-08-10