Linux find tar -type 备份日志


这几天系统出现一个bug,需要截取日志供研发研究:

$ ls -lrt

……

-rw-r-----   1 jrtu     jrtu     10560642  2月  8日 08:37 all.log.4
-rw-r-----   1 jrtu     jrtu     10524117  2月  8日 08:38
all.log.3
drwxr-x---   2 jrtu     jrtu         512  2月  8日 08:38 JIZ-T2000-1-P
drwxr-x---   2 jrtu     jrtu         512  2月  8日 08:39 LUY-T2000-2-P
-rw-r-----   1 jrtu     jrtu     10524828  2月  8日 08:39 all.log.2
-rw-r-----   1 jrtu     jrtu     10561217  2月  8日 08:40 all.log.1
-rw-r-----   1 jrtu     jrtu     1168256  2月  8日 08:41 jrtu.log
-rw-r-----   1 jrtu     jrtu     3541928  2月  8日 08:41 all.log

在此找到比all.log.3新的文件:

$find . -depth -newer all.log.3
./jrtu.log
./all.log
./TimeCalculate/all.log
./LUY-T2000-2-P/all.log
./LUY-T2000-2-P/all.log.1
./LUY-T2000-2-P
./LUY-T2000-1-P/all.log
……

此时看到有文件夹LUY-T2000-2-P等,如果执行下面的语句:

$find . -depth -newer all.log.3  -exec tar -cvf jrtulog.tar {} \;

我们就会把文件夹内的所有文件打包,这是不对的,我们只是要找到文件夹中比all.log.3新的文件

$find . -depth -newer all.log.3 -type f  -exec tar -cvf jrtulog.tar {} \;  ##加上-type f,即可排除排文件夹

a ./jrtu.log 1928K
a ./all.log 10110K
a ./TimeCalculate/all.log 1589K
a ./LUY-T2000-2-P/all.log 9564K
tar: ./LUY-T2000-2-P/all.log: 文件更改大小
a ./LUY-T2000-2-P/all.log.1 10270K
a ./LUY-T2000-1-P/all.log 2150K
a ./LUY-T2000-3-P/all.log 2065K
a ./LUH-T2000-1-P/all.log 1092K
a ./KAF-T2000-1-P/all.log 7066K
a ./all.log.1 10278K
a ./JIZ-T2000-1-P/all.log 6972K
a ./JIZ-T2000-2-P/all.log 7221K
a ./JIY-T2000-1-P/all.log 6843K
a ./all.log.2 10581K

最后压缩一下:

$gzip jrtulog.tar

相关内容