在Linux系統中,具對進(jìn)行系統日志是日志一種非常重要的資源,它可以幫助我們了解系統的分析運行狀態(tài),發(fā)現和解決系統問(wèn)題,障排本文將介紹如何使用Linux命令行工具對系統日志進(jìn)行分析和故障排查。何使和故
1、命令查看實(shí)時(shí)日志
要查看實(shí)時(shí)日志,行工系統(tong)可以使用tail命令,具對進(jìn)行查看(kan)系統日志文件/var/log/syslog的日志最后10行:
tail n 10 /var/log/syslog2、查看歷史日志
要查看歷(′ω`)史日志,分析可以使用grep命令,障排查找包含&(′?`)quot;error"關(guān)鍵字的何使和故日志:
g(′?_?`)rep "err??or" /var/log/syslog
1、使用awk命令進(jìn)行格式化輸出
aw??k是一個(gè)非常強大的文本處理工具,可以用來(lái)分析日志數據,提取日志中的時(shí)間戳和日志級別:
awk '{ pr(′ω`*)int $4, $5}' /var/log/syslog2、使用sort和uniq命令進(jìn)(′?`)行排序和去重
sort命令可以對文本文件進(jìn)(′▽?zhuān)?行排序,uniq命令可以去除重(zhong)復的行,對日志文件按時(shí)間戳排序:
sort /var/log/syslog | uniq c
1、查找異常進(jìn)程
要查找異常進(jìn)程,可以使用ps命令結合awk命令,查找CPU占用┐(′?`)┌率超過(guò)90%的進(jìn)程:
ps aux | awk '$3 > 90' | sort k 10nr | hea??d n 10
2、查找異常用(′▽?zhuān)?)戶(hù)登錄
要查找異常用戶(hù)登錄,??可以使用last命令,查找最近一次非正常退出的登錄用戶(hù):
lastb?? | gre(╬?益?)p 'reboot' | awk '{ print $1, $2, $3, $4, $5}' | sort u k 1,1n k 2,2n k 3,3n k 4,4n k 5,5n | tail n 101、dmesg:查看內核消息緩沖區的內容,主要用于硬件故障排查。
2、journalctl:查看系統日志,支持實(shí)時(shí)查看和歷??史查詢(xún)。
3、netstat??:查看網(wǎng)絡(luò )連接狀態(tài),包括TCP、UDP、UNIX套接字等。
4、ss:查看網(wǎng)絡(luò )連接??狀態(tài),類(lèi)似于netstat,但功能更強大。
A1:可以使用logrotate工具定期清理系統日志,首先創(chuàng )建一個(gè)配置文件,例如/etc/logrota??te.d/syslog,內容如下:
/var/log/sy??slog { daily # 每天執行一次日志輪換 rotate 7 # 保留(╯°□°)╯7份日志備份 compress # 壓縮備份文件 mi??ssingok # 如果日志文件不存在,不報錯并繼(′?_?`)續執行下一個(gè)任務(wù) not(′?_?`)ifempty # 如果日志文件為空,不進(jìn)行備份和壓縮操作 sharedscripts # 同時(shí)運行postrotate和prerotate腳本 postrotate /bin/kill HUP cat /var/run/syslogd.pid 2> /dev/null 2> /dev/null || true # 向syslogd進(jìn)程發(fā)送HUP信號,讓其重新打開(kāi)日??志文件進(jìn)?行寫(xiě)入操作 endscript}將(′ω`*)這個(gè)配置文件添加到crontab中,使其每天自動(dòng)執行一次:
crontab e && echo "0 0 * * * /usr/sbin/logrotate /etc/logrotate.conf&??quot; >&g??t??; /etc/crontab && exit 0
A2:可以通過(guò)修改內核配置文件來(lái)實(shí)現,首先找到內核模塊的配??置文件,通常位于/etc/( ???)modprobe.d/目錄下,例如aliases.conf,然后在文件中添加一行配置,指定內核模塊的路徑和參數:
options modules path=/pa??th/to/your/kernel_modu(′?_?`)les auto_install=yes enable=yes recompile=yes force=ヽ(′?`)ノyes quiet=yes permanenent=yes modpr???obe.blacklist=nopanic nosplash nomodeset?? xhci(???)_pci idle=poll ignore_msi ignore_msix rcu_gp_freq_max=1400 rcu_gp??_freq_min=850 rcu_gp_freq_sync=650 rcu_gp_qヽ(′▽?zhuān)?ノuiet_devfail=1 rcu_preempt_freq=1400 rcu_use_default=no apm=power_off nolヽ(′▽?zhuān)?ノapic maxcpus=4 tsc=reliable nohpet nohwp iommu=on vfiopci.ids=10de:1ヽ(′ー`)ノc82,10de:1cb4,10de:0bea vfiopci.dscr_verify=0 vfiopci.allow_unsafe_interruヾ(′?`)?pts=1 vfiopci.mdev_support=1 vfiopci.coherent_pools=1 vfiopci.disable_legacy=1 vfiopci.ena(◎_◎;)ble_fbsd_irqfd=1 vfiopci.force_vga=on vfiopci.disable_s3=1 vfiopci.disable_s2=1 vfiopci.disable_s1=1 vfiopci.no_shareable_msi=1 vfiopci.disable_devid=1 vfiopci.dis???able_puregold=1 vfiopci.disable_reset_on??_oops=1 vfiopci.enable_acceleration=1 vfiopci.enable_autoconfig=1 vfiopci.enable_runtime_msi=1 vfiopci.enable_locked_msi=1 vfiopci.enable_executing_msi=1 vfiopci.enable_distributed_tracing=1 vfiopci.enable_perfm(′?_?`)on=1 vfiopci.enable_debugfs=1 vfiopci.enable_dumpfile=1 vfiopci.enable_kfd=1 vfiopci.enable_irqfd=1 vfiopci.enable_nested="no" uaccess="load|store|read|write" ioeventfd="on" pciehp="on" pciehp_atomic="on&quo??t; pciehp_coherent=&quo(╯°□°)╯︵ ┻━┻t;on" pciehp_mmap="on" pciehp_noacp???i="o(?⊿?)n" pciehp_nonnative="on" pciehp_r(╯°□°)╯︵ ┻━┻dma="on" pciehp_vend( ???)or="on" drm_kms_ヽ(′▽?zhuān)?ノhelper="uvm" drm_v??mmouse="off" drm_debugfs=&qu(╯°□°)╯ot;off" drm_mm.??" />; options drivers allowdelayedroot?? = yes module +ipmi +serio +bluetooth +bnep +ath3k +ath9k +ath10k +usbhid(?????) +hid +cdc +rfkill +rtsx +extcon +joyde??v +input +mtdev +spidev +videobuf2kcore +i2c rhndev "module" "drivers" "module*" "??;/proc/acpi/bus/*" /proc/ac(???)pi/devices/* "class*/*:/??*" "/sys/*:*" "/class/*:" "/device/*:" "/initrd/*" /etc/modprobe.d/* /bin/true; savedefault; silent; modules." > /etc/modprobe.conf && exit 0; echo "Loading kerneヽ(′ー`)ノl mod(′?_?`)ules on boot..." && exit 0; }' >> /etc/rc.local && exit 0; crontab e && echo "@??reboot /usr/bin/logger "Kernel modules loaded at $(date)"" >> /etc/crontab && exit 0; echo "Kernel modules will be loade??d at next boot." && exit 0; fi; done; }' >> /etc/rc.local && exit 0; echo(╬ ò﹏ó) "(╯‵□′)╯;Kernel mod(?????)ules will be loaded at next boot." && exit 0; fi; done; }' >> /et(???)c/rc.local && exit 0; echo "Kernel modules will be loaded at next boot.??" &&??amp; exit 0; fi;?? done; }' >> /etc/rc.local && exit 0; echo "Kernel modules will be loaded at next boot." &&a(°□°)mp; exit 0; fi; done; }' >> /etc/rc.local &&
電話(huà):17792598618
地 址:上海市閔行66號