一、原因

写这篇的原因是项目中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 :将符合的文件打印出来:

找到了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/bash2 3 status(){4   date 5   find /var/local/ -name 'p*.log' -type f -print -exec truncate -s 0 {} \;6   echo "清空log成功"7   return8 }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 * * * *   :每分钟执行一次 ):

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

chmod 755 clearlog.sh

    

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

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

             Ctrl c   中止当前正在执行的程序。
             Ctrl d   相当于exit命令

     OK。

转载于:https://www.cnblogs.com/Bread-Wang/p/9963780.html

Linux 定时清除日志 Log相关推荐

  1. Linux定时清理日志

    Linux定时清理日志 shell脚本编写 设置定时器,定期执行脚本 shell脚本编写 1.先创建出一个一个文件夹用于保存.sh文件 mkdir crontab-file 2.创建.sh文件 vim ...

  2. linux 定时切割日志,Linux 定时切割日志任务

    方法一:vi  /etc/crontab 方法二:crontab -e 系统定时任务配置文件: SHELL=/bin/bash PATH=/sbin:/bin:/usr/sbin:/usr/bin M ...

  3. Linux 定时备份日志

    什么是日志文件?为什么要设立日志文件? 1.日志文件是用来记录事务对数据库的更新操作的文件. 2.设立日志文件的目的是: 进行事务故障恢复;进行系统故障恢复;协助后备副本进行介质故障恢复. 但是,随着 ...

  4. shell脚本定时清除日志文件

    1.首先进入日志所在的文件夹 并创建shell文件 2.shell文件内容: #!/bin/sh echo "Hello Linux!" find /usr/local/xbinf ...

  5. Linux定时清除缓存脚本与清除命令

    1.脚本cleanCache.sh vim cleanCache.sh #!/bin/bash #每两小时清除一次缓存 echo "开始清除缓存" sync;sync;sync # ...

  6. linux系统清除日志,如何清除Linux系统日志

    把下面的文件根据需要做一下修改,然后保存为clear_logs.sh,然后执行即可. #!/bin/sh cat /dev/null > /var/log/syslog cat /dev/nul ...

  7. linux下定时清理日志任务

    1.创建定时清除日志脚本(/usr/local目录下) mkdir scriptTask  创建脚本文件夹,存放所有的脚本 在scriptTask 目录下创建脚本 find 对应目录 -mtime + ...

  8. linux session刷新,linux 定时清理session

    php session 运营想让用户登陆网站就能永久保持登陆会话,感觉这是扯淡,因为视频播放1小时,所以我设置了两小时过期. 但是用户过多,导致session文件大量存储.产生上百万千万.服务器空间很 ...

  9. inux定时清除缓存

    linux定时清除缓存 引言 如果你的服务器出现cache过多的情况或者服务器内存不足的情况,请参考这篇. 1.创建清除缓存shell执行脚本:cleanCache.sh #!/bin/bash #每 ...

最新文章

  1. 2021年寒假将至,教育部致信中小学生家长的一封信:人生如长跑,起步忌冲刺,薄发需厚积
  2. 2021-07-07
  3. Android 基本事件及对话框
  4. ​揭秘!野生海鲜竟然从渔港直接送到你家~速看!
  5. 【需求工程】系统服务与系统约束
  6. (87)FPGA读文件激励(readmemb)
  7. 【基础教程】基于matlab图像质量评价综述【含Matlab源码 075期】
  8. ifonts提取下载ttf文件
  9. java屠龙_倚天屠龙之江湖神器
  10. 将html内容转换成word文档,一招教你将网页内容转化为word文档保存
  11. 22考研初试410数一145上岸上海交通大学819经验分享
  12. Teambition X 2019 校招
  13. 电脑上不了网,网络协商速率只有10M?
  14. h5(网页) 调用相机拍照和相册,实现图片上传功能
  15. 想一想就感觉到生活还是充满很多正能量的
  16. iphone SE 自带视频播放器要求的视频格式转换参数
  17. php pdo oracle 乱码,php pdo 乱码怎么办
  18. ThinkPHP最新版支付宝接口开…
  19. e^(πi)=-1的最佳解释笔记
  20. python画糖葫芦_小班美术甜甜的糖葫芦教案

热门文章

  1. Android 动画小知识点
  2. gcc 常用命令-Wall
  3. C# 按钮控制windows音量
  4. 解决kubernetes中ingress-nginx配置问题
  5. 使用libjpeg进行图片压缩(哈夫曼算法,无损压缩)
  6. Exchange Technical community discussion group
  7. 利用正高Dolphin智能广告监测系统做好违法广告监测
  8. Python库cx_orcal 在64位win7上的安装记录
  9. 优先级调度和运行前调度的比较
  10. 福利模块功能实现及考勤模块准备