♩ 背景

随着网站体量的不断增大,很多缓存日志造成资源你的浪费,为此,想着写一个计划任务,定期删除没必要的缓存数据

♪ 操作指导

①. 新建一个可执行文件

touch /usr/local/bin/clear_log

注意,赋予权限:chmod 777 clear_log

②. 编辑 clear_log 文件,在其中添加类似下面的代码

#!/bin/sh

find /mnt/www/Application/Runtime/Logs -mtime +10 -name *.* -exec rm -rf {} \;

find /tmp -type f -mmin +120 -name *.log -exec rm -rf {} \;

解析:

find 后面紧跟的是要查找的目录,. 表示当前目录

-type f: 指定查找对象为文件

-name *.log: 指定查找对象名称以.log结尾

-mtime +10: 查找10天以前的老文件

-mmin +120: 查找120分钟(两小时)以前的老文件

-exec rm -rf {} ; :执行删除命令,这句注意,后面有个 {} ; 是必须的

③. 将 clear_log 文件加入到系统计划任务

# crontab -e

然后,输入:

# 每三十分钟执行一次

*/30 * * * * /usr/local/bin/clear_log

④. 保存代码后 ,再执行下面的命令,以保证计划任务的生效

# /etc/rc.d/init.d/crond restart

♫ 附录

①. 磁盘使用状况:

可通过 df -h 查看磁盘使用情况

通过 du -h --max-depth=1 查看对应目录下文件的资源占用情况

通过分析以上数据,判断哪个目录或者缓存、log文件占用资源大,进行后面的删除操作

②. 参考文章:

③. PHP 删除指定目录下的文件

在搜索本文解决方案时,发现,也可以使用代码进行文件的删除,比如我使用的是PHP,那么可以指定目录,进行删除其下的所有文件

/**

* 删除对应目录下的所有文件

* @param $path 传入目录

* 举例: delServerDir("/mnt/www/Application/Runtime/Logs/");

*/

function delServerDir($path){

//如果是目录则继续

if(is_dir($path)){

//扫描一个文件夹内的所有文件夹和文件并返回数组

$p = scandir($path);

foreach($p as $val){

//排除目录中的.和..

if($val !="." && $val !=".."){

//如果是目录则递归子目录,继续操作

if(is_dir($path.$val)){

//子目录中操作删除文件夹和文件

delServerDir($path.$val.'/');

//目录清空后删除空文件夹

@rmdir($path.$val.'/');

}else{

//如果是文件直接删除

unlink($path.$val);

}

}

}

}

}

在自己所定义的方法中,进行调用上述逻辑

最后,建议使用计划任务:【30 2 * * * /usr/bin/curl http://xxx.xxx.x.xxx/index/order/taskToDelRuntimeLogs】

具体的访问时间间隔自行修整即可

补充一个删除指定目录文件的方法:

/**

* PHP 删除指定的图片

* @param $filename 目标图片路径

* @return bool

*/

function deleteServerFile($filename)

{

if (file_exists($filename)) { //检查图片文件是否存在

$result = @unlink($filename);

return true;

// if ($result == true) {

// echo '删除成功';

// } else {

// echo '无法删除';

// }

} else {

return false;

//echo '找不到图片文件';

}

}

本文同步分享在 博客“moTzxx”(CSDN)。

如有侵权,请联系 support@oschina.cn 删除。

本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

php 定时删除文件夹,Linux 定时任务 删除指定时间前的文件相关推荐

  1. linux修改定时后如何保存文件夹,linux定时任务的一些相关操作汇总

    本人搜罗各大网站并测试了相关定时任务的操作方便大家进行查阅和操作. 1.cron介绍 我们经常使用的是 crontab 命令是cron table的简写,它是cron的配置文件,也可以叫它作业列表,我 ...

  2. linux 有空格的文件夹,Linux之删除带有空格的文件

    导读 这篇文章主要介绍了Linux之删除带有空格的文件(不是目录),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧. 大家平时工作 ...

  3. linux 删除乱码的文件夹,Linux服务器删除乱码文件和文件夹的方法

    使用ls -i命令找到文件或文件夹的节点编号 前面的就是节点号了,接下来使用find命令查询并且删除 -inum指根据节点号查询:-delete顾名思义就是删除操作了.这样就成功删除乱码文件了,值得注 ...

  4. linux 只删除空文件夹,Linux如何删除空文件夹-linux删除文件夹

    请关注本头条号,每天坚持更新原创干货技术文章. 如需学习视频,请在微信搜索公众号"智传网优"直接开始自助视频学习. 1. rmdir命令简介 本文主要介绍rmdir命令,该命令用于 ...

  5. linux设置为lunux文件夹,Linux设置环境变量时如何修改文件

    Linux系统下,设置环境变量的同时还需要修改文件,因为Linux环境变量分为系统级和用户级,所以修改文件的方法有所区别,下面小编就给大家详细介绍下Linux环境变量修改文件的方法. 环境变量是和Sh ...

  6. linux虚拟机如何创建文件夹,Linux虚拟机命令如何创建新的文件和文件夹

    满意答案 qwsa1221 2015.07.15 采纳率:45%    等级:12 已帮助:11177人 Linux系统中创建新文件一般用touch命令,比如创建名字为newTxt的文本文件用 tou ...

  7. 删除 linux的ln文件夹,linux下添加链接与删除链接(ln命令的用法)

    添加链接使用ln命令 用法: #ln --help 用法:ln [选项]... 目标 [链接名] 或:ln [选项]... 目标... 目录 或:ln [选项]... --target-directo ...

  8. linux拷贝文件夹怎么删除,linux文件及文件夹拷贝移动删除

    linux文件及文件夹拷贝移动删除 文件拷贝 文件夹拷贝 文件拷贝并重命名 文件夹拷贝并重命名 文件移动 文件夹移动 文件移动并重命名 文件夹移动并重命名 文件删除 文件夹删除 文件拷贝 cp tes ...

  9. linux查询所建文件夹,linux中的文件和文件夹的新建、查询、删除

    新建文件夹 使用的mkdir命令可以新建文件夹. mkdir filename 这样就创建了一个叫做filename文件夹. 新建一个文件 新建的文件可以包括任何扩展名,.txt/.cpp/.csv ...

最新文章

  1. python坐标系转换函数_Numpy-坐标系之间的转换
  2. 如何用 Python + Scrapy 爬取视频?
  3. WebRTC/Chromium在2020年的更新
  4. python训练数据集_Python-yolov3训练自己的数据集,pytorchyolov3
  5. 获取mysql 时钟,员工时钟的MySQL数据库结构
  6. 《Hadoop海量数据处理:技术详解与项目实战(第2版)》一第2章 环境准备
  7. Golang连接使用MySql5.7数据库完整步骤
  8. mysql打开慢查询_MySQL 开启慢查询日志的方法
  9. [轉]最流行的PHP MVC框架
  10. FJUT 2351 T^T的图论(并查集)
  11. sql优化常用的几种方法
  12. Visio绘制电路图
  13. 我的世界服务器物品管理,我的世界NEI物品管理器mod详细图文使用教程
  14. fh 幅频特性曲线怎么画fl_数学老师用“函数曲线”绘出美图 学生舍不得擦黑板。唉,这样的老师我没有遇到!...
  15. java实现dde服务端,快速开启dde服务端
  16. 安农大计算机专业录取分数线,安徽农业大学+录取分数线
  17. 笔记本ubuntu安装xen之殇
  18. hadoop 文本统计一个字符的个数_hadoop统计单词个数 - 卡饭网
  19. 产品经理VISIO操作
  20. angular async和await (实用)

热门文章

  1. JavaScript基础——BOM浏览器对象模型
  2. winform新手学习小结
  3. dpbs和pbs的区别_hyclone DPBS缓冲液 货号:SH30028.01
  4. ffmpeg命令报错: error while loading shared libraries: libavdevice.so.58: cannot open
  5. Android应用开发(21)屏幕背光控制
  6. linux快捷命令设置
  7. css3简记(2D3D动画)
  8. 氮杂环化合物改性磁性/多羟基化合物改性/β-二羰基接枝/三乙胺修饰聚苯乙烯微球的制备
  9. 网贷羊毛党凶猛:17家平台投资转化率仅13%
  10. 地图屏幕数字化全过程(转)