systemctl使用

mgr-active@.service文件,有@符号为模板,后面跟字符串名称

[Unit]
Description=ceph-mgr keep alive daemon
After=network-online.target local-fs.target time-sync.target	#启动后需要运行的services,如mgr-active@%i.service
Wants=network-online.target local-fs.target time-sync.target	#被需要的services,如mgr-active@%i.service
PartOf=mgr-active.target

[Service]
EnvironmentFile=-@SYSTEMD_ENV_FILE@
Environment=CLUSTER=ceph
ExecStart=/usr/bin/bash /usr/share/ceph/mgr/keep_mgr.sh %i #%i为模板传入的字符串
ExecReload=/bin/kill -HUP $MAINPID	#重新加载,kill进程
Restart=on-failure		#失败重启
RestartSec=5	#进程退出自动重启时间

[Install]
WantedBy=mgr-active.target

systemctl日志查看

1.journalctl :日志查看工具

journalctl -u ceph-mgr@node1	//查看service日志
journalctl -n 5 //查看最近3条日志

在这里插入图片描述

  journalctl -p err //查看错误日志

在这里插入图片描述

 journalctl -o verbose //查看日志的详细参数

在这里插入图片描述

journalctl --since //查看从什么时间开始的日志

在这里插入图片描述

journalctl --until //查看到什么时间为止的日志

在这里插入图片描述

(2)如何使用systemd-journald保存系统日志

默认systemd-journald是不保存系统日志到硬盘的,那么关机之后再次开机只能看到开机之后的日志,上次关机之前的日志是无法查看

mkdir /var/log/journal
chgrp systemd-journal /var/log/journal/
chmod g+s /var/log/journal/
killall -1 /usr/lib/systemd/systemd-journald 

ls /var/log/journal/
946cb0e817ea4adb916183df8c4fc817

在这里插入图片描述
2 journalctl 使用方法

.查看所有日志

默认情况下,只保存本次启动的日志

journalctl

.查看内核日志(不显示应用日志)

journalctl -k

.查看系统本次启动的日志

journalctl -b

journalctl -b -0

.查看上一次启动的日志

需更改设置,如上次系统崩溃,需要查看日志时,就要看上一次的启动日志。

journalctl -b -1

.查看指定时间的日志

journalctl --since=“2012-10-3018:17:16”

journalctl --since “20 minago”

journalctl --since yesterday

journalctl --since"2015-01-10" --until “2015-01-11 03:00”

journalctl --since 09:00 --until"1 hour ago"

journalctl --since"15:15" --until now

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

journalctl -n

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

查看的是/var/log/messages的日志,但是格式上有所调整,如主机名格式不一样而已

journalctl -n 20

.实时滚动显示最新日志

journalctl -f

.查看指定服务的日志

journalctl /usr/lib/systemd/systemd

.查看指定进程的日志

journalctl _PID=1

.查看某个路径的脚本的日志

journalctl /usr/bin/bash

.查看指定用户的日志

journalctl _UID=33 --since today

.查看某个Unit的日志

journalctl -u nginx.service

journalctl -u nginx.service --since today

.实时滚动显示某个Unit的最新日志

journalctl -u nginx.service -f

.合并显示多个Unit的日志

journalctl -u nginx.service -u php-fpm.service --since today

​查看指定优先级(及其以上级别)的日志

日志优先级共有8级

0: emerg

1: alert

2: crit

3: err

4: warning

5: notice

6: info

7: debug

journalctl -p err -b

.不分页标准输出

日志默认分页输出–no-pager改为正常的标准输出

journalctl --no-pager

.以JSON格式(单行)输出

JSON(JavaScript Object Notation)是一种轻量级的数据交换格式。易于人阅读和编写。同时也易于机器解析和生成。它基于JavaScriptProgramming Language, Standard ECMA-262 3rd Edition - December 1999的一个子集。JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C, C++, C#, Java,JavaScript, Perl, Python等)。这些特性使JSON成为理想的数据交换语言。

JSON建构于两种结构:

“名称/值”对的集合(A collection ofname/value pairs):不同的语言中,它被理解为对象(object),纪录(record),结构(struct),字典(dictionary),哈希表(hash table),有键列表(keyed list),或者关联数组(associativearray)。

值的有序列表(An ordered list of values):在大部分语言中,它被理解为数组(array)。

这些都是常见的数据结构。事实上大部分现代计算机语言都以某种形式支持它们。这使得一种数据格式在同样基于这些结构的编程语言之间交换成为可能。

例子

以JSON格式(单行)输出

journalctl -b -u httpd.service -o json

.以JSON格式(多行)输出,可读性更好,建议选择多行输出

journalctl -b -u httpd.service -o json-pretty

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

journalctl --disk-usage

.指定日志文件占据的最大空间

journalctl --vacuum-size=1G

.指定日志文件保存多久

journalctl --vacuum-time=1years

文档
https://blog.csdn.net/john1337/article/details/106716318/
https://blog.csdn.net/weixin_42195382/article/details/89337900

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值