2009年12月20日日曜日

tarで圧縮する場合に、特定のディレクトリーを除外する方法

CentOS 5.4
Tar コマンド

次のようなディレクトリー構造の場合に

/
/home/UserDir/www/
/home/UserDir/www/111.txt
/home/UserDir/www/222.txt
/home/UserDir/www/AAA
/home/UserDir/www/AAA/aaa.txt
/home/UserDir/www/AAA/bbb.txt
/home/UserDir/www/BBB
/home/UserDir/www/BBB/ccc.txt
/home/UserDir/www/BBB/ddd.txt
/home/UserDir/www/CCC
/home/UserDir/www/CCC/eee.txt
/home/UserDir/www/CCC/fff.txt


下記の条件で圧縮するには
  • wwwより下位のディレクトリー・ファイルを圧縮する
  • www/AAA www/BBB を除外する 
  • バックアップ場所は /backup
  • バックアップファイル名は backup_UserDir_www.tar.gz

次のように --exclude を使う
[root@Cent-net ~]# cd /home/UserDir/www
[root@Cent-net www]# tar czvplf /backup/backup_UserDir_www.tar.gz . --exclude backup_UserDir_www.tar.gz --exclude AAA --exclude BBB
*バックアップファイル名と --exclude の間に「.」ドットが必要 

橙色のファイル及びディレクトリーが圧縮されます。




一連の操作を再現してみます

[root@Cent-net www]# ls -al
合計 28
drwxr-xr-x 5 root root 4096 12月 21 00:19 .
drwxr-xr-x 3 root root 4096 12月 21 00:09 ..
-rw-r--r-- 1 root root    2 12月 21 00:18 111.txt
-rw-r--r-- 1 root root    2 12月 21 00:19 222.txt
drwxr-xr-x 2 root root 4096 12月 21 00:12 AAA
drwxr-xr-x 2 root root 4096 12月 21 00:13 BBB
drwxr-xr-x 2 root root 4096 12月 21 00:14 CCC
[root@Cent-net www]# ls -al AAA
合計 16
drwxr-xr-x 2 root root 4096 12月 21 00:12 .
drwxr-xr-x 5 root root 4096 12月 21 00:19 ..
-rw-r--r-- 1 root root    2 12月 21 00:12 aaa.txt
-rw-r--r-- 1 root root    2 12月 21 00:12 bbb.txt
[root@Cent-net www]# ls -al BBB
合計 16
drwxr-xr-x 2 root root 4096 12月 21 00:13 .
drwxr-xr-x 5 root root 4096 12月 21 00:19 ..
-rw-r--r-- 1 root root    2 12月 21 00:13 ccc.txt
-rw-r--r-- 1 root root    2 12月 21 00:13 ddd.txt
[root@Cent-net www]# ls -al CCC
合計 16
drwxr-xr-x 2 root root 4096 12月 21 00:14 .
drwxr-xr-x 5 root root 4096 12月 21 00:19 ..
-rw-r--r-- 1 root root    2 12月 21 00:14 eee.txt
-rw-r--r-- 1 root root    2 12月 21 00:14 fff.txt
[root@Cent-net www]#

実際に圧縮してみます
[root@tachibana-net www]# cd
[root@tachibana-net www]# tar czvpf /backup/backup_UserDir_www.tar.gz . --exclude backup_UserDir_www.tar.gz
 --exclude AAA --exclude BBB
./
./CCC/
./CCC/eee.txt
./CCC/fff.txt
./111.txt
./222.txt

圧縮したファイルを見てみましょう

[root@Cent-net www]# cd /backup
[root@Cent-net backup]# ls -al
合計 96315604
drwxr-xr-x  4 root root        4096 12月 21 00:25 .
drwxr-xr-x 24 root root        4096 12月 21 00:25 ..
-rw-r--r--  1 root root         231 12月 21 00:26 backup_UserDir_www.tar.gz
[root@Cent-net backup]# tar tzvf backup_UserDir_www.tar.gz
drwxr-xr-x root/root         0 2009-12-21 00:19:05 ./
drwxr-xr-x root/root         0 2009-12-21 00:14:18 ./CCC/
-rw-r--r-- root/root         2 2009-12-21 00:14:01 ./CCC/eee.txt
-rw-r--r-- root/root         2 2009-12-21 00:14:18 ./CCC/fff.txt
-rw-r--r-- root/root         2 2009-12-21 00:18:55 ./111.txt
-rw-r--r-- root/root         2 2009-12-21 00:19:05 ./222.txt
[root@Cent-net backup]#

以上