1.初始化日志文件。对文件的大小进行判断和压缩 2.写日志
转载
2019-05-23 11:31:00
336阅读
2评论
set -n "1,1000p" 表示从第1行到1000行。按照上面的脚本表示 每10000行 一个文件。 另外还有个split命令可以快速切割 split [-bl] file [prefix] 参数说明:-b, --bytes=SIZE:对file进行切分,每个小文件大小为SIZE。可以指定单位
原创
2023-02-03 09:11:45
241阅读
vi /etc/logrotate.d/nginx #编辑脚本/usr/local/nginx/logs/*.log /usr/local/nginx/logs/nginx_logs/*.log{missingok #忽略错误,如“日志文件无法找到”的错误提示。dateext #切换后的日志文件会附加上一个短横线和YYYYMMDD格式的日期,没有这个配置项会附
原创
2017-05-19 10:50:25
1138阅读
我的博客已迁移到xdoujiang.com请去那边和我交流
1、日志结构
/opt/online/{123com,abccom}/log/online[1-9]/[a-z]
2、变量说明
#是否开启压缩功能(0:关闭,1:开启;若关闭压缩功能,则compressdayn无效)
needcompress=1
删除14天以前的日志
deldayn=14
前1天
lastdayn=1
服务类型
all
原创
精选
2015-05-19 17:29:25
2735阅读
#!/bin/bash
#nginx logs cut
#cp /usr/local/nginx/logs/access.log /usr/local/nginx/logs/access.log.bak
PATH=/bin:/usr/bin:/sbin:/usr/sbin
export PATH
log_path="/usr/local/nginx
原创
2014-05-15 15:14:17
923阅读
vim tomcat_cut.sh#!/bin/bashlog_path=/opt/tomcat8080/logsd=`date +%Y-%m-%d`d4=`date -d'30 day ago' +%Y-%m-%d`cd ${log_path} && cp catalina.out $log_path/catalina.out.$d.logecho > catalina.o
原创
2016-03-04 17:09:50
3888阅读
使用Shell脚本切割web日志
原创
2017-04-25 12:02:43
629阅读
一、脚本思路第一步就是重命名日志文件,不用担心重命名后nginx找不到日志文件而丢失日志。在你未重新打开原名字的日志文件前,nginx还是会向你重命名的文件写日志,linux是靠文件描述符而不是文件名定位文件。第二步向nginx主进程发送usr1信号。nginx主进程接到信号后会从配置文件中读取日志文件名称,重新打开日志文件(以配置文件中的日志名称命名),并以工作进程的用户作为日志文件的所有者。重
原创
2019-06-13 11:22:48
732阅读
需求实现进度回顾需求分析,有两个需求还未实现:显示当前的调用关系,这个功能在1.0中可以实现,但2.0中有更简便的方法重要信息换颜色展示,之前讨论过可以先搁置技术积累这部分名字或许该改成“点亮技能树”日志模块优缺点优点之前已在实现模块时做总结,上个图直接聊缺点缺点未能记录脚本执行全过程写脚本时潜意识预期:绝大多数逻辑都能顺利执行无需在意结果,只有主观认为需要记日志时才调用几个函数。例如:Info
原创
精选
2024-03-03 22:25:53
140阅读
日志模块1.0解决了要做什么和怎么做两个问题,2.0要解决的问题是怎么做的更好。针对1.0的不足,在改进思路的同时,更多使用Shell特性来实现需求。需求分析区分日志来源先把日志来源分为主被动和主动两种被动来源是指脚本执行全过程调试脚本一般使用bash -x script.sh,显示脚本执行全过程,输出是混合结果。例如:#!/bin/bash
ls -l /not_exist
ls -l /v
原创
2024-03-04 12:41:45
27阅读
曾经我的Shell脚本只有几十至上百行,几乎不需要写日志。后来脚本越来越复杂,“debug脚本报错” 和 “编写脚本后的调试” 占用了大量时间。站在SRE的角度,这些工作成为了“琐事”和“长尾问题”。于是写一个Shell脚本的日志模块,成为重要但不紧急的需求。日志模块1.0看起来有点简陋,因为它在十多年之前写成,回顾1.0是为总结方法和思路。需求分析把Shell脚本写日志的功能理解成echo "
原创
2024-03-03 18:39:32
51阅读
ogrotate简介 logrotate 程序是一个日志文件管理工具。用来把旧的日志文件删除,并创建新的日志文件,我们把它叫做“转储”。我们可以根据日志文件的大小,也可以根据其天数来转 储,这个过 程一般通过 cron 程序来执行。logrotate 程序还可以用于压缩日志文件,以及发送日志到指定的E-mail 。系统自带的日志切割的配置文件在/e
转载
2024-04-04 20:35:00
96阅读
function log() {
echo >&2 -e "[$(date +"%Y-%m-%d %H:%M:%S")] ${1-}"
}
function die() {
local msg=$1
local code=${2-1} # Bash parameter expansion - default exit status 1
原创
2023-06-12 23:08:21
154阅读
按照前文的需求和设计,实现日志模块1.0。先展示最终效果,在脚本中调用Info Cau Warn记录日志:# 日志文件保存到"./log.log"
strLogPath="."
strLogName="log.log"
Info 正常信息
sleep 1
Cau 警告信息
sleep 1
Warn 错误信息,脚本退出
sleep 1
Info 不会执行到这里结果输出包含时间、PID、U
原创
精选
2024-03-03 21:26:44
147阅读
展示效果在此先展示效果,再讲如何实现。Log4Bash.sh 有以下几个参数可供配置:LogDIR 和 LogFile 指定日志位置,默认值为 /tmp 和 当前进程pid.logShowLogPath 默认值0,表示脚本执行结束时不显示日志位置。没配置 LogDIR 和 LogFile 时用户不知道日志位置,ShowLogPath 会自动改为1并显示日志位置LogTimer 默认值0,设置为1时
原创
精选
2024-03-04 12:49:08
163阅读
具体实现方法改造Warn函数日志模块1.0的Warn函数实现了2个功能:记录日志和退出脚本。2.0中用Shell特性分别实现。1.0手工判断脚本执行是否出错,2.0使用bash -e开启错误检测模式。任何一行命令的返回值$?不为0,都会认为出错并退出。trap命令可以捕捉到上述错误,可以像注册回调函数一样,让trap调用函数记录日志#!/bin/bash
LogsDIR=logs
LogFile=
原创
精选
2024-03-04 13:22:16
128阅读
日志文件名规划如果日志文件名始终是log.log会有两个弊端。首先刚才的例子已经能看出,脚本多次执行日志都混在一起,查找之前某天某次的日志会变得很困难。其次日志文件体积会持续增长,清理某个时间点之前的日志会变得很困难。所以写入日志时需要加入日期时间等标记。加入日期时间假设大家已经精通date命令,日志文件名加日期时间需要在日志文件名中追加,如strLogPath="."
strLogName="l
原创
精选
2024-03-03 21:36:13
172阅读
具体实现方法记录脚本执行全过程前面讲过使用bash -x开启调试功能显示脚本执行全过程,与命令报错一起显示在标准错误。标准错误默认是终端,与标准输出混在一起,需要把标准错误重定向给日志文件。#!/bin/bash
LogsDIR=logs
LogFile=output.log
mkdir -p ${LogsDIR}
# 重定向标准错误
exec 2>>${LogsDIR}/${Log
原创
精选
2024-03-04 13:05:33
152阅读
#!/bin/bashCD=`df -l |awk'NR==3 {print $4}'|awk 'BEGIN {FIELDWIDTHS="2 1"}''{print $1}'`if [ $CD -ge 20];then echo "硬盘空间已满,不能进行备份"| mutt -s "备份报警,请及时更换硬盘" lrt
原创
2015-10-10 19:22:36
733阅读
脚本说明:日志切割与上传类脚本的功能:脚本自身的运行日志记录与清理、日志切割与打包、ftp上传、传送失败自动重传、断电自动补传、清理超期旧打包等--------------------#!/bin/bash
# Cut and upload aclog log
# by colin
# revision on
原创
2016-07-05 20:33:26
714阅读