工作中我们经常会有一个需求,需要定时清理不具有时效性的文件,比如已经超过30天的数据库备份文件,两周前的日志文件等等,以避免占用更多的磁盘空间,因此我们希望有一个脚本能定时自动帮我们去清理。
利用shell脚本就可以帮我们实现这个功能,请往下看:
1.删除文件命令:
find 对应目录 -mtime +天数 -name “文件名” -exec rm -rf {} ;
实例命令:
find /home/weblogic/rc-server-tomcat-8081/logs -mtime +30 -name "*.txt" -exec rm -rf {} ;
说明:
将/home/weblogic/rc-server-tomcat-8081/logs目录下所有30天前带”.txt”的文件删除。具体参数说明如下:
-
find:linux的查找命令,用户查找指定条件的文件;
-
/home/weblogic/rc-server-tomcat-8081/logs:想要进行清理的任意目录;
-
-mtime:标准语句写法;
-
+30:查找30天前的文件,这里用数字代表天数;
-
“.log”:希望查找的数据类型,”.jpg”表示查找扩展名为jpg的所有文件,”*”表示查找所有文件,这个可以灵活运用,举一反三;
(签购单接口性能测试时会产生大量签购单图片,并保持在对应的目录下,导致磁盘经常被占满,自动清除前一天签购单图片,脚本中,清除的格式改为.jpg就行)
-
-exec:固定写法;
-
rm -rf:强制删除文件,包括目录;
-
{} ; :固定写法,一对大括号 + 空格 + + ;
2.计划任务:
若嫌每次手动执行语句太麻烦,可以将这小语句写到一个可执行shell脚本文件中,再设置cron调度执行,那就可以让系统自动去清理相关文件。
2.1创建shell:
touch /home/weblogic/luojie/script/auto-del-30-days-txt.sh
chmod 777 auto-del-30-days-txt.sh
新建一个可执行文件auto-del-30-days-txt.sh,并分配可运行权限。
2.2编辑shell脚本:
vi auto-del-30-days-txt.sh
编辑auto-del-30-days-txt.sh文件如下:
#!/bin/sh
find /home/weblogic/rc-server-tomcat-8081/logs -mtime +30 -name "*.txt" -exec rm -rf {} ;
ok,保存退出(:wq!)。
2.3计划任务:
crontab -e
将auto-del-30-days-txt.sh执行脚本加入到系统计划任务,到点自动执行 输入:
10 0 * * * /home/weblogic/luojie/script/auto-del-30-days-txt.sh >/dev/null 2>&1
这里的设置是每天凌晨0点10分执行auto-del-30-days-txt.sh文件进行数据清理任务了。
补充
crontab定时说明:
cron是一个linux下的定时执行工具,可以在无需人工干预的情况下运行作业。
* * * * *
- - - - -
| | | | |
| | | | +----- 星期中星期几 (0 - 6) (星期天 为0)
| | | +---------- 月份 (1 - 12)
| | +--------------- 一个月中的第几天 (1 - 31)
| +-------------------- 小时 (0 - 23)
+------------------------- 分钟 (0 - 59)
常用命令:
cron服务操作命令
service crond start #启动服务
service crond stop #关闭服务
service crond restart #重启服务
service crond reload #重新载入配置
service crond status #查看服务状态
crontab -l #查看crontab
crontab -e #编辑crontab
crontab -r #删除crontab
crontab命令实例:
0 0 L * * #每月的最后1天执行
* * * * * #每1分钟执行一次
*/10 * * * * #每隔10分钟执行一次
0 */1 * * * #每隔1小时执行一次
30 21 * * * #每晚的21:30执行
3,15 * * * * #每小时的第3和第15分钟执行
3,15 8-11 * * * #在上午8点到11点的第3和第15分钟执行
往期推荐:
原文始发于微信公众号(运维贼船):解放双手,shell定时清理过期文件
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/177102.html