如何解决用于将 *.log 文件复制到新目录的 Bash 脚本
stats.log
move_2021-05-24.log
sync_2021-05-24.log
application.log
我当前的脚本看起来像这样,但它不像我想的那样工作。它目前正在移动我认为的所有日志文件,而不仅仅是日期早于今天日期的日志文件。
cd /share/CACHEDEV1_DATA/app
for file in *.log
do
day=$(echo ${file} | cut -d"-" -f3)
Now="$(date +'%d')"
if [ "$day" != "$Now" ];
then
mv ${file} ~/share/CACHEDEV1_DATA/rclone/logs/
fi
done
如果我能得到关于我的脚本需要如何正常工作的建议,我会很高兴。
解决方法
希望您考虑logrotate
。它可以满足您的一切需求,甚至更多。
但是,如果您想推出自己的文件,您可以通过以下方法找到早于一天的文件并移动它们。注意:这将覆盖目的地的同名文件。我在 echo
之前添加了一个 mv
语句,以便您看看是否适合您。
find /share/CACHEDEV1_DATA/app -type f -maxdepth 1 -mtime +1d -print0 | \
while read -rd $'\0' file; do
echo mv "$file" ~/share/CACHEDEV1_DATA/rclone/logs/
done
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。