shell脚本定时删除指定几天前的文件
2021/9/6 7:09:49
本文主要是介绍shell脚本定时删除指定几天前的文件,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
find命令的参数:
-name filename #查找名为filename的文件 -perm #按执行权限来查找 -user username #按文件属主来查找 -group groupname #按组来查找 -mtime -n +n #按文件更改时间来查找文件,-n指n天以内,+n指n天以前 -atime -n +n #按文件访问时间来查GIN: 0px"> -ctime -n +n #按文件创建时间来查找文件,-n指n天以内,+n指n天以前 -nogroup #查无有效属组的文件,即文件的属组在/etc/groups中不存在 -nouser #查无有效属主的文件,即文件的属主在/etc/passwd中不存 -ctime -n +n #按文件创建时间来查找文件,-n指n天以内,+n指n天以前 -type b/d/c/p/l/f #查是块设备、目录、字符设备、管道、符号链接、普通文件 -size n[c] #查长度为n块[或n字节]的文件 -depth #使查找在进入子目录前先行查找完本目录 -fstype #查位于某一类型文件系统中的文件,这些文件系统类型通常可 在/etc/fstab中找到 -mount #查文件时不跨越文件系统mount点 -follow #如果遇到符号链接文件,就跟踪链接所指的文件 -cpio #对匹配的文件使用cpio命令,将他们备份到磁带设备中 -prune #忽略某个目录
# 示例:
# 查找当前路径下30分钟内被修改过的文件:
find ./ -mmin -30 -name "*"
# 查找当前路径下30分钟前被修改过的文件:
find ./ -mmin +30 -name "*"
# 查找当前路径下最近1天被修改过的块普通文件:
find ./ -mtime 0 -type f
# 查找最近24小时修改的当前目录下的文件
# find . -name '*' -mtime 0
shell语句:
find filepath -option [-print ] [ -exec -ok command ] {} \;
filepath: find命令所查找的目录路径;
-print: find命令将匹配的文件输出到标准输出; -exec: find命令对匹配的文件执行该参数所给出的shell命令;相应命令的形式为’command’ { } ; -ok: 与-exec的作用相同,只不过以一种更为安全的模式来执行该参数所给出的shell命令,在执行每一个命令之前,都会给出提示,让用户来确定是否执行。 -exec command {} ;一旦查到的文件执行command操作,{} 和 ;之间有空格;
注:{ }和\;之间的空格。
删除N天前的文件即:
find ./ -name "*" -mtime +3 -exec -ok rm -rf {} \;
crontab命令语法及其各个参数含义
crontab命令的语法为:
crontab [-e [UserName]|-l [UserName]|-r [UserName]|-v [UserName]|File ]
各个参数说明:
-e [UserName]: 执行文字编辑器来设定时程表,内定的文字编辑器是 vi -r [UserName]: 删除目前的时程表 -l [UserName]: 列出目前的时程表 -v [UserName]:列出用户cron作业的状态
00 8,12,16 * * * /scripts/monitor/df.sh 30 2 * * * /scripts/hotbackup/hot_database_backup.sh 10 8,12,16 * * * /scripts/monitor/check_ind_unusable.sh 10 8,12,16 * * * /scripts/monitor/check_maxfilesize.sh 10 8,12,16 * * * /scripts/monitor/check_objectsize.sh
43 21 * * * 每天的21:43 执行 15 05 * * * 每天的05:15 执行 0 17 * * * 每天的17:00 执行 0 17 * * 1 每周一的 17:00 执行 0,10 17 * * 0,2,3 每周日,周二,周三的 17:00和 17:10 执行 0-10 17 1 * * 毎月1日从 17:00到7:10 毎隔1分钟 执行 0 0 1,15 * 1 毎月1日和 15日和 一日的 0:00 执行 42 4 1 * * 毎月1日的 4:42分 执行 0 21 * * 1-6 周一到周六 21:00 执行 0,10,20,30,40,50 * * * * 每隔10分 执行 */10 * * * * 每隔10分 执行 * 1 * * * 从1:0到1:59 每隔1分钟 执行 0 1 * * * 1:00 执行 0 */1 * * * 毎时0分 每隔1小时 执行 0 * * * * 毎时0分 每隔1小时 执行 2 8-20/3 * * * 8:02,11:02,14:02,17:02,20:02 执行 30 5 1,15 * * 1日 和 15日的 5:30 执行
创建定时任务脚本
# !/bin/bash find filepath -name "*" -exec rm -rf {} \;
添加定时任务
crontab -e
然后在弹出的vi对话框中输入:
1 * * * * /crontab.sh
保存并退出
出现以下错误,原因是crontab的规则书写格式错误,细心检查修改。
crontab规则书写错误
出现crontab: installing new crontab,即为创建定时任务成功。
可以通过crontab -l进行任务查看定时任务文件。
这篇关于shell脚本定时删除指定几天前的文件的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-23Springboot应用的多环境打包入门
- 2024-11-23Springboot应用的生产发布入门教程
- 2024-11-23Python编程入门指南
- 2024-11-23Java创业入门:从零开始的编程之旅
- 2024-11-23Java创业入门:新手必读的Java编程与创业指南
- 2024-11-23Java对接阿里云智能语音服务入门详解
- 2024-11-23Java对接阿里云智能语音服务入门教程
- 2024-11-23JAVA对接阿里云智能语音服务入门教程
- 2024-11-23Java副业入门:初学者的简单教程
- 2024-11-23JAVA副业入门:初学者的实战指南