linux删除30天前⽂件命令
1.删除⽂件命令:
find 对应⽬录 -mtime +天数 -name "⽂件名" -exec rm -rf {} \;
实例命令:
find /opt/soft/log/ -mtime +30 -name "*.log" -exec rm -rf {} \;
说明:
将/opt/soft/log/⽬录下所有30天前带".log"的⽂件删除。具体参数说明如下:
find:linux的查命令,⽤户查指定条件的⽂件;
/opt/soft/log/:想要进⾏清理的任意⽬录;
-mtime:标准语句写法;
+30:查30天前的⽂件,这⾥⽤数字代表天数;
"*.log":希望查的数据类型,"*.jpg"表⽰查扩展名为jpg的所有⽂件,"*"表⽰查所有⽂件,这个可以灵活运⽤,举⼀反三;
-exec:固定写法;
rm -rf:强制删除⽂件,包括⽬录;
{} \; :固定写法,⼀对⼤括号+空格+\+;
2.计划任务
若嫌每次⼿动执⾏语句太⿇烦,可以将这⼩语句写到⼀个可执⾏shell脚本⽂件中,再设置cron调度执⾏,那就可以让系统⾃动去清理相关⽂件。
2.1创建shell:
touch /opt/soft/bin/auto-del-30-days-ago-log.sh
chmod +x auto-del-30-days-ago-log.sh
新建⼀个可执⾏⽂件auto-del-30-days-ago-log.sh,并分配可运⾏权限
2.2编辑shell脚本:
vi auto-del-30-days-ago-log.sh
记住我
编辑auto-del-30-days-ago-log.sh⽂件如下:
#!/bin/sh
find /opt/soft/log/ -mtime +30 -name "*.log" -exec rm -rf {} \;
ok,保存退出(:wq)。
2.3计划任务:
#crontab -e
将auto-del-30-days-ago-log.sh执⾏脚本加⼊到系统计划任务,到点⾃动执⾏
输⼊:
10 0 * * * /opt/soft/log/auto-del-7-days-ago-log.sh >/dev/null 2>&1
这⾥的设置是每天凌晨0点10分执⾏auto-del-7-days-ago-log.sh⽂件进⾏数据清理任务了。