1、systemd查看日志文件有隐藏该如何处理?
systemd 日志的配置文件是 /etc/systemd/journald.conf
在默认情况下,systemd日志保存于/run/log/journal中,系统重启后会清除,这里面的日志文件是二进制形式保存的,不能直接用less等文本文件查看的方式查看内容。
journalctl
一个命令,查看所有日志(内核日志和应用日志)
journalctl语法格式:
journalctl [OPTIONS…] [MATCHES…]
journalctl -o verbose [MATCHES....]
可显示全部字段,包括通常被内部隐藏的字段。
json-pretty 格式输出abrtd.service 的最后一条日志:
[root@benny~]#journalctl -u abrtd.service -n 1 --no-pager -o json-pretty
{
"__CURSOR" : "s=c2f466af2cbe4f26aec6f75f7b2e6bb5;i=7fe;b=9ccdf377d2b244059a1df0d872624443;m=a04209;t=5926c07ef7fb1;x=5828f5a008b0749",
"__REALTIME_TIMESTAMP" : "1568367570812849",
"__MONOTONIC_TIMESTAMP" : "10502665",
"_BOOT_ID" : "9ccdf377d2b244059a1df0d872624443",
"_UID" : "0",
"_GID" : "0",
"_SYSTEMD_SLICE" : "system.slice",
"_MACHINE_ID" : "a9005dfe1f9145adba2cda45734fed9e",
"_HOSTNAME" : "benny",
"PRIORITY" : "4",
"_TRANSPORT" : "journal",
"_CAP_EFFECTIVE" : "1fffffffff",
"SYSLOG_FACILITY" : "1",
"CODE_FILE" : [ "logging.c", "abrtd.c" ],
"CODE_LINE" : [ "143", "889" ],
"CODE_FUNC" : [ "log_handler", "main" ],
"MESSAGE" : "Init complete, entering main loop",
"SYSLOG_IDENTIFIER" : "abrtd",
"_PID" : "6626",
"_COMM" : "abrtd",
"_EXE" : "/usr/sbin/abrtd",
"_CMDLINE" : "/usr/sbin/abrtd -d -s",
"_SYSTEMD_CGROUP" : "/system.slice/abrtd.service",
"_SYSTEMD_UNIT" : "abrtd.service",
"_SELINUX_CONTEXT" : "system_u:system_r:abrt_t:s0-s0:c0.c1023",
"_SOURCE_REALTIME_TIMESTAMP" : "1568367570811866"
}
2、自己动手写一个systemd的配置文件, 让nginx服务可以开机启动
每一个 Unit 都有一个配置文件,告诉 Systemd 怎么启动这个 Unit 。
Systemd 默认从目录/etc/systemd/system/读取配置文件。但是,里面存放的大部分文件都是符号链接,指向目录/usr/lib/systemd/system/,真正的配置文件存放在那个目录。
systemctl enable命令用于在上面两个目录之间,建立符号链接关系。
在/usr/lib/systemd/system
创建nginx.service
[root@benny/usr/lib/systemd/system]#cat nginx.service
Unit]
Description=nginx server
After=syslog.target network.target remote-fs.target nss-lookup.target
[Service]
Type=forking
PIDFile=/usr/local/nginx/logs/nginx.pid
ExecStart=/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
ExecReload=/usr/local/nginx/sbin/nginx -s reload
ExecStop=/usr/local/nginx/sbin/nginx -s stop
[Install]
WantedBy=multi-user.target
3、SIGHUP、SIGQUIT、SIGTERM、SIGINTERRUPT的区别
-
SIGHUP
进程重新读取配置文件 -
SIGQUIT
建立CORE文件终止进程,并且生成core文件 -
SIGTERM
终止进程 软件终止信号 -
SIGINTERRUPT
允许信号中断系统调用。
4、用awk查看tcp连接处于TIMEOUT的连接个数
netstat -tan | awk '/TIMEOUT/{state[$NF]++}END{for(i in state) { print i,state[i]}}'