版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
2025年高頻linux工程師的面試題及答案Linux系統(tǒng)中如何通過(guò)find命令遞歸刪除/var/log目錄下7天前、大小超過(guò)100MB且文件名包含"error"的日志文件?需結(jié)合mtime、size、name三個(gè)條件,命令為:`find/var/log-typef-name"error"-mtime+7-size+100M-execrm-f{}\;`。注意-mtime+7表示7天前(不包含第7天),-size+100M需區(qū)分大小寫(M為MB,m為MiB),-exec后接rm-f避免交互提示。簡(jiǎn)述使用awk統(tǒng)計(jì)Nginx訪問(wèn)日志中狀態(tài)碼為404的請(qǐng)求數(shù)量的方法(日志格式為$remote_addr$remote_user[$time_local]"$request"$status$body_bytes_sent)??赏ㄟ^(guò)awk提取第9列(假設(shè)$status為第9個(gè)字段),并過(guò)濾404:`awk'{if($9==404)count++}END{printcount}'access.log`。若日志字段分隔符非默認(rèn)空格(如包含帶空格的$request),需用-F指定分隔符,例如`-F'"'`分割引號(hào)內(nèi)的請(qǐng)求部分,再定位狀態(tài)碼位置。如何通過(guò)ps命令查看所有用戶的Java進(jìn)程,并顯示完整命令行參數(shù)?使用`ps-ef|grepjava`可列出所有用戶的Java進(jìn)程,但可能包含grep自身。更準(zhǔn)確的方式是`psaux|grep-vgrep|grepjava`,或直接用`pgrep-lfjava`(-l顯示進(jìn)程名,-f顯示完整命令行)。若需格式化輸出,可用`ps-eopid,ppid,user,comm,args|grepjava`,其中args字段顯示完整參數(shù)。解釋chmod6755file命令的含義,并說(shuō)明setuid位的作用。6755中,前導(dǎo)6表示特殊權(quán)限(4=setuid,2=setgid,1=sticky),后三位為用戶、組、其他用戶的權(quán)限。6755即setuid(4)+setgid(2)=6,用戶權(quán)限r(nóng)wx(7),組權(quán)限r(nóng)-x(5),其他用戶r-x(5)。setuid位使程序執(zhí)行時(shí)擁有文件所有者的權(quán)限(如passwd命令修改/etc/shadow需root權(quán)限),但需注意安全風(fēng)險(xiǎn)(避免SUID位用于非信任程序)。如何通過(guò)systemctl實(shí)現(xiàn)自定義服務(wù)在系統(tǒng)啟動(dòng)時(shí)自動(dòng)運(yùn)行,并查看最近一次啟動(dòng)的日志?啟用開機(jī)自啟:`systemctlenablemyservice.service`;查看最近啟動(dòng)日志:`systemctlstatusmyservice.service`(顯示簡(jiǎn)要狀態(tài))或`journalctl-umyservice.service-l--nor`(-l顯示完整日志,--nor避免分頁(yè))。若需查看實(shí)時(shí)日志,可添加-f參數(shù)(`journalctl-umyservice-f`)。編寫一個(gè)crontab任務(wù),要求每周一至周五的凌晨2點(diǎn)30分執(zhí)行/opt/cleanup.sh腳本,且腳本執(zhí)行時(shí)使用/usr/bin/bash解釋器。crontab-e添加:`3021-5/usr/bin/bash/opt/cleanup.sh`。注意crontab時(shí)間格式為“分時(shí)日月周”,周字段1-5對(duì)應(yīng)周一至周五(0和7均代表周日)。若腳本依賴環(huán)境變量,需在腳本開頭顯式設(shè)置(如exportPATH=/usr/local/sbin:/usr/local/bin:...),或在crontab中定義(如`PATH=/usr/local/bin:/usr/bin`)。如何通過(guò)ip命令配置eth0接口的靜態(tài)IP為00/24,網(wǎng)關(guān)為,并設(shè)置DNS為?臨時(shí)配置:`ipaddradd00/24deveth0`,`iplinkseteth0up`,`iprouteadddefaultviadeveth0`。持久化需修改網(wǎng)絡(luò)配置文件(如/etc/netplan/.yaml):```yamlnetwork:version:2ethernets:eth0:dhcp4:noaddresses:[00/24]routes:to:defaultvia:nameservers:addresses:[]```應(yīng)用配置:`netplanapply`。使用ss命令替代netstat查看所有處于LISTEN狀態(tài)的TCP端口,并顯示進(jìn)程信息。命令:`ss-tlnp`。其中-t表示TCP,-l表示監(jiān)聽狀態(tài),-n表示顯示數(shù)字地址(不解析域名),-p表示顯示關(guān)聯(lián)的進(jìn)程。輸出中Recv-Q/Send-Q表示接收/發(fā)送隊(duì)列長(zhǎng)度,LocalAddress:Port為監(jiān)聽地址端口,Process為占用端口的進(jìn)程(如:22對(duì)應(yīng)sshd)。如何通過(guò)firewalld開放8080/tcp端口,并設(shè)置永久生效?臨時(shí)開放:`firewall-cmd--add-port=8080/tcp`;永久生效需添加--permanent參數(shù)并重新加載:`firewall-cmd--permanent--add-port=8080/tcp`,`firewall-cmd--reload`。查看已開放端口:`firewall-cmd--list-ports`。若使用iptables,命令為`iptables-AINPUT-ptcp--dport8080-jACCEPT`,并通過(guò)`serviceiptablessave`持久化。簡(jiǎn)述使用vmstat分析系統(tǒng)性能時(shí),如何判斷CPU、內(nèi)存、IO是否存在瓶頸。vmstat15(每秒采樣5次)輸出中,procs的r列表示等待CPU的進(jìn)程數(shù)(正常<核數(shù)),b列表示等待IO的進(jìn)程數(shù)(高則IO瓶頸);memory的free(空閑內(nèi)存)、buff/cache(緩存)低可能內(nèi)存緊張;swap的si/so(換入/換出)非0表示內(nèi)存不足;io的bi/bo(塊設(shè)備輸入/輸出)高說(shuō)明磁盤IO繁忙;cpu的us(用戶態(tài))、sy(內(nèi)核態(tài))、id(空閑)、wa(等待IO)中,us+sy>80%可能CPU瓶頸,wa高則IO等待。如何調(diào)整進(jìn)程的優(yōu)先級(jí)?nice和renice的區(qū)別是什么?啟動(dòng)時(shí)設(shè)置優(yōu)先級(jí):`nice-n10./program`(-n后數(shù)值范圍-20到19,值越大優(yōu)先級(jí)越低);調(diào)整已運(yùn)行進(jìn)程:`renice10-p1234`(1234為PID)或`renice10-uusername`(調(diào)整用戶所有進(jìn)程)。nice用于新進(jìn)程,renice用于已有進(jìn)程,普通用戶只能提高優(yōu)先級(jí)(數(shù)值增大),root可降低(數(shù)值減?。?。解釋ext4和xfs文件系統(tǒng)的主要區(qū)別,生產(chǎn)環(huán)境中如何選擇?ext4是日志文件系統(tǒng),支持最大16TB文件和1EB卷,適合小文件和傳統(tǒng)場(chǎng)景;xfs支持更大文件(8EB)和卷(500EB),采用日志校驗(yàn)和元數(shù)據(jù)日志,高并發(fā)下性能更優(yōu)(尤其是大文件讀寫和目錄操作)。生產(chǎn)環(huán)境中,數(shù)據(jù)庫(kù)(如MySQL)、大數(shù)據(jù)存儲(chǔ)(HDFS)推薦xfs;小文件為主的場(chǎng)景(如Web服務(wù)器靜態(tài)資源)可考慮ext4。如何通過(guò)LVM將/var目錄擴(kuò)容50GB(現(xiàn)有卷組vg0有足夠空閑空間)?步驟:1.查看當(dāng)前卷信息:`lvdisplay/dev/vg0/var`;2.擴(kuò)容邏輯卷:`lvextend-L+50G/dev/vg0/var`(或`-l+100%FREE`使用全部空閑);3.調(diào)整文件系統(tǒng):若為ext4,用`resize2fs/dev/vg0/var`;若為xfs,用`xfs_growfs/dev/vg0/var`(需已掛載)。注意擴(kuò)容前備份數(shù)據(jù),檢查卷組空間(`vgdisplayvg0`查看FreePE)。配置fstab時(shí),為什么推薦使用UUID而非設(shè)備名?設(shè)備名(如sda1)可能因磁盤順序變化(如新增硬盤)導(dǎo)致識(shí)別錯(cuò)誤,UUID是文件系統(tǒng)的唯一標(biāo)識(shí)符,不受硬件順序影響。查看UUID:`blkid/dev/sda1`或`ls-l/dev/disk/by-uuid`。fstab中條目示例:`UUID=1234-abcd/varext4defaults02`(02表示不備份,開機(jī)第二檢查)。編寫一個(gè)Shell腳本,監(jiān)控/tmp目錄下的所有文件創(chuàng)建、刪除事件,并將事件時(shí)間、類型、文件名記錄到/var/log/tmp_monitor.log。需使用inotify-tools工具(需先安裝),腳本如下:```bash!/bin/bashinotifywait-m-r-ecreate,delete/tmp|whilereaddireventfile;doecho"$(date'+%Y-%m-%d%H:%M:%S'):$eventon$dir$file">>/var/log/tmp_monitor.logdone```其中-m表示持續(xù)監(jiān)控,-r遞歸子目錄,-e指定事件(create為創(chuàng)建,delete為刪除)。若需監(jiān)控修改事件,添加-emodify。Dockerfile中COPY和ADD的區(qū)別是什么?寫出一個(gè)多階段構(gòu)建的示例(前端項(xiàng)目,基于node:18構(gòu)建,最終鏡像使用nginx:alpine)。COPY僅復(fù)制本地文件到鏡像,ADD支持復(fù)制本地文件或解壓tar/zip包,且支持遠(yuǎn)程URL(不推薦,影響鏡像分層)。多階段構(gòu)建示例:```dockerfile構(gòu)建階段FROMnode:18ASbuilderWORKDIR/appCOPYpackage.json./RUNnpminstallCOPY..RUNnpmrunbuild生產(chǎn)階段FROMnginx:alpineCOPY--from=builder/app/dist/usr/share/nginx/htmlEXPOSE80CMD["nginx","-g","daemonoff;"]```多階段構(gòu)建減少最終鏡像大?。▋H包含構(gòu)建結(jié)果,不包含node環(huán)境)。Kubernetes中Deployment和StatefulSet的核心區(qū)別是什么?如何為StatefulSet的Pod指定穩(wěn)定的網(wǎng)絡(luò)標(biāo)識(shí)?Deployment用于無(wú)狀態(tài)應(yīng)用(如Web服務(wù)器),Pod無(wú)固定標(biāo)識(shí),滾動(dòng)更新時(shí)創(chuàng)建新Pod并刪除舊Pod;StatefulSet用于有狀態(tài)應(yīng)用(如數(shù)據(jù)庫(kù)),Pod有穩(wěn)定的ID(如web-0、web-1)、持久化存儲(chǔ)(通過(guò)PVC模板綁定)和穩(wěn)定的網(wǎng)絡(luò)標(biāo)識(shí)(基于無(wú)頭Service的DNS記錄,格式為<pod-name>.<service-name>.<namespace>.svc.cluster.local)。如何使用cgroup限制某進(jìn)程的CPU使用率不超過(guò)50%(假設(shè)CPU為4核)?通過(guò)systemd配置:創(chuàng)建/etc/systemd/system/limit-cpu.service,添加:```ini[Service]CPUQuota=50%...(其他服務(wù)配置)```重新加載systemd:`systemctldaemon-reload`,啟動(dòng)服務(wù)后生效?;蚴謩?dòng)創(chuàng)建cgroup:`cgcreate-gcpu:/mygroup`,`echo50000>/sys/fs/cgroup/cpu/mygroup/cpu.cfs_quota_us`(cfs_period_us默認(rèn)100000,50000即50%),`cgclassify-gcpu:/mygroup<pid>`。服務(wù)器出現(xiàn)大量TIME_WAIT狀態(tài)的TCP連接,如何排查原因并優(yōu)化?排查:使用`ss-ant|grepTIME_WAIT|wc-l`統(tǒng)計(jì)數(shù)量,`ss-ant|awk'{print$4}'|sort|uniq-c`查看目標(biāo)端口分布(通常是客戶端主動(dòng)關(guān)閉導(dǎo)致)。優(yōu)化:調(diào)整內(nèi)核參數(shù)(/etc/sysctl.conf):```net.ipv4.tcp_tw_reuse=1允許重用TIME_WAIT連接(需客戶端IP+端口唯一)net.ipv4.tcp_tw_recycle=0禁用(可能導(dǎo)致NAT環(huán)境問(wèn)題)net.ipv4.tcp_max_tw_buckets=20000限制TIME_WAIT數(shù)量```應(yīng)用配置:`sysctl-p`。同時(shí)檢查應(yīng)用是否及時(shí)關(guān)閉連接(如HTTP長(zhǎng)連接配置)。如何定位導(dǎo)致CPU使用率100%的進(jìn)程,并分析其具體函數(shù)調(diào)用?步驟:1.`top`或`htop`找到CPU高的進(jìn)程PID;2.`pidstat-u15-p<pid>`確認(rèn)進(jìn)程CPU占用;3.`perftop-p<pid>`實(shí)時(shí)查看熱點(diǎn)函數(shù);4.若為Java進(jìn)程,使用`jstack<pid>>stack.log`提供線程棧,分析WAITING或RUNNABLE狀態(tài)的線程;5.若為C/C++程序,使用`gdb-p<pid>`附加進(jìn)程,`bt`查看調(diào)用棧,或`strace-p<pid>`跟蹤系統(tǒng)調(diào)用。磁盤空間突然占滿,如何快速定位大文件或目錄?使用`df-h`查看各分區(qū)使用情況,`du-sh/path/`逐層排查(-s顯示總和,-h可讀格式)。若需按大小排序:`du-x/|sort-nr|head-n20`(-x跨文件系統(tǒng)時(shí)跳過(guò))。若inode耗盡(df-i查看),需刪除大量小文件(如日志分割未清理的舊文件)。簡(jiǎn)述使用journalctl查看最近1小時(shí)的nginx服務(wù)錯(cuò)誤日志(級(jí)別為error)的命令。命令:`journalctl-unginx.service--since"1hourago"-perr-ocat`。其中--since指定時(shí)間范圍(支持"2025-01-0110:00:00"格式),-perr過(guò)濾error級(jí)別(0=emerg,1=alert,...,3=err),-ocat輸出純文本(無(wú)元數(shù)據(jù))。若需實(shí)時(shí)監(jiān)控錯(cuò)誤:`journalctl-unginx-f-perr`。解釋Linux內(nèi)核的Namespace和Cgroup的作用,Docker如何利用它們實(shí)現(xiàn)容器隔離?Namespace實(shí)現(xiàn)資源隔離(PID、網(wǎng)絡(luò)、文件系統(tǒng)等),每個(gè)容器有獨(dú)立的命名空間(如pidnamespace使容器內(nèi)PID從1開始);Cgroup實(shí)現(xiàn)資源限制(CPU、內(nèi)存、IO等),控制容器使用的資源量。Docker通過(guò)clone()系統(tǒng)調(diào)用創(chuàng)建新的Namespace,通過(guò)cgroupfs掛載Cgroup子系統(tǒng)(如cpu、memory),為每個(gè)容器分配獨(dú)立的Cgroup節(jié)點(diǎn),從而實(shí)現(xiàn)隔離與資源管理。如何優(yōu)化MySQL數(shù)據(jù)庫(kù)所在服務(wù)器的磁盤IO性能(假設(shè)使用xfs文件系統(tǒng))??jī)?yōu)化措施:1.調(diào)整文件系統(tǒng)掛載參數(shù):`mount-onoatime,barrier=0/dev/vg0/mysql/data`(noatime禁用訪問(wèn)時(shí)間更新,barrier=0禁用寫屏障,提高寫入性能但降低數(shù)據(jù)一致性,需評(píng)估數(shù)據(jù)安全);2.使用RAID技術(shù)(如RAID10提升讀寫性能);3.啟用塊設(shè)備緩存:`hdparm-W1/dev/sda`(啟用寫緩存);4.調(diào)整MySQL配置(innodb_flush_log_at_trx_commit=2減少日志寫入頻率);5.分離數(shù)據(jù)目錄和日志目錄到不同磁盤(如/data和/logs)。編寫一個(gè)Shell腳本,實(shí)現(xiàn)以下功能:接收兩個(gè)參數(shù)(目錄路徑和文件后綴),統(tǒng)計(jì)該目錄下(含子目錄)所有指定后綴文件的行數(shù)總和。腳本示例:```bash!/bin/bashdir=$1suffix=$2if[$-ne2];thenecho"Usage:$0<directory><suffix>"exit1fiif[!-d"$dir"];thenecho"Error:$dirisnotadirectory"exit1fifind"$dir"-type
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- FZT 54133-2020無(wú)銻滌綸預(yù)取向絲(POY)標(biāo)準(zhǔn)深度與行業(yè)前瞻研究報(bào)告
- 《GBT 14492-2008一次性使用電石包裝鋼桶》專題研究報(bào)告
- 《GB 4706.33-2008家用和類似用途電器的安全 商用電深油炸鍋的特殊要求》專題研究報(bào)告
- 道路安全教育培訓(xùn)課內(nèi)容課件
- 道路危險(xiǎn)品運(yùn)輸安全培訓(xùn)課件
- 2026年魯教版八年級(jí)數(shù)學(xué)上冊(cè)期末試卷含答案
- 道德的介紹教學(xué)課件
- 2026年廣東省茂名市高職單招語(yǔ)文試題及答案
- 迪奧dior介紹教學(xué)課件
- 新高一化學(xué)暑假銜接(人教版):第17講 元素周期律【教師版】
- 教師三筆字培訓(xùn)課件
- 少年宮乒乓球活動(dòng)記錄文本
- 各品牌挖掘機(jī)挖斗連接尺寸數(shù)據(jù)
- 2021-2022學(xué)年云南省曲靖市部編版六年級(jí)上冊(cè)期末考試語(yǔ)文試卷(原卷版)
- 參會(huì)人員名單(模板)
- 飛機(jī)大戰(zhàn)游戲設(shè)計(jì)與實(shí)現(xiàn)
- 數(shù)學(xué)課如何提高課堂教學(xué)容量
- 監(jiān)理規(guī)劃畢業(yè)設(shè)計(jì)(論文)
- 京港澳高速公路段改擴(kuò)建工程施工保通方案(總方案)
- 醫(yī)用設(shè)備EMC培訓(xùn)資料課件
- RoHS培訓(xùn)資料課件
評(píng)論
0/150
提交評(píng)論