加入收藏 | 设为首页 | 会员中心 | 我要投稿 济南站长网 (https://www.0531zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 服务器 > 搭建环境 > Windows > 正文

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

发布时间:2019-10-26 07:43:03 所属栏目:Windows 来源:Magesh Maruthamuthu
导读:副标题#e# 【大咖·来了 第7期】10月24日晚8点观看《智能导购对话机器人实践》 磁盘使用率 监控工具能够在达到给定阈值时提醒我们。但它们无法自行解决 磁盘使用率 问题。需要手动干预才能解决该问题。 如果你想完全自动化此类操作,你会做什么。是的,可以

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

  • 如何在 Linux 中查找和删除早于 “X” 天和 “X” 小时的文件?
  • 如何在 Linux 中查找最近修改的文件/文件夹
  • 如何在 Linux 中自动删除或清理 /tmp 文件夹内容?
  1. # ls -lh /var/log/apache/
  2.  
  3. -rw-rw-rw- 3 root root 24K Oct 1 23:52 2daygeek_access.01
  4. -rw-rw-rw- 3 root root 24K Oct 2 23:52 2daygeek_access.02
  5. -rw-rw-rw- 3 root root 24K Oct 3 23:52 2daygeek_access.03
  6. -rw-rw-rw- 3 root root 24K Oct 4 23:52 2daygeek_access.04
  7. -rw-rw-rw- 3 root root 24K Oct 5 23:52 2daygeek_access.05
  8. -rw-rw-rw- 3 root root 24K Oct 6 23:54 2daygeek_access.06
  9. -rw-rw-rw- 3 root root 24K Oct 7 23:53 2daygeek_access.07
  10. -rw-rw-rw- 3 root root 24K Oct 8 23:51 2daygeek_access.08
  11. -rw-rw-rw- 3 root root 24K Oct 9 23:52 2daygeek_access.09
  12. -rw-rw-rw- 3 root root 24K Oct 10 23:52 2daygeek_access.10
  13. -rw-rw-rw- 3 root root 24K Oct 11 23:52 2daygeek_access.11
  14. -rw-rw-rw- 3 root root 24K Oct 12 23:52 2daygeek_access.12
  15. -rw-rw-rw- 3 root root 24K Oct 13 23:52 2daygeek_access.13
  16. -rw-rw-rw- 3 root root 24K Oct 14 23:52 2daygeek_access.14
  17. -rw-rw-rw- 3 root root 24K Oct 15 23:52 2daygeek_access.15

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

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

  1. # /opt/script/delete-old-files.sh
  2.  
  3. #!/bin/bash
  4. prev_count=0
  5. fpath=/var/log/apache/2daygeek_access.*
  6. find $fpath -type f -mtime +15 -exec ls -ltrd {} ; > /tmp/file.out
  7. find $fpath -type f -mtime +15 -exec rm -rf {} ;
  8. count=$(cat /tmp/file.out | wc -l)
  9. if [ "$prev_count" -lt "$count" ] ; then
  10. MESSAGE="/tmp/file1.out"
  11. TO="[email protected]"
  12. echo "Apache Access log files are deleted older than 20 days" >> $MESSAGE
  13. echo "+--------------------------------------------- +" >> $MESSAGE
  14. echo "" >> $MESSAGE
  15. cat /tmp/file.out | awk '{print $6,$7,$9}' >> $MESSAGE
  16. echo "" >> $MESSAGE
  17. SUBJECT="WARNING: Apache log folders are deleted older than 15 days $(date)"
  18. mail -s "$SUBJECT" "$TO" < $MESSAGE
  19. rm $MESSAGE /tmp/file.out
  20. fi

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

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

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

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

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

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

(编辑:济南站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!