定期删除控制台的录屏文件,以解决服务器磁盘占用率满的问题
问题描述:在项目中常常遇到流程在启动录屏的情况下,服务器上的磁盘占用很快满了的情况,此时就需要我们定期对服务器的录屏文件和日志文件进行清理
1. 编写 shell 脚本清理磁盘
1)创建 shell 脚本
在某文件夹下创建 shell 脚本
命令:touch /isearch/isa/clear.sh
ps: 创建路径可自己定义
进入编辑页面:
#!/bin/bash
delete_session_luping_dir=/isearch/isa/data/session #录屏文件路径
delete_rpadoc_luping_dir=/isearch/isa/rpadoc/thumbnail/ # 录屏文件回放时进度条产生的缩略图,删除方案可与录屏文件的删除保持一致
delete_tomcat_logs_dir=/isearch/tomcat/logs # 产品日志路径
delete_logs_dir=/isearch/isa/logs # 服务器日志路径
echo $(date)"-->要删除地址为:"${delete_session_luping_dir}"下的录屏文件"
find ${delete_session_luping_dir} -mmin +10 -type f -exec rm -rf {} \;
if [ $? -eq 0 ];then
echo $(date)"-->录屏文件删除成功"
else
echo $(date)"-->录屏文件删除失败"
fi
echo $(date)"-->要删除地址为:"${delete_rpadoc_luping_dir}"下的录屏文件"
find ${delete_session_luping_dir} -mmin +10 -type f -exec rm -rf {} \;
if [ $? -eq 0 ];then
echo $(date)"-->录屏文件产生的缩略图删除成功"
else
echo $(date)"-->录屏文件产生的缩略图删除失败"
fi
echo $(date)"-->要删除地址为:"${delete_tomcat_logs_dir}"下的日志文件"
find ${delete_tomcat_logs_dir} -mmin +10 -type f -name "*log*" -exec rm -rf {} \;
if [ $? -eq 0 ];then
echo $(date)"-->平台日志文件删除成功"
else
echo $(date)"-->平台日志文件删除失败"
fi
echo $(date)"-->要删除地址为:"${delete_logs_dir}"下的日志文件"
find ${delete_logs_dir} -mmin +10 -type f -exec rm -rf {} \;
if [ $? -eq 0 ];then
echo $(date)"-->服务器日志文件删除成功"
else
echo $(date)"-->服务器日志文件删除失败"
fi
ps: 此案例删除的是 10 分钟前产生的录屏文件和产品日志,若需要处理以天为单位的则将 ‘-mmin + 分钟’ 替换为 ‘-mtime + 天数’
2. 为脚本添加执行权限
命令:chomd +x /isearch/isa/clear.sh
ps:需要确定clear.sh的路径
2. 在服务器上设置定时任务
命令:crontab -e
设置定时:
*/10 * * * * /isearch/isa/clear.sh 1>>/isearch/isa/out.txt 2>&1 # 每隔10分钟运行一次清理脚本,并将清理日志标准输出到out.txt文件中,out.txt的路径可自己定义
linux添加shell脚本并设置定时任务可参考 https://www.cnblogs.com/wu-wu/p/11214503.html
有用。
麻竹
~/tomcat/logs/ 目录下的日志文件是随着日期不断追加进文件中的 所以删除时可以将时间去掉
未来用得上 收藏了
6666666