tar打包常用参数

## tar 打包
最近搬机房,为了防止搬机导致硬盘挂掉,把用到目录打包,就此简单总结.

tar 用到的参数:
-c, –create 创建压缩包
-v, –verbose 列出详单
-f, –file=ARCHIVE 给出压缩包名称,-f后面必须直接跟名称
-x, –extract 解压缩包
-z, –gzip, 给定压缩或者解压格式gz
-j, –bzip2 给定压缩或者解压格式bzip2
-J, –xz 给定压缩或者解压格式xz
-C, –directory=DIR 给出压缩的工作目录,这样可以在压缩包中不保留目录结构或者解压到这个目录
–exclude=PATTERN 排除文件和目录,多个目录可以使用多个–exclude进行指定
压缩多个目录,直接在后面跟目录就可以了,压缩的目录也可以是一个PATTERN,具体可以参考我脚本的例子.

这个是我用到的脚本:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
_ip=192.168.1.61
cd && mkdir trans && cd trans && mkdir ${_ip} && cd ${_ip}

# sys corntab && profile
cd ~/trans/${_ip}
cp /etc/profile .
tar -zvcf cron.tar.gz /var/spool/cron

# - java
tar -zvcf java.tar.gz /usr/java/

# - nginx 
#--exclude=*/logs/* 这个选项可以放在尾部
#--exclude=*/logs/* 保留logs目录,但不要logs中的文件
#--exclude=*/logs/ 不要logs目录和文件
tar --exclude=*/logs/* -zvcf nginx.tar.gz /usr/local/nginx
tar --exclude=*/logs/* -zvcf tengine-1.5.1.tar.gz /usr/local/tengine-1.5.1/

# - tomcats
tar -zvcf tomcat1.tar.gz /usr/local/tomcat1
tar --exclude=*/logs/* -zvcf tomcats.tar.gz /usr/local/tomcat\-*  /usr/local/apache-tomcat\-*

# - apps
tar -zvcf apps.tar.gz /nh/appdir/java

# - script
tar --exclude=*/logs/* -zvcf script.tar.gz /nh/script /nh/sh

# -other
tar -zvcf flume.tar.gz /home/flume/flume
tar --exclude=*/logs/* -zvcf apache-flume-1.6.0-bin.tar.gz /home/flume/apache-flume-1.6.0-bin

# tar all file
cd ~/trans/
tar -zvcf ${_ip}.tar.gz ${_ip}