一:创建脚本
find 目录路径 -mtime +天数 -name "文件名" -exec rm -rf {} \;
例如:
#!/bin/bash
find /usr/local/tomcat/logs/ -mtime +7 -name "*.log" -exec rm -rf {} \;
说明:
find:linux查找命令,用户查找指定条件的文件
/usr/local/tomcat/logs/:需要进行清理的目标目录
-mtime:标准语句写法
+10:数字代表天数
-name "*.log":目标文件的类型,带有log的所有文件
-exec:固定写法
rm -rf:强制删除包括目录在内的文件
{} \;:固定写法,一对大括号+空格+\+;
find /root -mtime +7 -type f -iname "*.log*" | xargs rm -rf
-atime : 按文件访问时间来查找文件,-n指n天以内,+n指n天以前
-ctime : 按文件创建时间来查找文件,-n指n天以内,+n指n天以前
-mtime : 按文件更改时间来查找文件,-n指n天以内,+n指n天以前
-amin : 同 -atime (单位:分钟)
-cmin : 同 -ctime (单位:分钟)
-mmin : 同 -mtime (单位:分钟)
-type b/d/c/p/l/f : 查是块设备、目录、字符设备、管道、符号链接、普通文件
-iname : 名字匹配忽略大小写
-name : 名字匹配区分大小写
二:定时任务
chmod +x del-log.sh 或 chmod 777 del-log.sh
#如果服务器没有安装crontab,先安装crontab
yum install -y vixie-cron
crontab -e
#每分钟执行一次(测试用)
*/1 * * * * /usr/local/xiao_sh/auto-del-log.sh >/dev/null 2>&1
#每天凌晨1点执行一次(生产环境)
0 1 * * * /usr/local/xiao_sh/auto-del-log.sh
命令补充
crontab -u //设定某个用户的cron服务
crontab -l //列出某个用户cron服务的详细内容
crontab -r //删除某个用户的cron服务
crontab -e //编辑某个用户的cron服务
crontab -i //打印提示,输入yes等确认信息
tail -f /var/log/cron //查看定时任务日志
cron服务是Linux的内置服务,但它不会开机自动启动,可以每分钟执行任务。可以用以下命令启动和停止服务:
/bin/systemctl start crond
/bin/systemctl stop crond
/bin/systemctl restart crond
/bin/systemctl reload crond
/bin/systemctl status crond 也可 service crond status
把cron设为在开机的时候自动启动
vi /etc/rc.local
/bin/systemctl start crond.service