接续上文,继续根据面试题看大厂的优劣,本次是一家老厂,运维的薪资也达到了20K,看看大家是否猜的出来?

基础知识

  1. 什么是linux的daemon进程?和一般进程有什么区别?
    网上参考答案:
    daemon进程又称为守护进程,是在系统启动就运行,系统关闭才停止的进程,独立于终端之外,不与客户端交互。
    区别:一般进程在关闭终端后就停止了,而daemon进程不会停止。
  2. 通过free命令查看内存是,看到的buffer和cache各表示什么含义?
    网上参考答案:
    buffer是缓冲区:是即将被写入磁盘的,是由各种进程分配的,被用在输入队列中,某个进程要求多个字段读入,在所有字段被读入完整之前,进程会把先读入的字段放在buffer中保存。
    cache是缓存区:是即将从磁盘中读取的,经常被用在磁盘的I/O请求上,如果多个进程都要访问某个文件,于是该文件被做为cache以便下次访问。提供系统性能
  3. 使用ln -s 和mv 对某一个文件做如下操作时
    bash$ ln -s /usr/afile /etc/bfile
    bash$ mv /etc/afile /etc/bfile
    对inode和block有哪些影响?
    网上参考答案:
    第一条命令是建立了文件的软链接,只会在你选定的位置上生成一个文件的镜像,不会占用磁盘空间(不影响block),假设不带-s参数,则会在你选定的位置上生成一个和源文件大小相同的文件,无论是软链接还是硬链接,文件都保持同步变化(block增大)。对inode不影响。
    第二条命令是使用文件名建立目录项,删除带有原来的文件名的目录项,对inode表没有影响(除了时间戳),对block也没有影响。
  4. apache和nginx这两个web服务器有哪些区别
对比 nginx apache
总体评价 轻量级,反向代理,高并发,占用内存小,处理请求异步非阻塞 rewrite更强大,更加稳定
配置 简单 复杂
进程 异步多进程,多连接对应一个进程 同步多进程,一个连接对应一个进程
负载能力
动态请求 鸡肋,不支持 支持,一般采用nginx+apache

网络知识

  1. 请解释一下以下response header各行的含义:
Date
Tue,22Feb 2011 04:37:45 GMT
Server
Apache
Last-Modified
Thu,04 Nov 2010 04;12:24 GMT
Etag
“9fc-10c-82-5d73fa00”
Content-Length   130
Cache-Control    max-age-2592000
Expires
Thu,24 Mar 2011 04:37:45 GMT
Age
21190
X-Cache
HIT from 86-74.ul.sinaimg.cn
Via
1.0.86-74.ul.sinaimg.cn:80(squid/2.6.STABLE21)
Connection
keep-alive

网上参考答案:
ETag:资源的一个标识,类似于key-value pair(键值对)中的key。ETag通常用于校验一个资源实体有没有被修改过。在数据缓存和PUT方法更新资源时候有用处。ETag: “737060cd8c284d8af7ad3082f209582d”
Cache-Control:对缓存的控制
Age:一个资源存在于代理中 缓存的时间,单位是秒
x-cache:是squid代理的自定义header,用来记录缓存的命中与否
Via:告诉客户端,该回应经历了那些代理。如:
Via: 1.0 example1.com, 1.1 example2.com (Apache/1.1)

  1. 将lvs配置为DR方式,发现无法正常工作,经测试直接访问realserver可以提供服务,请问用何种方法定位lvs问题
    网上参考答案:主要防止“乒乓”现象,参见此文LVS+DR合设配置方法以及存在的问题

  2. 内核参数的含义:
    net.ipv4.tcp_tw_recycle=1
    减少TIME_WAIT连接数量,详细可参见此文:改内核参数小心了–net.ipv4.tcp_tw_recycle = 1可不能随便设置
    net.ipv4.tcp_tw_reuse=1
    reuse是表示是否允许重新应用处于TIME-WAIT状态的socket用于新的TCP连接
    vm.swappiness=0
    表示最大限度使用物理内存,然后才是 swap空间,swappiness=100的时候表示积极的使用swap分区,并且把内存上的数据及时的搬运到swap空间里面,在linux里面,默认设置swappiness这个值等于60

开发能力

  1. 同一时间脚本只能运行一个实例(可以用任意语言实现)
ps -ef | grep "${0#./}" | grep -v $$ > /dev/null
if (( $? == 0 )); then
echo "已经在运行!"
exit
fi
  1. 计算出从你生日之日起到今天一共过了多少天?(可以用除shell之外任意语言实现)
链接:https://www.nowcoder.com/questionTerminal/9c91351484104afa92d453d7c648471f?source=relative
来源:牛客网

def Day_num(birth_year,birth_month,birth_day):
day = 0 
for month in range(birth_month,12):
if month==3 or month==5 or month==7 or month==8 or month==10 or month==12:
day = day+31
elif month==2:
day = day+28
else:
day = day+30

if birth_year%4==0:
day = day+1-birth_day
else:
day = day-birth_day

for year in range(birth_year+1,2020):
if(year%4==0):
day = day+366
else:
day = day+356

day = day+31+29+31+30+31+16 
return day

Day = Day_num(1997,3,4)
print(Day)
  1. 写出一段程序,用于判断一段字符串是否是回文。(可以用除shell之外任意语言实现)
 	#include <stdio.h>
    #include<stdlib.h>
    int main()
    {
    	char a[100];
        int i=0,j=0;
        printf("请输入字符串:\n");
        gets(a);
        while(a[i]!='\0')
        i++;
        i--;
        for(;j<=i;i--,j++)
    	{
    		if(a[i]!=a[j])
    		{
    			break;
    		}
    	}
    	if(j<=i)
    	{
    		printf("不是回文串\n",a);
    	}
    	else
    	{
    		printf("是回文串\n",a);
    	}
    	system("pause");
        return 0;
    }

  1. 有一文件记录了1-100000之间随机的整数共5000个,存储的格式100,50,35,89…请取出其中最大和最小的整数。(可以用除shell之外任意语言实现)
[root@centos7 ~]# for(( i=1;i<=5000;i++ ));do echo $[$RANDOM*RANDOM%100000] ;done > numbers.txt
[root@centos7 ~]# awk -F, '{max=$1;min=$1;for(i=1;i<NF;i++){if($i>max){max=$i}else{if($i<min){min=$i}}}}END{print "最大值:"max,"最小值:"min}' numbers.txt 
最大值:99966 最小值:16
Logo

一站式 AI 云服务平台

更多推荐