僕が使っている tar コマンドです。
使うんだけれどいつも忘れるので備忘録です。
サーバー同士でファイルを転送する時・・・特に、Web 関連のファイルで、ファイルのオーナーが apache だったり SSH ユーザーだったりするファイルが混在してそれを保持したまま転送したい時などに使えます。
(ZIP ファイルは、読・書・実行情報しか残してくれない)
圧縮ファイル作成
tar -cvzpf [ファイル]_$(date +%Y%m%d%H%M%S).tar.gz -C [ベースPath] [圧縮対象 (複数指定可)]
- ファイル名に今日の日付時刻 (タイムスタンプ) を加える
- c: 新しい tar ファイルを作る
- v: 処理したファイルを詳しく出力する
- z: アーカイブをgzip形式で圧縮する
- p: 所有者などのファイル属性を保持する
- f: アーカイブファイル名を指定する
- C: このパスをベースに圧縮ファイルを作成する
「-C」オプションはかゆいところに手が届くオプション。
解凍
tar -xvzpf [tarファイル名].tar.gz
- x: 解凍する
- v: 処理したファイルを詳しく出力する
- z: compress形式で圧縮されたアーカイブを展開する
- p: 所有者などのファイル属性を保持して展開する
- f: アーカイブファイル名を指定する
サーバー独自のコマンド
僕が日頃使っているコマンド集です。
etc の中を日時付きのタイムスタンプで保存する
UNIX系サーバーの設定ディレクトリを home ディレクトリに tar として保存する。
ファイル名に自動的に tar したときの日付を YYYYMMDDHHMMSS のフォーマットで付与する。
cd
sudo tar -cvzpf etc_$(date +%Y%m%d%H%M%S).tar.gz -C /etc/ ./
サーバーの中の設定ファイル一覧をまとめて tar にしてローカルに落として確認する時に使えます。
参考記事
@IT