Loading

logger & journalctl,LINUX日志管理

简介:

有时候写一些linux系统脚本,外加定时任务,总是希望能看到日志,所以就有了各种骚操作。

一:自己写

自己写入指定日志,并进行容量管理。

#日志文件
LOG_FILE=./log/log-$(date '+%Y-%m-%d').txt
path=./log

check_logs(){
    if [ ! -d $path ]; then
        mkdir $path
    fi
    find $path -type f  -mtime +30 | xargs rm -rvf
}

# 输出格式

arLog() {
    content="$(date '+%Y-%m-%d %H:%M:%S') $@"
    echo $content >> $LOG_FILE && echo -e  "\033[32m" ${content} "\033[0m"
}

使用的时候:

check_logs
arLog "*******"

check_logs只要执行一次就行了,检查目录,删除30天以上的文件。

二:系统logger

#日志标头设置
export log_header_name="CF_DDNS"
#日志输出格式设置
arLog() {
    echo "$@"
    logger $log_header_name:"$@"
}

这个也要设置,但是设置的就少了一些。不用自己管理了。

使用的时候直接使用:

logger -s "*********"

查询的时候:引号里面是仅显示 日志标头 为cf_ddns的。--since today,是只显示今天的,你也可以写yesterday,从昨天开始的。--no-page,是显示完整日志,免得过长截断不显示。

 journalctl --no-pager --since today -g 'cf_ddns'

常用就这一条,其他的自己去查journalctl吧。

三:journalctl常用

# 显示尾部的最新10行日志

journalctl -n

 

# 显示尾部指定行数的日志

journalctl -n 15

 

# 实时滚动显示最新日志

journalctl -f

 

# 显示日志占据的硬盘空间

journalctl --disk-usage

 

# 指定日志文件占据的最大空间,默认为8M,可以设个1M,再改500M,就变相清理日志了。

journalctl --vacuum-size=1G

 

# 指定日志文件保存多久

journalctl --vacuum-time=1years

posted @ 2024-02-29 10:53  上官飞鸿  阅读(14)  评论(0编辑  收藏  举报