当前位置: 首页 > 科技观察

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

时间:2023-03-14 22:33:04 科技观察

磁盘使用监控工具能够在达到给定阈值时提醒我们。但是他们不能自己解决磁盘使用问题。需要手动干预才能解决该问题。如果你想完全自动化这些操作,你会怎么做。是的,可以使用bash脚本来完成。这个脚本可以防止监控工具发出警报,因为我们在填满磁盘空间之前删除了旧的日志文件。我们过去做过很多shell脚本。如果您想检查一下,请转到下面的链接。如何使用shell脚本自动化日常活动?我在本文中添加了两个bash脚本来帮助清除旧日志。1)在Linux中删除早于“X”天的文件夹的Bash脚本我们有一个名为/var/log/app/的文件夹,其中包含早于15天的日志,我们将删除文件夹早于10天的文件。$ls-lh/var/log/app/drwxrw-rw-3rootroot24KOct123:52app_log.01drwxrw-rw-3rootroot24KOct223:52app_log.02drwxrw-rw-3rootroot24KOct323:52app_log.03drwxrw-rw-3rootroot24KOct423:52app_log.04drwxrw-rw-3rootroot24KOct523:52app_log.05drwxrw-rw-3rootroot24KOct623:54app_log.06drwxrw-rw-3rootroot24KOct723:53app_log.07drwxrw-rw-3rootroot24KOct823:51app_log.08drwxrw-rw-3rootroot24KOct923:52app_log。3rootroot24KOct1023:52app_log.10drwxrw-rw-3rootroot24KOct1123:52app_log.11drwxrw-rw-3rootroot24KOct1223:52app_log.12drwxrw-rw-3rootroot24KOct1323:52app_log.13drwxrw-rw-3rootroot24KOct1423:52app_log.14drwxrw-rw-3rootroot24KOct1523:52app_log.15此脚本将删除超过10天的文件夹并发送文件夹列表通过邮件。您可以根据需要修改-mtimeX的值。另外,请用您的电子邮件地址代替我们的。#/opt/script/delete-old-folders.sh#!/bin/bashprev_count=0fpath=/var/log/app/app_log.*find$fpath-typed-mtime+10-execls-ltrh{}\;>/tmp/folder.outfind$fpath-typed-mtime+10-execrm-rf{}\;count=$(cat/tmp/folder.out|wc-l)if["$prev_count"-lt"$计数"];thenMESSAGE="/tmp/file1.out"TO="[emailprotected]"echo"应用程序日志文件夹已删除超过15天">>$MESSAGEecho"+------------------------------------------------+">>$MESSAGEecho"">>$MESSAGEcat/tmp/folder.out|awk'{print$6,$7,$9}'>>$MESSAGEecho"">>$MESSAGESUBJECT="警告:Apache日志文件被删除超过15天$(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-e07***/bin/bash/opt/script/delete-old-folders.sh您将看到类似于以下内容的输出。超过20天的应用程序日志文件夹被删除+------------------------------------------------------+10月11日/var/log/app/app_log.11Oct12/var/log/app/app_log.12Oct13/var/log/app/app_log.13Oct14/var/log/app/app_log.14Oct15/var/log/app/app_log.152)在Linux中删除早于“X”天的文件的Bash脚本我们有一个名为/var/log/apache/的文件文件夹,其中包含15天的日志,我们将删除超过10天的文件。以下文章与此主题相关,因此您可能有兴趣阅读它们。如何在Linux中查找和删除早于“X”天和“X”小时的文件?如何在Linux中查找最近修改的文件/文件夹如何在Linux中自动删除或清理/tmp文件夹内容?#ls-lh/var/log/apache/-rw-rw-rw-3rootroot24KOct123:522daygeek_access.01-rw-rw-rw-3rootroot24KOct223:522daygeek_access.02-rw-rw-rw-3rootroot24KOct323:522daygeek_access.03-rw-rw-rw-3rootroot24KOct423:522daygeek_access.04-rw-rw-rw-3root根24KOct523:522daygeek_access.05-rw-rw-rw-3rootroot24KOct623:542daygeek_access.06-rw-rw-rw-3rootroot24KOct723:532daygeek_access.07-rw-rw-rw-3rootroot24KOct823:512daygeek_access。08-rw-rw-rw-3rootroot24KOct923:522daygeek_access。10-rw-rw-rw-3rootroot24KOct1123:522daygeek_access.11-rw-rw-rw-3rootroot24KOct1223:522daygeek_access.12-rw-rw-rw-3root根24K10月13日23:522daygeek_access.13-rw-rw-rw-3rootroot24K10月14日23:522daygeek_access.14-rw-rw-rw-3rootroot24KOct1523:522daygeek_access.15该脚本将删除超过10天的文件并通过电子邮件发送文件夹列表您可以根据需要修改-mtimeX的值。另外,请用您的电子邮件地址代替我们的。#/opt/script/delete-old-files.sh#!/bin/bashprev_count=0fpath=/var/log/apache/2daygeek_access.*find$fpath-typef-mtime+15-execls-ltrd{}\;>/tmp/file.outfind$fpath-typef-mtime+15-execrm-rf{}\;count=$(cat/tmp/file.out|wc-l)if["$prev_count"-lt"$计数"];thenMESSAGE="/tmp/file1.out"TO="[emailprotected]"echo"ApacheAccesslogfilesaredeletedolderthan20days">>$MESSAGEecho"+-------------------------------------------+">>$MESSAGEecho"">>$MESSAGEcat/tmp/file.出来|awk'{print$6,$7,$9}'>>$MESSAGEecho"">>$MESSAGESUBJECT="警告:Apache日志文件夹被删除超过15天$(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-e07***/bin/bash/opt/script/delete-old-folders.sh您将看到类似于以下内容的输出。ApacheAccess日志文件被删除超过20天+------------------------------------------------------+10月11日/var/log/apache/2daygeek_access.11Oct12/var/log/apache/2daygeek_access.12Oct13/var/log/apache/2daygeek_access。13Oct14/var/log/apache/2daygeek_access.14Oct15/var/log/apache/2daygeek_access.15