根據(jù)這些可以查看系統(tǒng)調(diào)用的完整性,比如說(shuō)服務(wù)器連接數(shù)一直漲,說(shuō)明fd沒(méi)有close,close調(diào)用在上邊有缺失
在江川等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強(qiáng)發(fā)展的系統(tǒng)性、市場(chǎng)前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務(wù)理念,為客戶提供成都做網(wǎng)站、網(wǎng)站制作 網(wǎng)站設(shè)計(jì)制作按需制作網(wǎng)站,公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站建設(shè),品牌網(wǎng)站制作,成都營(yíng)銷網(wǎng)站建設(shè),外貿(mào)營(yíng)銷網(wǎng)站建設(shè),江川網(wǎng)站建設(shè)費(fèi)用合理。
strace -t -T -v -f -p 16705 -Te write 只看write系統(tǒng)調(diào)用
sudo gcore xxpid 生成dump文件
sudo dlv core binfile core.xxxx 調(diào)試coredump文件,查看調(diào)用棧、goroutines
查看系統(tǒng)級(jí)別日志 /var/log/messages
messages 日志是核心系統(tǒng)日志文件。它包含了系統(tǒng)啟動(dòng)時(shí)的引導(dǎo)消息,以及系統(tǒng)運(yùn)行時(shí)的其他狀態(tài)消息。IO 錯(cuò)誤、網(wǎng)絡(luò)錯(cuò)誤和其他系統(tǒng)錯(cuò)誤都會(huì)記錄到這個(gè)文件中。其他信息,比如某個(gè)人的身份切換為 root,也在這里列出。如果服務(wù)正在運(yùn)行,比如 DHCP 服務(wù)器,您可以在 messages 文件中觀察它的活動(dòng)。通常,/var/log/messages 是您在做故障診斷時(shí)首先要查看的文件。
tcpdump -i lo -nnA 'port 7076' and 'tcp[13] 4 != 0 ' 抓rst包,發(fā)送給7076端口或者是7076端口發(fā)出去的
mac osx系統(tǒng):sudo tcpdump -i lo0 -nnA 'port 3000'
hexdump: 查看文件的內(nèi)容,比如二進(jìn)制文件中包含的某些字符串,通常用來(lái)調(diào)試驅(qū)動(dòng)用
描述
我們以event1為例,當(dāng)我們insmod掛載了鍵盤(pán)驅(qū)動(dòng)后,出現(xiàn)一個(gè)event1設(shè)備,
此時(shí)沒(méi)有按鍵按下,所以event1里面的數(shù)據(jù)是沒(méi)有的,那么數(shù)據(jù)又是從來(lái)哪里來(lái)?
通過(guò)鍵盤(pán)驅(qū)動(dòng)的read函數(shù),若有按鍵按下,就會(huì)上傳按鍵數(shù)據(jù)給用戶層hexdump
因?yàn)殒I盤(pán)驅(qū)動(dòng)的input_handler 是:evdev_handler
所以鍵盤(pán)驅(qū)動(dòng)的read函數(shù)是: evdev_handler-evdev_fops-evdev_read
進(jìn)入evdev_read()函數(shù),如下圖所示:
evdev_event_to_user()這個(gè)函數(shù)從字面上來(lái)看,顯然就是用來(lái)上傳給用戶層的函數(shù),其中buffer是函數(shù)參數(shù),指向用戶層,所以數(shù)據(jù)就是event.
我們來(lái)看看event的結(jié)構(gòu)體:input_event
把 time里的成員展開(kāi)如下:
所以我們hexdump調(diào)試任何輸入子系統(tǒng)event XX驅(qū)動(dòng)時(shí),有信息就會(huì)打印上面數(shù)據(jù)
1.調(diào)試鍵盤(pán)驅(qū)動(dòng)
以按開(kāi)發(fā)板的按鍵 KEY_L,為例(因?yàn)閿?shù)據(jù)是從低到高打印的,所以數(shù)據(jù)是反的):
一、查看網(wǎng)絡(luò)配置
確保網(wǎng)絡(luò)配置的正確性及網(wǎng)絡(luò)連接的暢通是Linux系統(tǒng)作為服務(wù)器應(yīng)用的基礎(chǔ),查看及測(cè)試網(wǎng)絡(luò)配置是管理Linux網(wǎng)絡(luò)服務(wù)的第一步。
1.ifconfig——查看網(wǎng)絡(luò)配置
1) 查看所有活動(dòng)網(wǎng)絡(luò)接口的信息
執(zhí)行 ifconfig 或ip addr或ip a命令,都可以顯示當(dāng)前主機(jī)中已啟用(活動(dòng))的網(wǎng)絡(luò)接口信息。、
2) 查看指定網(wǎng)絡(luò)接口信息
格式:ifconfig 網(wǎng)絡(luò)接口名
可以通過(guò)TX、RX等信息了解到通過(guò)該網(wǎng)絡(luò)接口發(fā)送和接收的數(shù)據(jù)包個(gè)數(shù),流量等跟多屬性。
2.hostname命令
在Linux系統(tǒng)中,相當(dāng)一部分網(wǎng)絡(luò)服務(wù)都會(huì)通過(guò)主機(jī)名來(lái)識(shí)別本機(jī),如果主機(jī)名配置不當(dāng),可能會(huì)導(dǎo)致程序功能出現(xiàn)故障。
1) 查看主機(jī)名
使用hostname命令就可以查看當(dāng)前主機(jī)的主機(jī)名,不添加任何選項(xiàng)參數(shù)。
2) 臨時(shí)更改主機(jī)名
hostname NewName
注:這種方法只是臨時(shí)的更改主機(jī)名,重啟后將失效。
3) 永久更改主機(jī)名
a. 修改配置文件
RHEL6和7的配置文件存放路徑不相同,修改配置文件中的主機(jī)名,重啟就可永久更改主機(jī)名。
RHEL6主機(jī)名配置文件路徑為:/etc/sysconfig/network
RHEL7主機(jī)名配置文件路徑為:/etc/hostname
示例
b. 使用命令修改(這種方法只適用于RHEL7或者CentOS7之后)
命令格式:
使用該命令更改后,更改后的主機(jī)名就自動(dòng)寫(xiě)入了配置文件中,所以可以永久更改主機(jī)名,其實(shí)就是修改了配置文件。
3.route命令
直接執(zhí)行route命令可以查看當(dāng)前主機(jī)中的路由表信息,若結(jié)合“-n”選項(xiàng)使用,可以將路由記錄中的地址顯示為數(shù)字形式,這可以跳過(guò)解析主機(jī)名的過(guò)程,在路由表?xiàng)l目較多的情況下能夠加快執(zhí)行速度。
Destination列對(duì)應(yīng)的是目標(biāo)網(wǎng)段的地址,Gateway列對(duì)應(yīng)的是嚇一跳路由器的地址,Iface列對(duì)應(yīng)的是發(fā)送數(shù)據(jù)的網(wǎng)絡(luò)接口。當(dāng)目標(biāo)網(wǎng)段為“default”是,表示此行是默認(rèn)網(wǎng)關(guān)記錄,當(dāng)嚇一跳為“*”是,表示目標(biāo)網(wǎng)段是與本機(jī)直接相連的。
4.netstat命令——查看系統(tǒng)的網(wǎng)絡(luò)連接狀態(tài)等
netstat命令是了解網(wǎng)絡(luò)狀態(tài)及排除網(wǎng)絡(luò)服務(wù)故障的有效工具。
常用選項(xiàng):
-a:顯示所有活動(dòng)連接(包括監(jiān)聽(tīng)、非監(jiān)聽(tīng)狀態(tài)的服務(wù)端口)
-n:以數(shù)字形式顯示
-p:顯示相關(guān)的進(jìn)程信息
-t:查看 TCP 協(xié)議相關(guān)信息
-u:查看UDP協(xié)議相關(guān)信息
-r:顯示路由表信息
-l:顯示處于監(jiān)聽(tīng)(listening)狀態(tài)的網(wǎng)絡(luò)連接及端口信息
通常使用“-anput”組合選項(xiàng),結(jié)合管道使用“grep”命令,來(lái)查看一些服務(wù)的端口是否開(kāi)啟。
示例:
Tcp21為ftp服務(wù)的端口
二、測(cè)試網(wǎng)絡(luò)連接
1.ping命令——測(cè)試網(wǎng)絡(luò)連通性
常用選項(xiàng):
-c完成次數(shù):設(shè)置完成要求回應(yīng)的次數(shù)
-i間隔秒數(shù):指定收發(fā)信息的間隔時(shí)間
-q:不顯示指令執(zhí)行過(guò)程,開(kāi)頭和結(jié)尾的相關(guān)信息除外
-s數(shù)據(jù)包大小:設(shè)置數(shù)據(jù)包的大小
-t存活數(shù)值:設(shè)置存活數(shù)值TTL的大小
-v:詳細(xì)顯示指令的執(zhí)行過(guò)程
若返回“Destination Host Unreachable”的反饋信息,則表示目標(biāo)主機(jī)不可達(dá),可能目標(biāo)地址不存在或主機(jī)已關(guān)閉;返回“Network is unreachable”的反饋信息,則表示沒(méi)有可用的路由記錄(如默認(rèn)網(wǎng)關(guān)),無(wú)法到達(dá)目標(biāo)主機(jī)所在的網(wǎng)絡(luò);返回“Request timeout”的反饋信息,表示與目標(biāo)主機(jī)間的連接超時(shí)(數(shù)據(jù)包緩慢或丟失),若有嚴(yán)格的防火墻限制,也可能返回此信息。
2.traceroute命令——跟蹤數(shù)據(jù)包的路由途徑
使用traceroute命令可以測(cè)試從當(dāng)前主機(jī)到目的主機(jī)之間經(jīng)過(guò)的網(wǎng)絡(luò)節(jié)點(diǎn),并顯示各中間結(jié)點(diǎn)的連接狀態(tài)(響應(yīng)時(shí)間)。對(duì)于無(wú)法響應(yīng)的節(jié)點(diǎn),連接狀態(tài)將顯示為“*”。
示例:traceroute IP_ADDR
在網(wǎng)絡(luò)測(cè)試與排錯(cuò)的過(guò)程中,通常會(huì)先使用ping命令測(cè)試與主機(jī)的網(wǎng)絡(luò)連接,如果發(fā)現(xiàn)網(wǎng)絡(luò)有故障,再使用traceroute命令跟蹤查看是在哪個(gè)中間結(jié)點(diǎn)存在故障。
3.nslookup命令——測(cè)試DNS域名解析
nslookup是用來(lái)測(cè)試(DNS)域名解析的專用工具。(DNS服務(wù)后面再詳細(xì)講解,通俗的說(shuō)就是將域名解析為ip地址的一個(gè)服務(wù))
示例:nslookup
若成功反饋要查詢域名的IP地址,則表示域名解析沒(méi)有問(wèn)題;若出現(xiàn)“...... no servers could be reached”的信息,表示不能連接到指定的DNS服務(wù)器;若出現(xiàn)“...... cant’t find xxx.yyy.zzz:NXDOMAIN”的信息,表示要查詢的域名不存在。
三、設(shè)置網(wǎng)絡(luò)地址參數(shù)
設(shè)置網(wǎng)絡(luò)參數(shù)的方法:
? 臨時(shí)配置 —— 使用命令調(diào)整網(wǎng)絡(luò)參數(shù)簡(jiǎn)單、快速,可直接修改運(yùn)行中的網(wǎng)絡(luò)參數(shù)
一般只適合在調(diào)試網(wǎng)絡(luò)的過(guò)程中使用
系統(tǒng)重啟以后,所做的修改將會(huì)失效
? 永久配置 —— 通過(guò)配置文件修改網(wǎng)絡(luò)參數(shù)修改各項(xiàng)網(wǎng)絡(luò)參數(shù)的配置文件
適合對(duì)服務(wù)器設(shè)置固定參數(shù)時(shí)使用
需要重載網(wǎng)絡(luò)服務(wù)或者重啟以后才會(huì)生效
1.臨時(shí)配置——使用網(wǎng)絡(luò)配置命令(注:RHEL6中網(wǎng)絡(luò)接口的名稱為eth,RHEL7中為ens)
1)使用ifconfig命令修改網(wǎng)卡的地址、狀態(tài)
ifconfig命令不僅可以用于查看網(wǎng)卡配置,還可以修改網(wǎng)卡的ip地址,子網(wǎng)掩碼,也可以綁定網(wǎng)絡(luò)接口、激活或停用網(wǎng)絡(luò)接口
a. 修改網(wǎng)卡的ip地址(臨時(shí)修改)
命令格式:
示例:
b. 禁用或者重新激活網(wǎng)卡
命令格式:
示例:
c. 設(shè)置虛擬網(wǎng)絡(luò)接口(相當(dāng)于一塊網(wǎng)卡配置多個(gè)IP地址)
命令格式:
示例:
可以根據(jù)需要添加更多的虛擬接口,如“eth0:1”“eth0:2”等
2)使用route命令添加、刪除靜態(tài)路由記錄
? 刪除路由表中的默認(rèn)網(wǎng)關(guān)記錄命令格式:route del default gw IP地址
? 向路由表中添加默認(rèn)網(wǎng)關(guān)記錄命令格式:route add default gw IP地址
? 添加到指定網(wǎng)段的路由記錄命令格式:route add -net 網(wǎng)段地址 gw IP地址
? 刪除到指定網(wǎng)段的路由記錄命令格式:router del -net 網(wǎng)段地址
2.永久配置——修改網(wǎng)絡(luò)配置文件
1)網(wǎng)絡(luò)接口配置文件
網(wǎng)絡(luò)接口的配置文件默認(rèn)位于目錄“/etc/sysconfig/network-scripts/”中,文件名格式為:“ifcfg-XXX”,其中“XXX”是網(wǎng)絡(luò)接口的名稱。例如:RHEL6中網(wǎng)卡eth0的配置文件是“ifcfg-eth0”,而RHEL7中網(wǎng)卡ens33的配置文件是“ifcfg-ens33”。
在網(wǎng)卡的配置文件中,可以看到靜態(tài)IP地址的部分內(nèi)容如下圖所示:
上述個(gè)配置項(xiàng)的含義及作用:(圖示為RHEL6中的配置文件,7中也差不多,換湯不換藥,修改的都差不多)
? DEVICE:設(shè)置網(wǎng)絡(luò)接口的名稱ONBOOT:設(shè)置網(wǎng)絡(luò)接口是否在Linux系統(tǒng)啟動(dòng)時(shí)激活BOOTPROTO:設(shè)置網(wǎng)絡(luò)接口的配置方式,值為static時(shí)表示使用靜態(tài)ip地址,為dhcp時(shí)表示通過(guò)dhcp的方式動(dòng)態(tài)獲取ip地址IPADDR:設(shè)置網(wǎng)絡(luò)接口的ip地址NETMASK:設(shè)置網(wǎng)絡(luò)接口的子網(wǎng)掩碼GATEWAY:設(shè)置網(wǎng)絡(luò)接口的默認(rèn)網(wǎng)關(guān)地址2)重啟 network 網(wǎng)絡(luò)服務(wù)
當(dāng)修改了網(wǎng)絡(luò)接口的配置文件以后,若要使新的配置生效,可以重啟network服務(wù)或者重啟主機(jī)或者禁用、啟用網(wǎng)絡(luò)接口。
示例:
? RHEL6中重啟network服務(wù):service network restartRHEL7中重啟network服務(wù):systemctl restart network注:這是我在做實(shí)驗(yàn)時(shí)候的一個(gè)經(jīng)驗(yàn):RHEL6修改完網(wǎng)卡配置重啟后,ip地址仍然沒(méi)有改過(guò)來(lái),這時(shí)候我們經(jīng)常會(huì)刪除“/etc/udev/rules.d/70-persistent-net.rules”這個(gè)文件。RHEL7不用管,RHEL7特別好改,RHEL6改的時(shí)候特別難受。(個(gè)人提示,不求認(rèn)同)
3)域名解析配置文件
a.指定為本機(jī)提供DNS解析的服務(wù)器地址
/etc/resolv.conf文件中記錄了本機(jī)默認(rèn)使用的DNS服務(wù)器的地址信息,對(duì)該文件所做的修改將會(huì)立刻生效。Linux系統(tǒng)中最多可以指定3個(gè)(第3個(gè)以后將被忽略)不同的DNS服務(wù)器地址,優(yōu)先使用第1個(gè)DNS服務(wù)器。
示例:
其中“search localdomain”用來(lái)設(shè)置默認(rèn)的搜索域(域名后綴)。例如,當(dāng)訪問(wèn)主機(jī)“l(fā)ocalhost”時(shí),就相當(dāng)于訪問(wèn)“l(fā)ocalhost.localdomain”。
b.本地主機(jī)映射文件
/etc/hosts文件中記錄著一份主機(jī)名與ip地址的映射關(guān)系表,一般用來(lái)保存經(jīng)常訪問(wèn)的主機(jī)信息。當(dāng)訪問(wèn)一個(gè)未知的域名時(shí),先查找該文件中是否有相應(yīng)的映射記錄,如果找不到在去向DNS服務(wù)器查詢。
hosts 文件和 DNS 服務(wù)器的比較
? 默認(rèn)情況下,系統(tǒng)首先從 hosts 文件查找解析記錄hosts 文件只對(duì)當(dāng)前的主機(jī)有效hosts 文件可減少 DNS 查詢過(guò)程,從而加快訪問(wèn)速度
lsof全名list opened files,也就是列舉系統(tǒng)中已經(jīng)被打開(kāi)的文件。我們都知道,linux環(huán)境中,任何事物都是文件,
設(shè)備是文件,目錄是文件,甚至sockets也是文件。所以,用好lsof命令,對(duì)日常的linux管理非常有幫助。
lsof是linux最常用的命令之一,通常的輸出格式為:
引用
常見(jiàn)包括如下幾個(gè)字段:更多的可見(jiàn)manual。
1、COMMAND
默認(rèn)以9個(gè)字符長(zhǎng)度顯示的命令名稱。可使用+c參數(shù)指定顯示的寬度,若+c后跟的參數(shù)為零,則顯示命令的全名
2、PID:進(jìn)程的ID號(hào)
3、PPID
父進(jìn)程的IP號(hào),默認(rèn)不顯示,當(dāng)使用-R參數(shù)可打開(kāi)。
4、PGID
進(jìn)程組的ID編號(hào),默認(rèn)也不會(huì)顯示,當(dāng)使用-g參數(shù)時(shí)可打開(kāi)。
5、USER
命令的執(zhí)行UID或系統(tǒng)中登陸的用戶名稱。默認(rèn)顯示為用戶名,當(dāng)使用-l參數(shù)時(shí),可顯示UID。
6、FD
是文件的File Descriptor number,或者如下的內(nèi)容:
(這里很難翻譯對(duì)應(yīng)的意思,保留英文)
引用
文件的File Descriptor number顯示模式有:
引用
7、TYPE
引用
IPv4 IPv4的包;
IPv6 使用IPv6格式的包,即使地址是IPv4的,也會(huì)顯示為IPv6,而映射到IPv6的地址;
DIR 目錄
LINK 鏈接文件
詳情請(qǐng)看manual中更多的注釋。
8、DEVICE
使用character special、block special表示的設(shè)備號(hào)
9、SIZE
文件的大小,如果不能用大小表示的,會(huì)留空。使用-s參數(shù)控制。
10、NODE
本地文件的node碼,或者協(xié)議,如TCP等
11、NAME
掛載點(diǎn)和文件的全路徑(鏈接會(huì)被解析為實(shí)際路徑),或者連接雙方的地址和端口、狀態(tài)等
常用示例:
1.顯示開(kāi)啟文件/home/oracle/10.2.0/db_1/bin/tnslsnr的進(jìn)程
2.知道22端口現(xiàn)在運(yùn)行什么程序
3.顯示init進(jìn)程現(xiàn)在打開(kāi)的文件
6.依照文件夾/home/oracle來(lái)搜尋,但不會(huì)打開(kāi)子目錄,用來(lái)顯示目錄下被進(jìn)程開(kāi)啟的文件
顯示內(nèi)容太多了,不顯示了
lsof -n 不將IP轉(zhuǎn)換為hostname,缺省是不加上-n參數(shù)
關(guān)注:
進(jìn)程調(diào)試命令:truss、strace和ltrace
進(jìn)程無(wú)法啟動(dòng),軟件運(yùn)行速度突然變慢,程序的"SegmentFault"等等都是讓每個(gè)Unix系統(tǒng)用戶頭痛的問(wèn)題,而這些問(wèn)題都可以通過(guò)使用truss、strace和ltrace這三個(gè)常用的調(diào)試工具來(lái)快速診斷軟件的"疑難雜癥"。
分享題目:linux調(diào)試命令是 linux調(diào)試模式
文章轉(zhuǎn)載:http://m.newbst.com/article14/doghede.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供做網(wǎng)站、網(wǎng)站建設(shè)、服務(wù)器托管、營(yíng)銷型網(wǎng)站建設(shè)、網(wǎng)站營(yíng)銷、網(wǎng)站內(nèi)鏈
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)