gpt4 book ai didi

linux - 如何检查我的文件是在 10 天内在 shell 脚本中创建的

转载 作者:太空宇宙 更新时间:2023-11-04 11:58:34 25 4
gpt4 key购买 nike

我有一堆根据创建日期命名的日志文件。例如;如果我的日志文件是在 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

关于linux - 如何检查我的文件是在 10 天内在 shell 脚本中创建的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53375441/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com