linux系统清理事务日志文件,Linux 定时清除日志 Log

一、原因

写这篇的原因是项目中log没有定时清除,服务器上项目是用脚本启动,log文件只会在启动时生成一次,这时,由于项目在不断运行中,导致log越来越大。如果删除log文件,还得把项目停掉在启动,这样显然是不行的,而如果直接删掉log文件的话,后续的操作不会输出,也没有日志文件生成,这时就只能通过写个脚本定时去清除日志(每日一清)。

二、方法

这时我想的肯定是希望能写一个脚本把这些日志清除掉,但不是删除掉。那么现在需要实现3步:

1.找到项目的log的位置

2.清除log内容

3.定时执行脚本

有了思路,查找了资料后,找到了几个相关的命令:

find . -name 'p.*.log'

.:具体目录下,建议最好写出查询的具体的目录,类似,/var/local/

'p*.log':模糊查询p开头.log结尾的文件

find /var/local/ -name 'p*.log' -type f -print :将符合的文件打印出来:

001291627d977da977b71c52c6f10176.png

找到了log文件后这时我们只需要清除就好了:

find -name -exec  command:find的常用命令结构中有这样一条,具体的可以自行去百度。

清除文件的命令:

truncate -s 0 aa.txt {} \;        :切记,这里的“;”号不能省略, 意思是将aa.txt的大小变成0M,即把aa.txt的内容清空了。百度truncate的用法。

rm -rf/-r  xxx   :这个是删除文件或文件夹,不能达到我的要求

结合上面的命令,就有了如下这样一条:

find /var/local/ -name 'p*.log' -type f -print -exec truncate -s 0 {} \;            : 将符合这样一个条件的文件查到出来并赋予它0M的大小。

下面我们就可以清除日志的脚本了,如何写就不讲了:

1 #!/bin/bash

2

3 status(){

4 date

5 find /var/local/ -name 'p*.log' -type f -print -exec truncate -s 0 {} \;

6 echo "清空log成功"

7 return

8 }

9

10 case "$1" in

11 status)

12 status;;*)

13 echo "清除失败"

14 esac

四、定时任务

常用命令:

crontab -l    :查看定时任务

crontab -e    :添加任务

crontab -r   :删除任务

cat  /etc/crontab    :查看crontab文件

现在我们来添加一条任务:

59 23 * * * /var/local/clearlog.sh status >>/var/local/clear.txt :每天23:59执行脚本并输出到clear.txt文件 ,定时任务的写法:*(分)  *(时) *(日) *(月) *(周)  command

添加好后查看(crontab -l ),会发现有一条任务(为方便测试,这里可自行替换周期,如:*/1 * * * *   :每分钟执行一次 ):

de50cc11644807764254834b354153a1.png

这是可能出现clear.txt生成了。但是没有内容,日志也没清除,这个原因可能是你没给这个脚本赋权限:

chmod 755 clearlog.sh

PS:再解决这个问题过程中,碰到了一个问题,那就是在编辑一个文件时,写完后习惯性的CTRL+S,然后窗口就不能编辑了,退也退不了,后来查了,发现:

Ctrl s    暂停该终端  (解决办法:Ctrl q)

Ctrl c   中止当前正在执行的程序。

Ctrl d   相当于exit命令

OK。

定时清除 /var/log/massage 下的信息脚本文件

定时清除 /var/log/massage 下的信息脚本 #!/bin/sh #Date: 0:07 #Author: Xiaodong #Mail: [email protected] #Puncti ...

定时删除日志文件---linux定时清理日志

linux是一个很能自动产生文件的系统,日志.邮件.备份等.虽然现在硬盘廉价,我们可以有很多硬盘空间供这些文件浪费,让系统定时清理一些不需要的文件很有一种爽快的事情.不用你去每天惦记着是否需要清理日志 ...

Linux定时对日志批量打包Shell脚本及定时任务crontab 详细用法

一.需求背景     因此次项目的生产环境中部署了多套系统,每天会产生大量的日志(数百GB的量),侵占了服务器宝贵的存储资源空间.为了有效缓解服务器存储压力,考虑通过Linux的Shell脚本结合cr ...

Linux定时清理日志脚本

在应用疯狂打日志的情况下,服务器很容易被塞满磁盘. 先要写一个shell脚本,脚本如下. #!/bin/bash #----------------使用规范---------------- #1.该文 ...

linux 定期清除日志

clearLog.sh #!/bin/sh find /usr/local/apache/logs -mtime + 30 -name "*.log" -exec rm {} \; ...

linux定时清理日志

服务器硬盘较小,需要自动删除日志 1.编写find命令 首先编写需要删除文件的sh #删除50天前的日志 find */logs -mtime +50 -exec rm -f {} \; #注意目录  ...

linux 系统清除日志 .sh

clear.sh #!/bin/sh cat /dev/null > /var/log/syslogcat /dev/null > /var/adm/sylogcat /dev/null ...

Linux 定时清理日志脚本

在远程运行节点创建一个cleanlog.sh 脚本文件 vin clenalog.sh 插入以下内容 #!/bin/env bash start=$(date +%y-%m-%d-%H%M%m) Fi ...

Linux下使用crontab定时备份日志

上周学习了Linux,其中有使用crontab定时备份日志的内容,现把主要步骤记录如下: 首先需要备份的日志的源目录位于/opt/lampp/logs/access_log 备份到/tmp/logs下 ...

随机推荐

android view : 动画

view中除了必要的移动之外,也可以使用动画来完善视觉效果.android中的动画在2.3之前只有帧动画和补间动画.3.0之后就加入了属性动画.其实说到动画是什么?就是一个连续的view的集合.帧动画 ...

python中文输出和写入文本

中文输出 #-*-coding:utf8-*- import requests import re timeout = 8 headers = {'User-Agent':'Mozilla/5.0 ( ...

[转载]C#实现POST提交方式

网页自动登录和提交POST信息的核心就是分析网页的源代码(HTML),在C#中,可以用来提取网页HTML的组件比较多,常用的用WebBrowser.WebClient.HttpWebRequest这三 ...

[Jquery] js获取浏览器滚动条距离顶端的距离

需要用js获取滚动条距离窗口顶端的距离和js获取浏览器可视化窗口的大小  一.jQuery获取的相关方法 jquery 获取滚动条高度 获取浏览器显示区域的高度 : $(window).height( ...

关于C++条件运算符(三目运算符)右结合的说明

C++条件运算符 a ? c : d;是右结合的,但是这个右结合要怎么理解呢? 对于a ? b : c ? d : e; 这样的表达式如果按照右结合来解读的话,那不应该是先运算c,然后返回d或者e,返 ...

Android SQLite 事务处理

应用程序初始化时需要批量的向sqlite中插入大量数据,单独的使用for+Insert方法导致应用响应缓慢,因为 sqlite插入数据的时候默认一条语句就是一个事务,有多少条数据就有多少次磁盘操作.我 ...

新手立体四子棋AI教程(1)——基础扫盲

一.引言 最近身边好几个朋友开始玩立体四子棋,激起了我的好奇心.那么首先来说什么是[立体四子棋],规则又是如何呢? 上图即为立体四子棋,规则类似于五子棋四子连在一起,但是四子棋更加多样.丰富.不仅可以 ...

ORA-01034: ORACLE not available问题

通过DBCA新建一个数据库后,执行以下命令报错:SQL> shutdown immediate;ERROR:ORA-01034: ORACLE not availableORA-27101: s ...

【C++】static关键字的总结

转自 https://www.cnblogs.com/BeyondAnyTime/p/2542315.html C++的static有两种用法:面向过程程序设计中的static和面向对象程序设计中的s ...

nodejs 访问网站并操作xpath

var xpath = require('xpath'); //引用xpath包 var dom = require('xmldom-silent').DOMParser;//引用xmldom包 va ...

你可能感兴趣的:(linux系统清理事务日志文件)