解放双手,shell定时清理过期文件


工作中我们经常会有一个需求,需要定时清理不具有时效性的文件,比如已经超过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分钟执行

往期推荐:

  1. 搭建一个Windows也能用的nfs服务

  2. CentOS 7系统优化脚本

  3. 搭建个监控它不香吗?Prometheus+Grafana

原文始发于微信公众号(运维贼船):解放双手,shell定时清理过期文件

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/177102.html

(0)
小半的头像小半

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!