繁体   English   中英

如何检查我的文件是否在10天内用Shell脚本创建

[英]how to check my file is created within 10 days in shell script

我有一堆根据其创建日期命名的日志文件。 例如; 如果我的日志文件创建于2018年3月12日,则日志文件的名称为log-2018-03-12.log

这是我想做的事情:从今天起,我要检查日志文件的名称并压缩最近10天创建的日志文件。

这是将所有日志文件压缩到特定目录中的代码:

#!/bin/bash

# current time
now=$(date +"%F")

backupfile="backup-$now"
scripthome=/opt/MyStore/action_scripts/deneme/

tendaysbefore= date -d "$now - 10 days" '+%F'

for file in $scripthome;
do
    find "$(basename "$file")" | zip -R $backupfile.zip "log-2*.log"
done

但是我想压缩最近10天的日志文件,而不是所有日志文件,而且我想在此之后每10天继续压缩一次。 另外,在拥有zip文件之后,我想删除旧的日志文件。 换句话说,我正在尝试编写一个日志备份脚本。 你能帮我吗?

非常感谢你!

#!/bin/bash
END=10
for ((i=1;i<=END;i++)); do
   file=log-`date -d "$i days ago" +"%F"`.log
   echo $file
done

使用上述脚本,您可以获得最近10天的文件名。 稍后(在内部循环中),您可以执行任何想要的操作,例如将其添加到现有zip或搜索其存在性。

编辑:

根据您的要求,以下代码可能会有用

#!/bin/bash

# current time
now=$(date +"%F")

backupfile="backup-$now"
scripthome=/home/bhanu/opt/MyStore/action_scripts/deneme/

tendaysbefore=`date -d "$now - 10 days" '+%F'`
for file in $scripthome;
do
        zip -r -tt $now -t $tendaysbefore "$backupfile.zip" $scripthome/log-*.log > add.log 2>&1
        zip "$backupfile.zip" -d "*" -tt $tendaysbefore > delete.log 2>&1
done

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM