shell脚本定时清除指定目录下一个月之前创建的文件

定时清除指定目录自动生成的文件

解决办法

在一个常用的目录 cd /data/web/php-sh/内创建shell脚本文件.sh

touch delete_log.sh
vim delete_log.sh
//内容如下
#!/bin/bash
//定义一下要删除的目录
del_url="/data/web/api-log/logs"
//输出要删除的目录
echo $del_url
//执行删除命令
find $del_url -mtime +30 -type f | xargs rm -f

注释:
1、find 是查找命令,$del_url是变量值为/data/web/api-log/logs
2、-mtime +30 是30天之前的文件
以当前时间点开始算起,+表示往左,从该时间点开始再继续往更早推,可以称作xx以外;-表示往右,从该时间点算起往后的时间推,可以称作xx以内;没有加减号表示据此此前第N天
-type f 是查找的为文件类型
xargs 将其接受的字符串(find $del_url -mtime +30 -type f )查询出来的值做为rm -f 的一个命令参数来运行rm命令

定时任务

crontab -e
内容如下:

30 1 1 * * /bin/bash /data/web/php-sh/delete_log.sh

注释:

1、设定为每个月1号晚上1点30分执行脚本.当然你也可以根据你自己的需求去整.

删除目录内,指定文件后缀的命令

find /root/sqlbak -mtime +30 -type f -name *.gz -exec rm -f {} ;

注意:最后一个\和{}之间是有空格的,否则报错:

find: 遗漏“-exec”的参数

出现这个问题很有可能是:
1、{} 和 \ 之间没有空格
2、\ 和 ; 之间有空格!

正确的写法:
{} ;

  • 3
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
您可以使用一个简单的脚本定时清除Tomcat日志文件。以下是一个示例脚本,使用Shell脚本编写: ```bash #!/bin/bash # 设置Tomcat日志目录 TOMCAT_LOG_DIR="/path/to/tomcat/logs" # 设置要删除的日志文件类型 LOG_FILE_TYPES=("catalina.out" "localhost_access_log.txt" "host-manager.log" "manager.log") # 设置保留的最近日志文件数量 KEEP_RECENT_FILES=5 # 删除旧的日志文件 for log_type in "${LOG_FILE_TYPES[@]}"; do # 找到该类型的所有日志文件 log_files=($(find "$TOMCAT_LOG_DIR" -name "$log_type")) # 确保保留最近的日志文件数量 if [[ ${#log_files[@]} -gt $KEEP_RECENT_FILES ]]; then # 按修改时间排序 sorted_files=($(ls -t "${log_files[@]}")) # 删除除最新的文件外的所有文件 for ((i = $KEEP_RECENT_FILES; i < ${#sorted_files[@]}; i++)); do rm "${sorted_files[$i]}" echo "删除文件: ${sorted_files[$i]}" done fi done echo "清除Tomcat日志完成" ``` 请根据您的实际情况修改脚本中的变量。将`/path/to/tomcat/logs`替换为您Tomcat日志目录的实际路径,并根据需要修改`LOG_FILE_TYPES`和`KEEP_RECENT_FILES`变量。 保存脚本文件,并使用`chmod +x script.sh`命令赋予执行权限。然后,您可以将该脚本添加到cron作业中,以定期运行。例如,要在每天凌晨3点清除Tomcat日志,可以使用以下命令编辑cron作业: ``` crontab -e ``` 然后添加以下行: ``` 0 3 * * * /path/to/script.sh ``` 保存并退出编辑器。现在,脚本将在每天凌晨3点运行,并清除旧的Tomcat日志文件
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值