当前位置: 首页 > 科技观察

linux下如何自动压缩备份日志?_0

时间:2023-03-12 12:33:27 科技观察

后台系统安装前端机服务,由银行提供。前端处理器的日志打印的很详细,没有压缩。这样做的直接后果就是每天产生5G左右的日志。很快您就需要手动压缩备份。今天系统又报磁盘不足的时候,决定彻底解决问题。解决方法也很简单。编写一个简单的基于Linux的脚本,对日志进行定时压缩备份。如果在实践中遇到类似的问题,可以直接根据下面的脚本进行修改和丰富。具体操作执行脚本编写首先,创建一个执行日志压缩、备份和删除的脚本,命名为backup.sh,并赋予可执行权限。脚本内容如下:#!/bin/bashcd/log/echo'开始压缩...'tar-czvf/log/bak/trade.log.`date-dyesterday+%F`.tar.gztrade.log.`date-dyesterday+%F`echo'compressioncomplete...,delete'rm-rftrade.log.`date-dyesterday+%F`echo'删除完成.'在上面的脚本中,首先通过cd命令进入目标目录,命令执行过程中会通过echo打印一些日志信息。这个主要用于调试。运行tar-czvf命令以压缩日志。命令后第一个参数是压缩文件的名称和存放路径,放在bak目录下,第二个参数是要压缩的日志。我们重点看一下文件名中date-dyesterday+%F的含义。在linux中,date+"%F"可以输出系统当前日期:$date+"%F"2022-08-09命令中,date命令是输入日期,后面部分用于格式化。但这是为了打印出系统当前的时间。如果想得到相对于当前时间的某个时间,需要使用-d参数来实现。$date-dyesterday+%F2022-08-08这里获取的是前一天的日期。当然也可以输出第二天的时间,例如:$date-d"yesterday"+"%F%H:%M:%S"2022-08-0821:36:15了解后如何获取系统日期,上面的脚本比较容易理解。首先,执行tar-czvf命令压缩日志。压缩后的文件直接存放在bak目录下。压缩完成后,通过rm-rf命令删除日志。完成以上编辑后,可以直接执行脚本验证是否正确,然后通过定时任务进行配置。定时任务执行脚本编写完成并授予可执行权限后,需要基于crontab配置定时任务。执行crontab-e打开定时任务文件编辑界面,输入如下信息:302***/log/backup.sh上面的命令是说:在每天2:30执行/log/backup.sh脚本天。编辑完成,继续退出。然后每天凌晨2点30分执行脚本。这里展开一下,上面crontab中相应表达式的含义如下:分时日月周命令顺序:分时日月周命令您可以根据需要调整定时任务的执行时间点或周期。这里关于crontab是为了方便大家添加它的常用指令:crontab-e//编辑crontab-l//查看servicecrond状态servicecrondstart//启动serviceservicecrondstop//关闭serviceservicecrondrestart//重启serviceservicecrondreload//重新加载配置cd/var/spool/mail/user文件查看执行摘要至此,linux下日志自动压缩备份脚本就完成了。虽然很简单,但是可以极大的解放人力,不需要人工去清理。当然在实践中,不同场景使用的脚本可能会更复杂,但是基本原理是一样的,可以根据具体情况来丰富脚本的功能。