xp自动登陆-惠普驱动怎么下载

文件切割
2023年4月1日发(作者:台式机显卡)

Linux使⽤logrotate来切割⽇志⽂件

程序在运⾏的时候为了了解运⾏状态,会输出⽇志⽂件,时间久了⽇志⽂件会变得⾮常⼤,甚⾄达到GB级别。我在golang应

⽤⾥使⽤logrus包来打⽇志,配置和使⽤都很⽅便,就是没有⽇志分割的功能,应⽤在线上运⾏⼀个⽉后⽇志⽂件都已经达到

上百兆。后来发现了logrotate,这是centos⾃带的⽇志分割⼯具,都不⽤安装额外组件就能实现定时分割⽇志。

1.运⾏原理

logrotate由系统的cron运⾏,位置在/etc//logrotate

#!/bin/sh

/usr/sbin/logrotate-s/var/lib/logrotate//etc/

EXITVALUE=$?

if[$EXITVALUE!=0];then

/usr/bin/logger-tlogrotate"ALERTexitedabnormallywith[$EXITVALUE]"

fi

exit0

可以看到⼊⼝配置⽂件是/etc/,依次运⾏/etc/.d⾥的配置⽂件如果发现配置的logrotate没有执⾏,

可以看下系统的crond服务有没有开启

2.配置

如果有安装nginx,可以参考nginx⾥的配置例⼦

/var/log/nginx/*log{

create0644nginxnginx

daily

rotate10

missingok

notifempty

compress

sharedscripts

postrotate

/bin/kill-USR1`cat/run/2>/dev/null`2>/dev/null||true

endscript

}

第⼀⾏定义的是⽇志⽂件的路径,可以⽤*通配,⼀般可以定义成*.log来匹配所有⽇志⽂件。也可以指定多个⽂件,⽤空格隔

开,⽐如

/var/log/nginx//var/log/nginx/{

}

花括号⾥⾯是⽇志切割相关的参数,下⾯是常⽤的切割参数

ss是否开启压缩,压缩格式gzip

2.不开启压缩

sscmd⾃定义压缩命令

ssexty压缩⽂件名后缀

ssoptions压缩选项

复制⼀份⽂件

后⾯跟modeownergroup,设置新⽇志⽂件的权限

按天分割

按周分割

y按⽉分割

后⾯跟数字,表⽰需要保留的⽂件历史记录,超过数量就会删除,或者通过邮件发送

后⾯跟⽂件⼤⼩,⽐如100k、100M,超过这个⼤⼩后分割

gok忽略不存在的⽂件,不报错

mpty不分割空⽂件

scripts配合postrotate、prerotate,让他们只执⾏⼀次

tate/endscript⽂件分割完后,执⾏postrotate、endscript之间的命令

ate/endscript⽂件分割完前,执⾏prerotate、endscript之间的命令

下⾯看⼏个例⼦

/var/log/httpd/{

rotate5

maili@

size=100k

sharedscripts

postrotate

/sbin/killall-HUPhttpd

endscript

}

切割/var/log/httpd/⽇志⽂件,超过100k后切割,保留最新的5个历史记录,超过5个的邮件发送到

fss@,postrotate⾥的的命令是为了让httpd重新打开⽇志⽂件。

/var/lib/mysql/{

#create600mysqlmysql

notifempty

daily

rotate3

missingok

compress

postrotate

#justifmysqldisreallyrunning

iftest-x/usr/bin/mysqladmin&&

/usr/bin/mysqladminping&>/dev/null

then

/usr/bin/mysqladmin--localflush-error-log

flush-engine-logflush-general-logflush-slow-log

fi

endscript

}

这是对mysql⽇志的切割,每天⼀份,忽略空⽂件,保留最新3份,使⽤gzip压缩

/home/wuyuan/log/*.log{

suwuyuanwuyuan

create0777wuyuanwuyuan

daily

rotate10

olddir/home/wuyuan/log/old

missingok

postrotate

endscript

nocompress

}

这是我在⽤的配置项,对log⽬录所有.log⽂件切割,每天⼀份,保留10份,新⽂件设定权限777,历史⽂件保留在old⽬录

⾥,这样可以⽅便查看。因为应⽤程序⽤的logrus使⽤append的⽅式写⽇志,所以不需要重新打开⽇志⽂件,这点logrus做得

很不错。

3.测试

写完配置⽂件后可以⼿动执⾏下,来验证是否可⽤。

logrotate-f/etc/logrotate.d/wuyuan

其中-f表⽰强制执⾏,其他命令可以⽤help来查看

logrotate--help

⽤法:logrotate[OPTION...]

-d,--debugDon'tdoanything,justtest(implies-v)

-f,--forceForcefilerotation

-m,--mail=commandCommandtosendmail(insteadof`/bin/mail')

-s,--state=statefilePathofstatefile

-v,--verboseDisplaymessagesduringrotation

-l,--log=STRINGLogfile

--versionDisplayversioninformation

Helpoptions:

-?,--helpShowthishelpmessage

--usageDisplaybriefusagemessage

没问题的话⽇志就会被移到old⽬录下,并带上⽇期,之前的log⽂件会被清空

以上就是本⽂的全部内容,希望对⼤家的学习有所帮助,也希望⼤家多多⽀持。

更多推荐

文件切割