清理n天之外的文件(从手动到自动)---清理磁盘

继上次磁盘空间满了造成jenkins构建不稳定,因此需要清理磁盘空间删除n天之外的文件
首先,先查看磁盘空间:
df 命令用于显示目前在 Linux 系统上的文件系统磁盘使用情况统计
"df -h”以更易读的方式显示目前磁盘空间和使用情况。
"df -i” 以inode模式来显示磁盘使用情况。
"df -l”  local 限制列出的文件结构。
对比df -h和df -i:
在df -h 和df -i  显示使用率100%,基本解决方法都是删除文件。
df -h   是去删除比较大无用的文件-----------大文件占用大量的磁盘容量。
df -i    则去删除数量过多的小文件-----------过多的文件占用了大量的inode号。

手动删除n天之外的文件

命令:
find /home/admin/logs/csp -mtime +7 -name "*.log*" -exec rm {} \;
命令详解:
find:linux的查找命令,用户查找指定条件的文件;
/home/weblogic/rc-server-tomcat-8081/logs:想要进行清理的文件目录;
-mtime:标准语句写法;
+7:查找7天前的文件,这里用数字代表天数;
"*.log":希望查找的数据类型
        "*.jpg"表示查找扩展名为jpg的所有文件,
         "*"表示查找所有文件,这个可以灵活运用,举一反三;
-exec:固定写法;
rm: 用于删除一个文件或者目录
         * -i 删除前逐一询问确认。
        * -f 即使原档案属性设为唯读,亦直接删除,无需逐一确认。
        * -r 将目录及以下之档案亦逐一删除。
rm -rf:强制删除文件,包括目录及子目录或文件;
{} \; :固定写法,一对大括号+空格+\+;

自动清理n天之外文件

每次手动执行语句太麻烦,我们可以考虑编写shell脚本自动清理:
1.创建shell脚本(地址自定义,文件名自定义。本文讲解以地址: /home/admin/
文件名:auto-del-7-days-txt.sh为例
touch /home/admin/auto-del-7-days-txt.sh
2.编辑shell脚本
vi  auto-del-7-days-txt.sh
也可以把1和2合并成一个命令:
新建加编辑该脚本:
sudo vi  /home/admin/auto-del-7-days-txt.sh
将我们之前手动删除文件的命令粘到该shell脚本里
#!/bin/sh
find /home/admin/logs/csp -mtime +7 -name "*.log*" -exec rm {} \;
退出编辑模式(Esc)保存并退出(:wq)
3.给该shell脚本分配可运行权限
sudo chmod  755 auto-del-7-days-txt.sh
查看权限是否分配成功:
cd /home/admin
ls
该文件变绿即为分配权限成功
4.计划任务
crontab  -e 编辑crontab服务文件
将auto-del-7-days-txt.sh执行脚本加入到系统计划任务,到点自动执行
命令: 10 0 * * * /home/admin/auto-del-7-days-txt.sh >/dev/null 2>&1
解析:
10 0 * * *: 每天凌晨0点10分定期执行auto-del-7-days-txt.sh文件进行数据清理任务。
> /dev/null 2>&1: 当程序在你所指定的时间执行后,系统会发一封邮件给当前的用户,显示该程序执行的内容,若是你不希望收到这样的邮件,请在每一行空一格之后加上 > /dev/null 2>&1 即可
编辑完crontab文件后,提示 crontab: installing new crontab
官方文档解释: 新创建的 cron 任务,不会马上执行,至少要过 2 分钟后才可以,当然你可以重启 cron 来马上执行。
看该用户下的crontab服务是否创建成功, 用 crontab  -l 命令
服务创建成功:
5.启动 crontab任务
一般启动服务用  /sbin/service crond start;
若是根用户的cron服务可以用 sudo service crond start
查看crontab任务的执行情况:
方法一、查看 crontab任务的执行状态: service crond status
我在执行这个命令的时候出现了连接超时的情况:
上面已经加载启用了,到后面不知道问什么又 无法创建会话:连接超时
方法二、可以使用查看其执行日志的方式:
查看已经执行过的任务, 看 /var/log/cron这个文件就可以,可以用tail -f /var/log/cron查看
两种方式查看,一个提示成功,一个提示失败,我裂开了呀,看明天的执行结果吧,会持续更新。。。。。。

猜你喜欢

转载自blog.csdn.net/hejingfang123/article/details/121445063
今日推荐