1、systemd查看日志文件有隐藏该如何处理?
systemd是统一管理所有Unit的启动日志,包含内核日志和应用日志。在默认情况下,systemd日志保存于/run/log/journal中,系统重启后会清除,这里面的日志文件是二进制形式保存的,不能直接用less等文本文件查看的方式查看内容。
systemd有几大新特性:
- 系统初始化时实现服务并行启动;
- 按需启动守护进程;
- 自动化的服务依赖管理;
- 同时采用socket式与D-bus总线式激活服务
- 系统状态快照
可以使用journalctl命令来查看日志文件,可用选项有-o或–output=string指明输出格式,比如 (short, short-iso, short-precise, short-monotonic, verbose,export, json, json-pretty, json-sse, cat)
[root@xiaoping centos]# journalctl
-- Logs begin at Wed 2020-04-08 22:07:51 CST, end at Wed 2020-04-08 22:09:30 CST. --
Apr 08 22:07:51 localhost.localdomain systemd-journal[93]: Runtime journal is using 8.0M (
Apr 08 22:07:51 localhost.localdomain kernel: Initializing cgroup subsys cpuset
Apr 08 22:07:51 localhost.localdomain kernel: Initializing cgroup subsys cpu
Apr 08 22:07:51 localhost.localdomain kernel: Initializing cgroup subsys cpuacct
Apr 08 22:07:51 localhost.localdomain kernel: Linux version 3.10.0-957.el7.x86_64 (mockbui
Apr 08 22:07:51 localhost.localdomain kernel: Command line: BOOT_IMAGE=/vmlinuz-3.10.0-957
Apr 08 22:07:51 localhost.localdomain kernel: Disabled fast string operations
Apr 08 22:07:51 localhost.localdomain kernel: e820: BIOS-provided physical RAM map:
.............................................................
2、自己动手写一个systemd的配置文件, 让nginx服务可以开机启动
因为nginx是个系统服务,所以我们使用的类型一般是为.service unit:文件扩展名为.service,用于定义系统服务,角色类似于/etc/rc.d/init.d下的各个服务管理脚本;
文件通常由3部分组成:
- [unit]:提供unit的描述信息、unit行为及依赖关系
- [service]:与特定类型相关的专用选项
- [install]:定义由“systemctl eable”以及“systemctl distable”命令在实现服务开机自启动或禁用时用到的一些选项
[root@xiaoping system]# vi nginx.service
description=nginx-server
After=network target remote -fs
target nss-Lookup targetervice
Type=forking
PIDFile=/usr/local/nginx/logs/
nginx pidExecStart=/usr/local/
nginx/sbin/nginx -C/usr/local/
nginx/conf/nginx. confExecRe
load=/usr/local/nginx/sbin/nginx-s
reloadExecStop=/usr/local/nginx/sbin/nginx-s stopInstall
WantedBy=multi-user target
~
3、SIGHUP、SIGQUIT、SIGTERM、SIGINTERRUPT的区别
在shell中可以通过kill发送信号
信号 | 意义 |
---|---|
SIGHUP | 当终端断开时,会发送SIGHUP信号给该终端的控制进程,而该控制进程会将SIGHUP信号发送给终端内的其他进程,默认处理方式是终止进程 |
SIGQUIT | ctrl+\就是发送SIGQUIT信号杀死进程,只对终端内进程有效,脱离了终端的进程无效 |
SIGTERM | 终止进程的标准信号,也是最安全的 |
SIGINTERRUPT | 程序终止(interrupt)信号, 在用户键入INTR字符(通常是Ctrl-C)时发出,用于通知前台进程组终止进程。 |
4、用awk查看tcp连接处于TIMEOUT的连接个数
[root@xiaoping system]# netstat -an |awk '/^tcp\>/ {if($NF=="TIMEOUT")sum++} END{print sum}'