10.34-10.35 系統日誌和screen
日誌記錄了每天系統發生的各種各樣的事,可以通過查看日誌檢查錯誤發生的原因。或者受到攻擊時留下的痕迹。
/var/log/messages 是核心的系統日誌,包含了啟動訊息,以及系統運行時的其他狀態,以及使用者安裝的軟體的日誌也會在這裡。通常,/var/log/messages是系統發生故障時首先要查看的檔案。
/var/log/messages是rsyslogd這個守護進程啟動的,守護進程的設定檔在/etc/rsyslogd.conf,這個檔案定義了日誌的層級。
dmesg 這個命令顯示系統的啟動資訊,在開機時啟動,並儲存在記憶體中。如果某個硬體有問題,可以在這裡看到。
last用來查看登入linux的系統資訊。
last命令實際讀取的是/var/log/wtmp檔案,但這個檔案不能直接用cat,vi,vim,head,tail查看。
[root@cent02 tmp]# last|tailroot pts/1 192.168.30.1 Tue Oct 24 09:30 - 09:49 (00:18) root pts/0 192.168.30.1 Mon Oct 23 23:37 - down (10:46) root tty1 Mon Oct 23 22:07 - 10:23 (12:16) reboot system boot 3.10.0-514.el7.x Mon Oct 23 22:06 - 10:23 (12:17) root tty1 Tue Oct 24 05:36 - crash (-7:-29) reboot system boot 3.10.0-514.el7.x Tue Oct 24 05:35 - 10:23 (04:48) root tty1 Tue Oct 24 05:28 - crash (00:07) reboot system boot 3.10.0-514.el7.x Tue Oct 24 05:27 - 10:23 (04:56)
/var/log/secure記錄的也是和登入有關的資訊,如ssh登入失敗的資訊在這裡都可以記錄到。
很多錯誤資訊都不會反應在螢幕上,而是寫在了日誌裡,所以使用常用軟體時也應該有查看日誌的習慣。如apache,myslq,php等時。 xargs和exec
xagrs可以把前面的輸出作為後面的輸入,所以可以把兩步才能完成的任務一步就完成。他常常和find命令一起使用
find . -mtime +10 |xargs rm //刪除最後修改時間大於10天的檔案//下面批量修改尾碼名[root@cent01 test]# ls 1.txt 2.txt 3.txt 4.txt 5.txt[root@cent01 test]# ls *.txt|xargs -n1 -i{} mv {} {}_bak //xargs -n1 -i{}類似於for迴圈,-n1表示對對象逐個處理,-i{}表示用{}取代前面的對象,mv{} {}_bak相當於mv 1.txt 1.txt_bak[root@cent01 test]# ls1.txt_bak 2.txt_bak 3.txt_bak 4.txt_bak 5.txt_bak
也可以和-exec配合使用。
find . -mtime +10 -exec rm -rf {} \; //這裡的{}也表示用{}取代前面的對象[root@cent01 test]# find ./*_bak -exec mv {} {}_bak \; //-exec以;為終止的標誌。所以前面需要加上轉義符\,同時轉義符與前面要有一個空格。[root@cent01 test]# ls1.txt_bak_bak 2.txt_bak_bak 3.txt_bak_bak 4.txt_bak_bak 5.txt_bak_bak
screen
有時候一個任務要執行幾個小時,或者幾天,如果中途斷網或者出現意外情況怎麼辦? 我們可以用兩種辦法來解決。
nohup
例如執行一個指令碼
nohup sh /uer/local/sbin/sleep.sh & //雖然末尾直接加&也可以在後台運行,但是如果退出該終端,這個指令碼也會退出。如果前面加上了nohup就不會有這個問題。他的作用就是在目前的目錄下產生一個nohup檔案,放置進程意外中斷,並把輸出資訊記錄到nohup中。
screen
screen就是開啟一個新的終端,利用這個工具可以確保任務不會因為退出某個終端而終止。
[root@cent01 test]# screen //輸入命令screen會開啟一個終端,ctrl+a然後ctrl+d會退出該終端。[detached from 17799.pts-1.cent01][root@cent01 test]# screen[detached from 17834.pts-1.cent01][root@cent01 test]# screen -ls //列出有哪些screen終端以及他們的編號There are screens on: 17834.pts-1.cent01 (Detached) 17799.pts-1.cent01 (Detached) 14030.pts-1.cent01 (Detached) 13942.pts-1.cent01 (Detached)4 Sockets in /var/run/screen/S-root.[root@cent01 test]# screen -r 13942 //進入screen 13942[root@cent01 test]# screen -S "abc" //使用-S為一個screen終端命名,避免弄不清哪個終端是什麼作用。[detached from 17928.abc][root@cent01 test]# screen -lsThere are screens on: 17928.abc (Detached) 17834.pts-1.cent01 (Detached) 17799.pts-1.cent01 (Detached) 14030.pts-1.cent01 (Detached) 13942.pts-1.cent01 (Detached)5 Sockets in /var/run/screen/S-root.