这几天系统出现一个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