当前位置: 首页 > 科技观察

想要年薪20万的你,看看你能不能满足这28道经典的企业运维岗位面试题

时间:2023-03-16 17:47:42 科技观察

1。Linux在Windows下如何挂载共享目录?mount.cifs//IP地址/服务器/mnt/server-ouser=administrator,password=123456linux下的服务器需要手动创建一个用户,后面传入,就是windows主机的账号和密码。注意空格和逗号2.如何查看HTTP并发请求数及其TCP连接状态?网络统计-n|awk'/^tcp/{++b[$NF]}'END{for(ainb)printa,b[a]}'andulimit-n查看linux系统打开***的文件描述符,这里默认是1024,不修改web服务器是没用的。如果要使用,可以修改几种方法,这里是其中一种:修改/etc/security/limits.conf*softnofile10240*hardnofile10240重启后生效3.如何使用tcpdump嗅探访问去80端口看谁**?tcpdump-ieth0-tnndst端口80-c1000|awk-F”。'{打印$1″.”$2″..$3″..$4″..}'|排序|uniq-c|排序-nr|头54。如何查看/var/log目录下的文件数?ls/var/日志/-1R|grep“-”|wc-l5。Linux系统中如何查看每个ip的连接数?网络统计-n|awk'/^tcp/{print$5}'|awk-F:'{print$1}'|排序|uniq-c|sort-rn6,在shellcat/dev/urandom|下生成32位随机密码头-1|md5sum|head-c32>>/pass7,统计访问次数最多的5个apacheaccess.logipcataccess.log|awk'{print$1}'|排序|uniq-c|排序-n-r|头-58。如何查看二进制文件的内容?我们一般使用hexdump命令来查看二进制文件的内容。hexdump-CXXX(文件名)-C是一个参数,不同的参数有不同的含义-C是比较标准的十六进制和ASCII码显示-c是单字节字符显示-b单字节八进制显示-o是双字节八进制显示-d是双字节十进制显示-x是双字节十六进制显示9.psaux中的VSZ是什么意思,RSS是什么意思?VSZ:虚拟内存集,进程占用的虚拟内存空间RSS:物理内存集,进程实际使用的物理内存空间10.如何检测和修复/dev/hda5?fsck用于检查和维护不一致的文件系统。如果系统断电或磁盘有问题,可以使用fsck命令检查文件系统。11、介绍Linux系统的启动顺序。LoadBIOS-->readMBR-->BootLoader-->loadkernel-->userlayerinit一句inittab文件设置系统运行的级别(一般为3或5,3为多用户命令行,5为界面)–>init进程执行rc.syninit–>启动内核模块–>执行不同级别运行的脚本–>执行/etc/rc.d/rc.local(本地运行服务)–>执行/bin/login,你12、符号链接和硬链接的区别我们可以使用符号链接,也就是软链接,作为windows系统中的快捷方式。硬链接好像又被复制了。例如:ln3.txt4.txt这是一个硬链接,相当于复制。不能跨分区,但是修改3和4会相应改变。如果删除3和4,则不会受到任何影响。ln-s3.txt4.txt这个是软链接,相当于快捷方式。修改4和3也会相应变化。如果删除3和4,它将被破坏。不能再用了。13、保存当前磁盘分区的分区表。dd命令是一个强大的命令,边复制边转换ddif=/dev/sdaof=./mbr.txtbs=1count=51214。如何在文本中复制、粘贴、删除行、全部删除、按行查找、按字母查找?以下操作都是在命令行状态下进行的,不是在编辑状态下进行的。移动到文本中要复制的行,按yy移动到要复制的地方,然后按P粘贴删除的行,移动到新行按dd删除所有dG这里注意G一定要becapitalizedtosearchbyline:90这样子就是找到第90行,按字母搜索/path。这是为了找到单词路径的位置。文中可能不止一个,在不同的位置会显示多个搜索。15.手动安装grubgrub-install/dev/sda16。修改内核参数vi/etc/sysctl.conf这里修改参数sysctl-p刷新后使用。17.取一个随机数expr$[RANDOM%39]+1RANDOM随机数%39取0-3818的余数。限制apache每秒新建连接数为1,峰值为3。每秒新建连接数一般由防火墙来完成。貌似apache本身不能设置每秒新建连接数。设置***连接:iptables-AINPUT-d172.16.100.1-ptcp–dport80-mlimit–limit1/second-jACCEPT19、FTP主动模式和被动模式FTP协议有两种工作模式:PORT模式和PASVway,中文意思是主动和被动。PORT(主动)模式的连接过程是:客户端向服务器的FTP端口(默认为21)发送连接请求,服务器接受连接,建立命令链接。当需要传输数据时,客户端在命令链接上使用PORT命令告诉服务器:“我已经打开了XX端口,快来连接我”。于是服务端从20端口向客户端的XX端口发送连接请求,建立数据链路传输数据。PASV(被动)模式的连接过程是:客户端向服务器的FTP端口(默认为21)发送连接请求,服务器接受连接,建立命令链接。当需要传输数据时,服务器在命令链接上使用PASV命令告诉客户端:“我已经打开了XX端口,快来连接我”。于是客户端向服务器的XX端口发送连接请求,建立数据链路传输数据。从上面可以看出,这两种方式的命令链接连接方式是一样的,但是数据链接的建立方式是完全不同的。20.在/etc/inittab中显示以#开头的行,后跟一个或多个空白字符,然后是任何非空白字符grep“^#\{1,\}[^]”/etc/inittab21,显示/etc/inittabcontains:anumber:(也就是两个冒号之间的数字)linegrep"\:[0-9]\{1\}:"/etc/inittab22,如何把脚本添加到系统服务,那个是,使用服务来调用?add#!/bin/bash#chkconfig:3458515#description:httpd并保存chkconfighttpd–add创建系统服务现在可以使用service启动或重启23,写个脚本批量添加20个用户,用户名为user01-20,密码是用户后跟5个随机字符#!/bin/bash#description:useraddforiin`seq-f”%02g”120`;douseradduser$iecho“user$i-`echo$RANDOM|md5sum|cut-c1-5`”|passwd–stdinuser$i>/dev/null2>&1done24。编写脚本实现判断192.168.1.0/24网络中哪些IP当前在线。如果能ping通,就认为你在线#!/bin/bashforipin`seq1255`doping-c1192.168.1.$ip>/dev/null2>&1if[$?-eq0];thenecho192.168.1.$ipUPelseecho192.168.1。$ipDOWNfi}&donewait25,编写脚本,判断a指定脚本是否语法错误;如果出现错误,提醒用户键入Q或q忽略错误并退出任何其他键。可以通过vim打开指定脚本[root@localhosttmp]#catchecksh.sh#!/bin/bashread-p"pleaseinputcheckscript->"fileif[-f$file];thensh-n$file>/dev/null2>&1if[$?-ne0];然后阅读-p"Youinput$filesyntaxerror,[TypeqtoexitorTypevimtoedit]"answercase$answerinq|Q)exit0;;vim)vim$file;;*)exit0;;esacfielseecho"$filenotexist"exit1fi26。写一个脚本,有什么要求:创建一个函数,可以接受两个参数:1)第一个参数是url,就是你可以下载的文件;第二个参数是目录,即下载后保存的位置;2)如果用户给定的目录不存在,提示用户是否创建;如果已创建,则继续执行,否则,该函数将错误值51返回给调用脚本;3)如果给定目录存在,则下载文件;执行下载命令后测试文件下载是否成功;成功则返回0给调用脚本,否则返回52给调用脚本;[root@localhosttmp]#catdownfile.sh#!/bin/bashurl=$1dir=$2download(){cd$dir>>/dev/null2>&1if[$?-ne0];然后读取-p"$dirNosuchfileordirectory,create?(y/n)"answerif["$answer"=="y"];thenmkdir-p$dircd$dirwget$url1>/dev/null2>&1elsereturn"51"fifiif[$?-ne0];thenreturn"52"fi}download$url$direcho$?27、写一个脚本,详细要求如下:1.创建一个函数,可以接受一个磁盘设备路径(比如/dev/sdb)作为参数;在真正开始下一步之前提醒用户注意危险,并让用户选择是否继续;清除所有分区(提示,使用命令ddif=/dev/zeroof=/dev/sdbbs=512count=1来实现,注意不要写错设备路径;如果这一步失败,返回67到主程序;然后在这个磁盘设备上创建两个主分区,一个大小为100M,一个大小为1G;如果这一步失败,返回68给主程序;格式化两个分区,文件系统类型为ext3;如果这一步失败,返回69给主程序;如果以上过程正常,则返回0给主程序;2.调用该函数;并通过接收函数执行的返回值判断其执行,并显示信息;localDarray=(`ls/dev/sd[a-z]`)foriin${Darray};do[[“$i”==“$1”]]&&Sd=$i&&breakdoneelsereturn66fi#匹配成功后进入选择并告知用户是否继续,如果出错则进入***循环,当用户选择Y时,则清除目标分区,并跳出while循环while:;doread-p"Warning!!!Thisoperationwillclean$Sddata.Next=y,Quit=n[y|n]:"Choicecase$Choiceiny)ddif=/dev/zeroof=$Sdbs=512count=1&>/dev/null&break||return67;;n)exit88;;*)echo"Invalidchoice,pleasechoiceagain.";;esacdone#useEcho被传递给fdisk进行分区。如果这个命令失败,就会跳出,错误值为68。需要注意的是,有时候这个返回值很奇怪。我以前不管成功与否都返回1。重启后就可以了,细心的话可以判断创建的分区,但是需要用其他工具截取相关字段,虽然麻烦点,但是没问题echo-e"n\np\n1\n\n+100M\nn\np\n2\n\n+1024M\nw\n”|fdisk/dev/sdb&>/dev/null||||return68#格式化前让内核重新读取磁盘分区表,值得注意的是,对于某些系统版本,使用partprobe是无效的,比如笔者的环境是rhel5.8,rhel6.0之后,这个命令很危险,但是效果使用partx-a/dev/sdb更好&他唇;这一项需要注意,如果格式化失败,它会告诉你将失败的分区定义为一个变量,并跳出该函数,并带出错误值69partprobe`Part=`fdisk-l/dev/$sd|tail-2|cut-d””-f1`forMin${Part};domke2fs-j$M&>/dev/null&&ErrorPart=$M&&return69donereturn0}#下面代码调用函数,接收函数的返回值,并根据返回值Disk_Mod$1Res=$?[$Res-eq0]&&exit0[$Res-eq66]&&echo“Error!Invalidinput.”[$Res-eq67]&&echo“Error!Command->”判断哪里出错ddfdiskmke2fs28,如何让history命令显示具体时间?HISTTIMEFORMAT="%Y-%m-%d%H:%M:%S"exportHISTTIMEFORMAT重启后会恢复,可以写入/etc/profile