问题起因:
在服务器上跑脚本的时候执行失败,报错/dev/sda3节点磁盘使用量100%了
解决方法:
- 1.首先使用 df -h 命令查看服务器上所有节点磁盘资源使用情况(要注意主要的非一级目录可能单独挂载节点分配资源)
- 2.du -s -h + 路径 在步骤1的基础上,查看指定路径下各个目录内存占用情况,找到我们需要定时清理的数据
- 3.rm -rf +fileName #删除指定文件,释放磁盘空间
思考:
上述解决方法的操作其实已经释放了磁盘空间,解决了节点磁盘空间使用量100%的问题,但是对于我们实际工作中可能出现的定时任务产生的文件,超过指定保留时效没必要再保存,每次单独删除又很麻烦,故可以通过建立定时任务的方式,定期清理垃圾文件,保障磁盘空间一直处于健康状态。
以我执行自动化jmeter脚本为例,每次运行都会产生jtl文件及HTML报告占据大量磁盘空间,但实际脚本运行没问题的情况,结果文件时效性并不久,这种情况定时清理数据将节省大量人力
定时任务建立步骤:
1.首先根据实际情况编写好shell脚本,如
#!/bin/bash
#查找并删除/test/filePath路径下的文件夹以report开头的且距今14天以前的数据
find /test/filePath -type d -mtime +14 -name report* | xargs rm -rf
#查找并删除/test/filePath路径下以.jtl结尾的文件且距今14天以前的数据
find /test/filePath -type f -mtime +14 -name *.jtl | xargs rm -rf
根据实际业务场景确认需定期删除的数据的范围
2.将shell脚本存放在服务器指定目录下,并通过ls -l shell脚本确认脚本有执行权限,如没有可通过chomd命令赋权
3.准备好脚本后,使用crontab -e: 编辑当前用户的定时任务列表
35 20 * * * sh shell脚本路径 #定时任务构建
保存后系统会自动存放于/var/spool/cron/目录中,文件以用户名命名。
至此,本次问题解决记录完毕