*1、 systemd查看日誌文件有隱藏該如何處理?
答:Centos7.x使用systemd提供的journalctl日誌管理
a.基本上,系統由systemd所管理,那所有經由systemd啓動的服務()如果在啓動或結束的過程中發生了一些問題或是正常的信息),就會將該信息由systemd-journald.service以二進制的方式記錄下來,之後再將信息發個rsyslog.service作進一步的記載。
b.systemd-journald.service的記錄主要都放置與內存中,因此在存取方面效能比較好。我們也能透過journalctl以及systemctl status unit.service 來查看各個不同服務的日誌。
c.7個級別的含義爲
serverity-level table(服務級別列表)
數字代碼 | 服務級別 | 描述 |
---|---|---|
0 | emerg | 系統不可用 |
1 | alert | 必須馬上採取救援行動 |
2 | crit | 嚴重錯誤信息 |
3 | error | 錯誤信息 |
4 | warning | 警告信息 |
5 | notice | 普通但是值得注意的信息 |
6 | info | 一般信息 |
7 | debug | 調試信息 |
**日誌的分析是很重要的!你可以自行vim或者是journalctl進入日誌去查看相關信息。Centos提供了logwatch這個日誌分析程式。
k.yum install logwatch.noarch –y
**
systemd2、 自己動手寫一個systemd的配置文件, 讓nginx服務可以開機啓動
答:[root@localhost ~]# cd /etc/systemd/system
[root@localhost system]# vi nginx.service
[Unit]
Description=nginx - high performance web server
Documentation=http://nginx.org/en/docs/
After=network.target remote-fs.target nss-lookup.target
[Service]
Type=forking
PIDFile=/usr/local/nginx/logs/nginx.pid
ExecStartPre=/usr/local/nginx/sbin/nginx
ExecStart=/usr/local/nginx/sbin/nginx
ExecReload=/usr/local/nginx/sbin/nginx -s reload
ExecStop=/usr/local/nginx/sbin/nginx -s stop
PrivateTmp=true
[Install]
WantedBy=multi-user.target
3、 SIGHUP、SIGQUIT、SIGTERM、SIGINTERRUPT的區別
答:通過命令man 7 signal來查看每個信號的含義。
SIGHUP 控制終端關閉或控制進程退出時,終端會話內的子進程與控制進程的子進程都會收到這樣的信號,系統對SIGHUP信號的默認處理是終止收到該信號的進程。所以若程序中沒有捕捉該信號,當收到該信號時,進程就會退出。
SIGQUIT 和SIGINT類似, 但由QUIT字符(通常是Ctrl-\ )來控制. 進程在因收到SIGQUIT退出時會產生core文件, 類似於一個程序錯誤信號。
SIGTERM程序結束(terminate)信號, 與SIGKILL不同的是該信號可以被阻塞和處理。通常用來要求程序自己正常退出,shell命令kill缺省產生這個信號。如果進程終止不了,我們纔會嘗試SIGKILL,就是我們有時使用kill -9 pid來強行殺死進程。
SIGINTERRUPT 程序終止(interrupt)信號, 在用戶鍵入INTR字符(通常是Ctrl-C)時發出,用於通知前臺進程組終止進程。
4、用awk查看tcp連接處於TIMEOUT的連接個數
答:netstat -ta | awk '/^tcp\>/{if ($NF == "LISTEN") sum++}END {print sum}'