每当电商网站管理员遇到MySQL数据库、Apache之类的应用程序,无法如常启动时,Linux系统都会有提示,使用 journalctl -ex
命令查看它。
journal是什么意思?
journal基本解释:
持久化journal的日志
持久化是在持久状态和瞬态状态之间转换程序数据的机制。
通俗地说,瞬态数据(例如无法永久存储的内存数据),持久化会持久存储到持久数据(例如数据库持久性,可以长时间存储)。
在CentOS 7.X中,systemd管理所有单元的启动日志。
journalctl日志路径
日志服务仅将日志文件保存在单个结构中。
以下是CentOS 7 系统 VestaCP控制面板,journalctl日志的保存路径 ▼
/var/log/journal
journalctl查看日志命令
不加上任何选项,让journalctl输出所有日志记录的命令 ▼
journalctl
接下来,我们将学习如何有效地过滤有价值的日志信息。
查看指定时间段journalctl日志
使用以下命令选项,设置时间段 ▼
--since --until
时间值可以采用多种格式,例如以下格式 ▼
YYYY-MM-DD HH:MM:SS
如果你想检查在2018年3月8日晚上8点20分之后日志,请输入以下命令 ▼
journalctl --since "2018-03-26 20:20:00"
默认值为“00”,例如以下命令 ▼
journalctl --since "2018-03-26" --until "2018-03-26 03:00"
此外,journalctl还可以理解一些相对值和命名简写。
例如,要获取昨天的日志数据,可以使用以下命令 ▼
journalctl --since yesterday
要从上午9:00到最后一小时获取日志,可以使用以下命令 ▼
journalctl --since 09:00 --until "1 hour ago"
实时更新查看journalctl日志
跟 tail -f 命令类似,journalctl支持-f选项,以便实时显示日志 ▼
journalctl -f
如果想查看设备的实时日志,请添加-u选项 ▼
$ sudo journalctl -f -u prometheus.service
仅显示最journalctl 新的n行
命令行选项 -n
用于仅控制最新的n行日志。
默认是在最后显示最新的10行日志 ▼
$ sudo journalctl -n
你还可以在末尾显示指定行数的日志 ▼
$ sudo journalctl -n 20
以下是显示cron.service服务的最新三行日志 ▼
$ journalctl -u cron.service -n 3
有网络营销人员使用VPS建站,安装VestaCP控制面板,搭建WordPress网站。
经常使用 df -h
命令查看VPS磁盘容量,发现每月以1GB的趋势在上升(记得上个月是1GB)
[[email protected] ~]# df -h Filesystem Size Used Avail Use% Mounted on /dev/simfs 20G 7.5G 13G 38% / devtmpfs 256M 0 256M 0% /dev tmpfs 256M 0 256M 0% /dev/shm tmpfs 256M 244K 256M 1% /run tmpfs 256M 0 256M 0% /sys/fs/cgroup tmpfs 52M 0 52M 0% /run/user/0
查看journalctl日志使用容量命令
检查当前 journalctl 日志使用磁盘容量命令 ▼
journalctl --disk-usage
journalctl清空删除日志
由于Linux是一个非常敏感的操作系统,若删除文件错误,很容易造成系统崩溃。
所以,清理journalctl日志的方法,请按日期、允许保留的容量进行删除。
journalctl --vacuum-time=2d journalctl --vacuum-size=500M
如果要手动删除日志文件,则需要在删除之前轮转(循环)日志。
systemctl kill --kill-who=main --signal=SIGUSR2 systemd-journald.service
journalctl配置持久性容量
要启用日志限制持久性配置,你可以修改journald的配置文件 ▼
/etc/systemd/journald.conf
SystemMaxUse=16M ForwardToSyslog=no
然后,重启journald ▼
systemctl restart systemd-journald.service
检查日志是否如常?日志文件是否完好且未损坏? ▼
journalctl --verify
以下是清理journalctl日志之后的VPS磁盘容量,以及journalctl日志容量 ▼
[[email protected] /]# df -h Filesystem Size Used Avail Use% Mounted on /dev/simfs 20G 5.7G 15G 29% / devtmpfs 256M 0 256M 0% /dev tmpfs 256M 0 256M 0% /dev/shm tmpfs 256M 308K 256M 1% /run tmpfs 256M 0 256M 0% /sys/fs/cgroup tmpfs 52M 0 52M 0% /run/user/0 [[email protected] /]# journalctl --disk-usage Archived and active journals take up 24.0M on disk.
持久化 journalctl 日志详解,到此结束 ^_^