广告
返回顶部
首页 > 资讯 > 操作系统 >在Linux中如何使用Bash脚本删除早于 “X” 天的文件/文件夹
  • 751
分享到

在Linux中如何使用Bash脚本删除早于 “X” 天的文件/文件夹

2023-06-16 06:06:04 751人浏览 泡泡鱼
摘要

小编给大家分享一下在linux中如何使用Bash脚本删除早于 “X” 天的文件/文件夹,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!1)在 Linux 中删除早于

小编给大家分享一下在linux中如何使用Bash脚本删除早于 “X” 天的文件/文件夹,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!

1)在 Linux 中删除早于 “X” 天的文件夹的 Bash 脚本

我们有一个名为 /var/log/app/ 的文件夹,其中包含 15 天的日志,我们将删除早于 10 天的文件夹。

$ ls -lh /var/log/app/ drwxrw-rw- 3 root root  24K Oct  1 23:52 app_log.01drwxrw-rw- 3 root root  24K Oct  2 23:52 app_log.02drwxrw-rw- 3 root root  24K Oct  3 23:52 app_log.03Drwxrw-rw- 3 root root  24K Oct  4 23:52 app_log.04drwxrw-rw- 3 root root  24K Oct  5 23:52 app_log.05drwxrw-rw- 3 root root  24K Oct  6 23:54 app_log.06drwxrw-rw- 3 root root  24K Oct  7 23:53 app_log.07drwxrw-rw- 3 root root  24K Oct  8 23:51 app_log.08drwxrw-rw- 3 root root  24K Oct  9 23:52 app_log.09drwxrw-rw- 3 root root  24K Oct 10 23:52 app_log.10drwxrw-rw- 3 root root  24K Oct 11 23:52 app_log.11drwxrw-rw- 3 root root  24K Oct 12 23:52 app_log.12drwxrw-rw- 3 root root  24K Oct 13 23:52 app_log.13drwxrw-rw- 3 root root  24K Oct 14 23:52 app_log.14drwxrw-rw- 3 root root  24K Oct 15 23:52 app_log.15

该脚本将删除早于 10 天的文件夹,并通过邮件发送文件夹列表。

你可以根据需要修改 -mtime X 的值。另外,请替换你的电子邮箱,而不是用我们的。

# /opt/script/delete-old-folders.sh #!/bin/bashprev_count=0fpath=/var/log/app/app_log.*find $fpath -type d -mtime +10  -exec ls -ltrh {} \; > /tmp/folder.outfind $fpath -type d -mtime +10  -exec rm -rf {} \;count=$(cat /tmp/folder.out | wc -l)if [ "$prev_count" -lt "$count" ] ; thenMESSAGE="/tmp/file1.out"TO="[email protected]"echo "Application log folders are deleted older than 15 days" >> $MESSAGEecho "+----------------------------------------------------+" >> $MESSAGEecho "" >> $MESSAGEcat /tmp/folder.out | awk '{print $6,$7,$9}' >> $MESSAGEecho "" >> $MESSAGESUBJECT="WARNING: Apache log files are deleted older than 15 days $(date)"mail -s "$SUBJECT" "$TO" < $MESSAGErm $MESSAGE /tmp/folder.outfi

delete-old-folders.sh 设置可执行权限。

# chmod +x /opt/script/delete-old-folders.sh

最后添加一个 cronjob 自动化此任务。它于每天早上 7 点运行。

# crontab -e 0 7 * * * /bin/bash /opt/script/delete-old-folders.sh

你将看到类似下面的输出。

Application log folders are deleted  older than 20 days+--------------------------------------------------------+Oct 11 /var/log/app/app_log.11Oct 12 /var/log/app/app_log.12Oct 13 /var/log/app/app_log.13Oct 14 /var/log/app/app_log.14Oct 15 /var/log/app/app_log.15

2)在 Linux 中删除早于 “X” 天的文件的 Bash 脚本

我们有一个名为 /var/log/apache/ 的文件夹,其中包含15天的日志,我们将删除 10 天前的文件。

以下文章与该主题相关,因此你可能有兴趣阅读。

  • 如何在 Linux 中查找和删除早于 “X” 天和 “X” 小时的文件?

  • 如何在 Linux 中查找最近修改的文件/文件夹

  • 如何在 Linux 中自动删除或清理 /tmp 文件夹内容?

# ls -lh /var/log/apache/ -rw-rw-rw- 3 root root  24K Oct  1 23:52 2daygeek_access.01-rw-rw-rw- 3 root root  24K Oct  2 23:52 2daygeek_access.02-rw-rw-rw- 3 root root  24K Oct  3 23:52 2daygeek_access.03-rw-rw-rw- 3 root root  24K Oct  4 23:52 2daygeek_access.04-rw-rw-rw- 3 root root  24K Oct  5 23:52 2daygeek_access.05-rw-rw-rw- 3 root root  24K Oct  6 23:54 2daygeek_access.06-rw-rw-rw- 3 root root  24K Oct  7 23:53 2daygeek_access.07-rw-rw-rw- 3 root root  24K Oct  8 23:51 2daygeek_access.08-rw-rw-rw- 3 root root  24K Oct  9 23:52 2daygeek_access.09-rw-rw-rw- 3 root root  24K Oct 10 23:52 2daygeek_access.10-rw-rw-rw- 3 root root  24K Oct 11 23:52 2daygeek_access.11-rw-rw-rw- 3 root root  24K Oct 12 23:52 2daygeek_access.12-rw-rw-rw- 3 root root  24K Oct 13 23:52 2daygeek_access.13-rw-rw-rw- 3 root root  24K Oct 14 23:52 2daygeek_access.14-rw-rw-rw- 3 root root  24K Oct 15 23:52 2daygeek_access.15

该脚本将删除 10 天前的文件并通过邮件发送文件夹列表。

你可以根据需要修改 -mtime X 的值。另外,请替换你的电子邮箱,而不是用我们的。

# /opt/script/delete-old-files.sh #!/bin/bashprev_count=0fpath=/var/log/apache/2daygeek_access.*find $fpath -type f -mtime +15  -exec ls -ltrd {} \; > /tmp/file.outfind $fpath -type f -mtime +15  -exec rm -rf {} \;count=$(cat /tmp/file.out | wc -l)if [ "$prev_count" -lt "$count" ] ; thenMESSAGE="/tmp/file1.out"TO="[email protected]"echo "Apache Access log files are deleted older than 20 days"  >> $MESSAGEecho "+--------------------------------------------- +" >> $MESSAGEecho "" >> $MESSAGEcat /tmp/file.out | awk '{print $6,$7,$9}' >> $MESSAGEecho "" >> $MESSAGESUBJECT="WARNING: Apache log folders are deleted older than 15 days $(date)"mail -s "$SUBJECT" "$TO" < $MESSAGErm $MESSAGE /tmp/file.outfi

delete-old-files.sh 设置可执行权限。

# chmod +x /opt/script/delete-old-files.sh

最后添加一个 cronjob 自动化此任务。它于每天早上 7 点运行。

# crontab -e 0 7 * * * /bin/bash /opt/script/delete-old-folders.sh

你将看到类似下面的输出。

Apache Access log files are deleted older than 20 days+--------------------------------------------------------+Oct 11 /var/log/apache/2daygeek_access.11Oct 12 /var/log/apache/2daygeek_access.12Oct 13 /var/log/apache/2daygeek_access.13Oct 14 /var/log/apache/2daygeek_access.14Oct 15 /var/log/apache/2daygeek_access.15

以上是“在Linux中如何使用Bash脚本删除早于 “X” 天的文件/文件夹”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注编程网操作系统频道!

--结束END--

本文标题: 在Linux中如何使用Bash脚本删除早于 “X” 天的文件/文件夹

本文链接: https://www.lsjlt.com/news/282540.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 在Linux中如何使用Bash脚本删除早于 “X” 天的文件/文件夹
    小编给大家分享一下在Linux中如何使用Bash脚本删除早于 “X” 天的文件/文件夹,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!1)在 Linux 中删除早于...
    99+
    2023-06-16
  • 如何使用vbs脚本定时删除N天前的文件
    这篇文章主要讲解了“如何使用vbs脚本定时删除N天前的文件”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“如何使用vbs脚本定时删除N天前的文件”吧!脚本放在定时任务里代替服务定时执行一些操作...
    99+
    2023-06-08
  • 如何使用bat自动删除指定文件夹下前几天的文件
    小编给大家分享一下如何使用bat自动删除指定文件夹下前几天的文件,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!代码如下:@echo off s...
    99+
    2023-06-08
  • 如何使用vbs实现自动删除超过10天的文件及文件夹
    小编给大家分享一下如何使用vbs实现自动删除超过10天的文件及文件夹,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!复制代码 代码如下:option explici...
    99+
    2023-06-08
  • 如何在Linux中使用rm命令删除文件
    如何在Linux中使用rm命令删除文件?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。-f 即:rm -f 文件路径   -f 就是直接强行删除,不作任何提示的意思   删除文件...
    99+
    2023-06-13
  • windows中文件夹正在使用无法删除如何解决
    这篇“windows中文件夹正在使用无法删除如何解决”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“windows中文件夹正在...
    99+
    2023-07-02
  • 怎么在Linux中使用bash命令删除文件中含“指定内容”的行
    怎么在Linux中使用bash命令删除文件中含“指定内容”的行?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。具体如下:#!/bin/sh# 功能:&n...
    99+
    2023-06-09
  • 使用Java如何删除文本文件中特定行的内容
    今天就跟大家聊聊有关使用Java如何删除文本文件中特定行的内容,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。常用的java框架有哪些1.SpringMVC,Spring Web MV...
    99+
    2023-06-14
  • linux中如何使用Bash脚本发送包含几天内到期的用户账号列表的电子邮件
    小编给大家分享一下linux中如何使用Bash脚本发送包含几天内到期的用户账号列表的电子邮件,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!1) 检查 10 天后到...
    99+
    2023-06-16
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作