Linux 定时删除7天前的文件

一、编写脚本

#!/bin/bash
find /home/kafka/logs -mtime +10 -name "*.*" -exec rm -rf {} \;

保存到home目录下的logs_delete.sh

二、解释

# 命令格式
find 对应目录 -mtime +天数 -name "文件名" -exec rm -rf {} \;
# 示例命令,将/home/kafka/logs目录下所有10天前带"."的文件删除
find /home/kafka/logs -mtime +10 -name "*.*" -exec rm -rf {} \;
  • find:Linux的查找命令,用户查找指定条件的文件
  • /home/kafka/logs:想要进行清理的任意目录
  • -mtime:标准语句写法
  • +10:查找10天前的文件,这里用数字代表天数,+30表示查找30天前的文件
  • *.*”:希望查找的数据类型,“.jpg"表示查找扩展名为jpg的所有文件,”"表示查找所有文件,这个可以灵活运用,举一反三
  • -exec:固定写法
  • rm -rf:强制删除文件,包括目录
  • {} \;:固定写法,一对大括号+空格++;

三、设置定时任务

加入crontab

crontab -e
10 22 * * * /bin/sh /home/logs_delete.sh

这个表示为,每天22点10分执行这个脚本。

你可能感兴趣的:(#,自动化部署&脚本,linux,运维,服务器,shell,bash,学习)