linux 日志管理脚本,Linux定时清理日志脚本

在应用疯狂打日志的情况下,服务器很容易被塞满磁盘。

先要写一个shell脚本,脚本如下。

#!/bin/bash#----------------使用规范----------------#1、该文件固定存放在linux的 /usr/local/zjport_test/delFiles 目录下#2、各责任人维护好要清理日志文件的目录,并以注释方式备注写明谁维护

#find:linux的查找命令,用户查找指定条件的文件;#/opt/soft/log/:想要进行清理的任意目录;#-mtime:标准语句写法;#+3:查找3天前的文件,这里用数字代表天数;#"*.log":希望查找的数据类型,"*.jpg"表示查找扩展名为jpg的所有文件,"*"表示查找所有文件,这个可以灵活运用,举一反三;#-exec:固定写法;#rm -rf:强制删除文件,包括目录;#{} ; :固定写法,一对大括号+空格++;

echo"del file start....."

#find /home/logs/ -mtime +3 -name "*.log" -exec rm -rf {} ;

find /usr/local/tomcat/tomcat7-8034-TaskOutside/logs -mtime +0 -name "*.log.*" -exec rm -rf {} ;

find/usr/local/tomcat/tomcat7-8034-TaskOutside/logs -mtime +0 -name "*.out.*" -exec rm -rf {} ;

find/usr/local/tomcat/springboot-MIA-exchange/logs/islife -mtime +1 -name "*.log" -exec rm -rf {} ;

find/root/logs/islife -mtime +0 -name "*.log" -exec rm -rf {} ;

find/home/yw/logs -mtime +1 -name "*.log*" -exec rm -rf {} ;> /usr/local/tomcat7/logs/catalina.out;

echo"del file end"

然后要启动linux的crontab来定时运行这个脚本。

crontab:定时任务的守护进程,精确到分,设计秒的我们一般写脚本  -->相当于闹钟

一、日志定期删除(Linux)

1、将清理日志的shell脚本放在服务上。根据规定,定一个统一的路径和统一的命名规范。

2、将文件添加到定时任务crontab

crontab -e:编辑当前用户的定时任务

crontab -l:查看当前用户的定时任务

crontab -r:删除当前用户的定时任务

3、脚本样例

#!/bin/bash

echo "del file start....."

find /usr/local/tomcat/tomcat7-8034-TaskOutside/logs -mtime +0 -name "*.log.*" -exec rm -rf {} ;

find/usr/local/tomcat/tomcat7-8034-TaskOutside/logs -mtime +0 -name "*.out.*" -exec rm -rf {} ;

find/usr/local/tomcat/springboot-MIA-exchange/logs/islife -mtime +1 -name "*.log" -exec rm -rf {} ;

find/root/logs/islife -mtime +0 -name "*.log" -exec rm -rf {} ;

find/home/yw/logs -mtime +1 -name "*.log*" -exec rm -rf {} ;

> /usr/local/tomcat/logs/catalina.out

echo"del file end"

4、crontab文件内容分析

cat /etc/crontab

HELL=/bin/bash

PATH=/sbin:/bin:/usr/sbin:/usr/bin

MAILTO=root

HOME=/

#For details see man 4 crontabs

#Example of job definition:#.---------------- minute (0 - 59)#| .------------- hour (0 - 23)#| | .---------- day of month (1 - 31)#| | | .------- month (1 - 12) OR jan,feb,mar,apr ...#| | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat#| | | | |#* * * * * user-name command to be executed

59 15 * * * /usr/local/zjport_test/delFiles/delFiles_192.168.3.134.sh >dev/null 2>&1

-----

前四行是用来配置crond任务运行的环境变量

第一行SHELL变量指定了系统要使用哪个shell,这里是bash

第二行PATH变量指定了系统执行命令的路径

第三行MAILTO变量指定了crond的任务执行信息将通过电子邮件发送给root用户

如果MAILTO变量的值为空,则表示不发送任务执行信息给用户

第四行的HOME变量指定了在执行命令或者脚本时使用的主目录。小 结:

数字的表示最好用2为阿拉伯数字显示

周和日最好不要同时用

定时任务要加注解

可以定向到日志文件或者空文件

定时任务一定是绝对路径,且目录必须存在才能出结果

crontab 服务一定要开启运行

# crontab时间问题

最关键的,只有 5 个参数,没有 秒 参数。所以跟标准cron定时表达式不一样

实例

实例1:每1分钟执行一次cmd* * * * *cmd

实例2:每小时的第3和第15分钟执行3,15 * * * *cmd

实例3:在上午8点到11点的第3和第15分钟执行3,15 8-11 * * *cmd

实例4:每隔两天的上午8点到11点的第3和第15分钟执行3,15 8-11 */2 * *cmd

实例5:每周一上午8点到11点的第3和第15分钟执行3,15 8-11 * * 1cmd

实例6:每晚的21:30执行30 21 * * *cmd

实例7:每月1、10、22日的4 : 45执行45 4 1,10,22 * *cmd

实例8:每周六、周日的1 : 10执行10 1 * * 6,0 cmd

实例9:每天18 : 00至23 : 00之间每隔30分钟执行*/30 18-23 * * *cmd

实例10:每星期六的晚上11 :00pm执行

023 * * 6cmd

实例11:每一小时执行

0*/1 * * *cmd

实例12:晚上11点到早上7点之间,每隔一小时执行

023-7 * * * cmd

5、常用命令解释

安装crontab:

yum install crontabs

crontab服务操作说明:

/sbin/service crond start //启动服务

/sbin/service crond stop //关闭服务

/sbin/service crond restart //重启服务

/sbin/service crond reload //重新载入配置

查看crontab服务状态:

service crond status

手动启动crontab服务:

service crond start

查看crontab服务是否已设置为开机启动,执行命令:

方法一: 界面启动 ntsysv

方法二: 加入开机自动启动: chkconfig –level35 crond on

查看定时任务列表

crontab -l

编辑定时任务

crontab –e == vim /var/spool/cron/root

crontab -r 删除定时任务

==> 从/var/spool/cron目录中删除用户的crontab文件==>如果不指定用户,则默认删除当前用户的crontab文件

crontab –i 在删除用户的crontab文件时给确认提示

备份crontab文件

crontab -l > $HOME/mycron

恢复丢失的crontab文件

如果不小心误删了crontab文件,假设你在自己的$ H O M E目录下还有一个备份,那么可以将其拷贝到/var/spool/cron/,其中是用户名。如果由于权限问题无法完成拷贝,可以用:

crontab 其中,是你在$ H O M E目录中副本的文件名。

有些crontab的变体有些怪异,所以在使用crontab命令时要格外小心。如果遗漏了任何选项,crontab可能会打开一个空文件,或者看起来像是个空文件。这时敲delete键退出,不要按,否则你将丢失crontab文件。

-

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值