加入收藏 | 设为首页 | 会员中心 | 我要投稿 我爱制作网_沈阳站长网 (https://www.024zz.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 服务器 > 搭建环境 > Linux > 正文

Linux下,如何自动对日志进行压缩备份?

发布时间:2022-11-18 11:10:24 所属栏目:Linux 来源:
导读:  系统中安装了前置机服务,该服务由银行提供。前置机日志打印的非常详细,同时并未进行压缩处理。这导致的直接后果就是,每天会有5G左右的日志产生。过不了多久就需要手动压缩备份一次。

  当今天系统再次报
  系统中安装了前置机服务,该服务由银行提供。前置机日志打印的非常详细,同时并未进行压缩处理。这导致的直接后果就是,每天会有5G左右的日志产生。过不了多久就需要手动压缩备份一次。
 
  当今天系统再次报警磁盘不足时,决定彻底解决该问题。解决的方案也很简单,基于Linux写一个简单的脚本,对日志进行定时压缩备份。大家如果在实践中遇到类似的问题,可以直接基于下面的脚本进行修改、丰富使用。
 
  具体操作执行脚本编写
 
  首先,创建一个执行日志压缩、备份和删除的脚本,命名backup.sh,并赋予可执行权限,脚本内容如下:
 
  #!/bin/bash
 
  cd?/log/
  echo?'开始压缩...'
  tar?-czvf?/log/bak/trade.log.`date?-d?yesterday?+%F`.tar.gz?trade.log.`date?-d?yesterday?+%F`
  echo?'压缩完毕...,执行删除'
  rm?-rf?trade.log.`date?-d?yesterday?+%F`
  echo?'删除完毕.'
  在上述脚本中,先通过cd命令进入目标目录,在执行命令中会通过echo打印一些日志信息,这个主要用于进行调试。
 
  执行tar -czvf命令,进行日志的压缩。命令后面第一个参数为压缩之后的文件的名称及存储路径linux压缩,这里放到bak目录下,第二个参数为待压缩的日志。
 
  linux压缩命令 区别_linux 命令 压缩_linux压缩
 
  我们重点来介绍一下文件名称中date -d yesterday +%F的含义。在Linux中,date +"%F"能输出系统的当前日期:
 
  $?date?+"%F"
  2022-08-09
  命令中,date命令是输入日期,后面部分用于格式化。
 
  但这都是打印出系统的当前时间,如果要获取相对当前时间的某个时间,需要通过-d参数来实现。
 
  $?date?-d?yesterday?+%F
  2022-08-08
  这里就获得了前一天的日期了。当然,也可以输出后一天的时间,比如:
 
  $?date?-d"yesterday"?+"%F?%H:%M:%S"
  2022-08-08?21:36:15
  在理解了如何获取系统日期之后,上面的脚本就比较好理解了。
 
  先通过执行tar -czvf命令,进行日志的压缩,压缩文件直接存放在bak目录,压缩完毕之后,通过rm -rf命令对日志进行删除。
 
  在完成上述编辑之后,可以直接执行该脚本,验证一下是否正确,然后就可以通过定时任务来进行配置了。
 
  定时任务执行
 
  在完成了脚本的编写并赋予可执行权限之后,就需要基于crontab来进行定时任务的配置。
 
  执行crontab -e打开定时任务文件编辑界面,输入如下信息:
 
  30?2?*?*?*?/log/backup.sh
  上面的指令是在说:每天2点30分执行/log/backup.sh脚本。编辑完成,保持退出。那么在每天凌晨2点30分,便会进行脚本的执行。
 
  这里再拓展一下,上述crontab中对应的表达式含义如下:
 
  minute???hour???day???month???week???command?????顺序:分?时?日?月?周?命令
  根据需要,你可以调整定时任务的执行时间点或周期。
 
  关于crontab这里再补充一下它的常见指令,方便大家使用:
 
  crontab?-e?//?编辑
  crontab?-l?//?查看
 
  service?crond?status
 
  service?crond?start//?启动服务
 
  service?crond?stop//?关闭服务
 
  service?crond?restart//?重启服务
 
  service?crond?reload??//?重新载入配置
 
  cd?/var/spool/mail/用户文件?查看执行情况
  小结
 
  至此,关于Linux下自动日志压缩备份脚本已经完成。虽然非常简单,但却可以极大地释放人力资源,再也不用手动清理了。当然,在实践中,场景不同使用的脚本可能更会更复杂,但基本原理是一致的,大家可根据具体情况来丰富脚本的功能。
 

(编辑:我爱制作网_沈阳站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!