您的位置:首页 > 运维架构 > Linux

linux取文件指定时间压缩打包

2019-09-28 12:04 1706 查看

获取文件时间:

[root@ ~]# ls --full-time beforedate.txt
-rwxr-xr-x 1 root root 27 2019-08-12 16:54:31.137000000 +0800 beforedate.txt

[root@ ~]# ls --full-time beforedate.txt| cut -d ' ' -f 6
2019-08-12
[root@ ~]# ls --full-time beforedate.txt| cut -d ' ' -f 7
16:54:31.137000000

[root@ ~]# ls --full-time beforedate.txt|awk '{print  $6 " " $7}'
2019-08-1216:54:31.137000000

[root@ ~]# ls --full-time beforedate.txt |awk '{print  $6 " " $7}' |cut -d '.' -f 1
2019-08-12 16:54:31

获取系统时间:

[root@ ~]# echo `date +%Y-%m-%d` `date +%H:%M:%S`
2019-09-27 14:41:23


------------------------实例------------------------

#!/bin/bash
#
#功能:查找指定日期范围内的文件,然后压缩打包。
#
BDATE=$(echo `ls --full-time beforedate.txt |awk '{print $6 " " $7}' |cut -d '.' -f 1`)
ADATE=$(echo `date +%Y-%m-%d` `date +%H:%M:%S`)


if [ -z "$1" ]; then
    echo "读取文件开始时间"
else 
    echo "手工输入开始时间"
    BDATE1=$1
    BDATE2=$2
    BDATE=$(echo ${BDATE1} ${BDATE2})
fi

echo 执行开始,时间起点【${BDATE}】截止日期【${ADATE}】!

cd /home

FILE=A`date "+%Y%m%d"`.tar.gz

#将文件名为首大写字母的,开始时间到系统时间打包
FILES=`find . -name  '[A-Z]*.txt' -newermt "${BDATE}" ! -newermt "${ADATE}" -type f -print`
if [ -z "${FILES}" ];then
    echo "无文件生成!"
else

    rm -f $FILE
    tar zcvf ${FILE} ${FILES}
    echo "文件已生成,位置:"
    ls -ltr `pwd`/${FILE}
    
    #更新日期
    cd /root/
    cat /dev/null > beforedate.txt

fi

echo 执行结束,时间起点【${BDATE}】截止日期【${ADATE}】!
 

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: