定时删除linux日志(Linux使用shell脚本定时删除历史日志文件)
类别:服务器 浏览量:2654
时间:2022-03-31 19:52:59 定时删除linux日志
Linux使用shell脚本定时删除历史日志文件1、tools目录文件结构
[root@www tools]# tree tools/ tools/ ├── bin │ ├── del_history_files │ └── etc ├── del_history_files.cfg 2 directories, 2 files
2、删除历史文件脚本 del_history_files
[root@www tools]# more tools/bin/del_history_files #!/bin/sh # 删除指定目录下,文件时间早于指定时间节点的文件,时间粒度:小时 # 配置文件格式 : 需清理的目录=小时数 # # # define restricted path PATH="/bin:/usr/bin:/sbin:/usr/sbin" # adirname - return absolute dirname of given file adirname() { odir=`pwd`; cd `dirname $1`; pwd; cd "${odir}"; } # --------- # constants # --------- MYNAM=`basename "$0"` MYDIR=`adirname "$0"` MYCFG="${MYDIR}/../etc/${MYNAM}.cfg" MYTMP="${MYDIR}/../tmp" MYLCK="${MYTMP}/${MYNAM}.lock" # perform some locking (as good as it gets in a shell) [ -s "${MYLCK}" ] && kill -0 `cat "${MYLCK}"` 2>/dev/null && die "${MYNAM}: already running!" echo "$$" > "${MYLCK}" PATHS=(`cat ${MYCFG}`) for PP in ${PATHS[@]} do APP_PATH=`echo ${PP} | awk -F'=' '{print $1}'` N=`echo ${PP} | awk -F'=' '{print $2}'` if [ -d ${APP_PATH} ] ; then T=`/bin/date --date "${N} hours ago" "+%Y%m%d%H%M"` TMP_FILE="/tmp/`echo ${PP} | md5sum | awk '{print $1}'`" touch -t ${T} ${TMP_FILE} find ${APP_PATH} ! -newer ${TMP_FILE} -type f -print0 | xargs -0 -n 100 rm -rf find ${APP_PATH} -type d -empty -print0 | xargs -0 -n 100 rm -rf &> /dev/null fi done rm -rf ${MYLCK}
3、删除历史文件脚本的配置文件 del_history_files.cfg
[root@www tools]# more tools/etc/del_history_files.cfg #需清理的目录=小时数 /home/logs/nginx=720 /home/logs/varnish=720
4、crontab 执行即可
[root@www tools]# more /etc/crontab SHELL=/bin/bash PATH=/sbin:/bin:/usr/sbin:/usr/bin MAILTO=root HOME=/ #clear old logs 00 6 * * * root /home/tools/bin/del_history_files
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持开心学习网。
您可能感兴趣
- tomcat在linux系统安装步骤(Tomcat的卸载和重装的实现图文)
- 怎么查询linux的selinux状态(如何理解Linux下的SELinux)
- linux系统编程语法(简析Linux网络编程函数)
- linux怎么设置php代码(linux Cron定时执行带参数的PHP代码)
- linux设置监控命令(linux系统虚拟主机开启支持SourceGuardiansg11加密组件的详细步骤)
- linux如何执行绝对路径的脚本(Linux目录切换实现代码案例)
- 宝塔面板怎么修改默认端口(如何修改宝塔Linux面板默认的端口号8888?)
- linux查看tcp状态(详解从Linux源码看SocketTCP的bind)
- linux怎么看后台进程(一行代码教你如何隐藏Linux进程)
- 腾讯云linux服务器登录(腾讯云服务器Linux系统怎么挂载磁盘?)
- Linux 下如何检查内存使用率(Linux 下如何检查内存使用率)
- linux启动jenkins(linux 下jenkins项目搭建过程centos7为例 )
- vmware虚拟linux无法配置ip(在VMware虚拟机中查看Linux的IP地址的方法)
- kalilinux安装到u盘教程学习(kali安装docker和portainer的配置方法)
- linux内核打印pc的值(linux内核copy_{to, from}_user的思考)
- linux看系统内存大小(Linux体检,了解你的Linux状态网络IO,磁盘,CPU,内存)
- 白龙马的改编学生版,快来看看(白龙马的改编学生版)
- 萌娃唱《白龙马》走红,那生动的小表情,网友直呼 简直是戏精(萌娃唱白龙马走红)
- 朱鹤松被不断认可,凤凰传奇玲花喊话岳云鹏,索要老朱演出门票(朱鹤松被不断认可)
- 元宵晚会槽点多,芒果台上来就假唱,岳云鹏不说相声改评书了(元宵晚会槽点多)
- 岳云鹏跟凤凰传奇谈心,说出了人生中最重要的三个人,这才成功(岳云鹏跟凤凰传奇谈心)
- 爱情可以当饭吃吗(爱情能当饭吃吗)
热门推荐
- MySQL DATE_FORMAT()用法
- win7iis服务器的安装与配置(Win7怎么装IIS 安装IIS具体方法安装教程)
- python浮点型和整数型(实例讲解Python中浮点型的基本内容)
- C#匿名类
- iis虚拟目录访问权限(win2008 iis7如何取消目录的可执行权限)
- sql计算时间间隔(sql中时间以5分钟半个小时任意间隔分组的实现方法)
- sql中的条件判断查询(SQL 多条件查询几种实现方法详细介绍)
- Python实现FTP弱口令扫描器的方法示例(Python实现FTP弱口令扫描器的方法示例)
- laravel命令控制器怎么设置(Laravel获取当前请求的控制器和方法以及中间件的例子)
- mysql查询数据去除重复(MySQL 大批量插入,如何过滤掉重复数据?)
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9