首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在10天内用shell脚本检查我的文件

如何在10天内用shell脚本检查我的文件
EN

Stack Overflow用户
提问于 2018-11-19 13:14:12
回答 1查看 440关注 0票数 0

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

下面是我想要做的事情:从今天开始,我想检查我的日志文件的名称,并压缩在过去10天内创建的日志文件。

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

代码语言:javascript
复制
#!/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文件之后,我想删除旧的日志文件。换句话说,我正在尝试编写一个日志备份脚本。你能帮帮我吗?

非常感谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-11-19 14:15:12

代码语言:javascript
复制
#!/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中,或者搜索它的存在。

编辑:

根据您的要求,下面的代码可能很有用

代码语言:javascript
复制
#!/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
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53375441

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档