遇见运维(一)运维面试常考题

1、什么是运维?什么是游戏运维?

1)运维是指大型组织已经建立好的网络软硬件的维护,就是要保证业务的上线与运作的正常, 在他运转的过程中,对他进行维护,他集合了网络、系统、数据库、开发、安全、监控于一身的技术 运维又包括很多种,有DBA运维、网站运维、虚拟化运维、监控运维、游戏运维等等 2)游戏运维又有分工,分为开发运维、应用运维(业务运维)和系统运维

  • 开发运维:是给应用运维开发运维工具和运维平台的
  • 应用运维:是给业务上线、维护和做故障排除的,用开发运维开发出来的工具给业务上线、维护、做故障排查
  • 系统运维:是给应用运维提供业务上的基础设施,比如:系统、网络、监控、硬件等等

总结:开发运维和系统运维给应用运维提供了“工具”和“基础设施”上的支撑 开发运维、应用运维和系统运维他们的工作是环环相扣的

2、现在给你三百台服务器,你怎么对他们进行管理?

管理3百台服务器的方式: 1)设定跳板机,使用统一账号登录,便于安全与登录的考量。 2)使用salt、ansiable、puppet进行系统的统一调度与配置的统一管理。 3)建立简单的服务器的系统、配置、应用的cmdb信息管理。便于查阅每台服务器上的各种信息记录。

3,为什么文件系统的使用空间和剩余空间之和不是总的空间大小?

linux有一种策略,它会默认为root用户保留5%的容量作为应急使用,比如某些关键性的应用如数据库突然占满空间,这部分预留的空间能保证数据库不会立即crash.

4,与另一台机器不能通信,怎么排错?访问不了某个服务,怎么排错?

 作为客户端
    1.ping 服务(访问不了不代表链路不通),ping的通说明是服务端的问题(可能做了限制)、域名解析的问题
    ping不通服务再检查自己的网络
    2.ping 网关,能ping通网关,ping一下其他网站,如果也通,那就是服务的问题,可能整个服务宕掉了,如果不通,就可能是内网的问题。
    3.ping网关ping不同,检查物理链路
作为服务器端(客户投诉某个服务有问题)
    1,先检测服务是否有问题(自己访问一下)
    自己不能访问?
    一个服务的开启牵扯到哪些方面?端口,等
    如果服务挂掉了,就启动一下服务
    服务没问题,端口正常,就看一下监控平台zabbix
    系统的性能监控free -m,top,最大连接数的监控,
    再看服务日志,

    2,自己可以访问,可能是客户端的问题
        也可能是服务器处理不过来了

5. 如何限制某个ip 不能访问ssh端口

 1, iptables
    vim /etc/hosts.allow  /etc/hosts.deny
    telnet  网络连通工具,只能测试tcp,
        telnet 192.168.2.15 2233 测试与192.168.2.15的2233端口是否连通
    nc命令,可以测试tcp,udp
        可以ping通,但不一定可以访问服务:端口没开,服务没开,服务端限制
Iptables命令,可以实现什么功能
    snat,dnat,防火墙功能,禁止某个ip的访问

ftp登录的两种方式?有什么区别?常用的ftp命令

 (1)ftp有两种登录方式:匿名登录和授权登录。使用匿名登录时,用户名为:anonymous,密码为:任何合法email地址;使用授权登录时,用户名为用户在远程系统中的用户帐号,密码为用户在远程系统中的用户密码。

区别:使用匿名登录只能访问ftp目录下的资源,默认配置下只能下载;而授权登录访问的权限大于匿名登录,且上载、下载均可。

(2)ftp文件传输有两种文件传输模式:ASCII模式和二进制数据模式。ASCII模式用来传输文本文件,其他文件的传输使用binary模式。

(3)常用的ftp文件传输命令为:bin、asc、put、get、mput、mget、prompt、bye

 dns完整流程?输入douying.com

   1.浏览器分析超链接中的url
    2.浏览器向dns请求解析网址www.baidu.com对应的IP地址
    3.dns将解析出的IP地址202.2.16.21返回浏览器
    4.浏览器与服务器建立tcp连接
    5.浏览器请求相应文档:GET /index.html
    6.服务器给出响应,将文档index.html发送给浏览器
    7.浏览器显示文档index.html中的内容
    8.释放tcp连接

 nginx reload的原理?

 master进程会新建同样个数的worker进程,新的连接数会连到新进程上,老的连接依然在旧进程上处理,当老的连接处理完后,旧进程就会关闭。
1.向master进程发送hup信号,等同于输入nginx -s reload
2.master进程检验配置语法是否正确,等同于nginx -t
3,master进程打开新的监听端口
4,master进程用新配置启动新的子进程
5.master进程向老worker子进程发送quit信号
6.老worker进程关闭监听句柄,处理完当前进程后结束进程

df查看磁盘大小发现根目录磁盘满了,但是du查看根目录文件大小总和发现没有那么大。什么原因?

 答:文件系统,删除一个文件时,一个文件什么时候会被删除?
元数据:属主,创建时间,权限等(stat命令查看)
每个文件都会在内核中保存两个参数:i_nlink、i_count
i_link 相当于给用户使用的一个链接计数 ,硬盘引用计数器 :rm删除文件时,每次删除操作的时候,i_nlink减1(默认i_nlink为1)
i_count 相当于给程序使用的一个链接计数,内存引用计数器:(默认也为1)
只有i_nlink和i_count都为0时,文件才会彻底删除,空间才会释放。
当人类rm删除一个文件时,如果还有程序在使用这个文件,这个文件没有真正的删除,空间没有释放
删除了某些日志文件,但是没有重启相应的服务

如何知道是哪个服务没有重启?
lsof | grep delete
delete标记表示删除,但是空间没有释放

 python中is和==的区别

 答: is是对象判断符,判断是否是同一个对象,同一个内存地址
     ==是判断值是否相等
     is比较的是id的内存地址;
==比较的是两边的值;
is比较的是两个实例对象是不是同一个对象,也就是说这两个对象的地址,通过id()函数可以获取,是不是相同
== 比较的是两个实例对象的值是否相等,比较的是内存中存放的内容,可以不是同一个对象,只要内容一样就可以了

12、僵尸进程

 僵尸即“死了还活着”,子进程已经终止了,也就是说子进程死了。但是系统会保留子进程的信息(进程ID/终止状态/使用的CPU时间总量),这些残余信息仍然存在,也就是说某种意义上还活着。

孤儿则是父进程终止了,也就是丧父。

僵尸进程是当子进程比父进程先结束,而父进程又没有回收子进程,释放子进程占用的资源,此时子进程将成为一个僵尸进程。(一个进程结束了,但是他的父进程没有等待(调用wait/ waitpid)他,那么他将变成一个僵尸进程)
僵死进程会以终止状态保持在进程表中,并且会一直在等待父进程读取退出状态代码。
所以,只要子进程退出,父进程还在运行,但父进程没有读取子进程状态,子进程进入Z状态
但是如果该进程的父进程已经先结束了,那么该进程就不会变成僵尸进程。因为每个进程结束的时候,系统都会扫描当前系统中所运行的所有进程,看看有没有哪个 进程是刚刚结束的这个进程的子进程,如果是的话,就由Init进程来接管他,成为他的父进程,从而保证每个进程都会有一个父进程。而Init进程会自动 wait其子进程,因此被Init接管的所有进程都不会变成僵尸进程。

系统为什么需要僵尸进程这种进程状态
由于父进程创建子进程是异步的,双方不知道各自的运行状态,而父进程有的时候需要知道子进程退出时的一些信息,所以 linux提供了一种机制,通过让子进程退出时向父进程发送 SIGCHRD 信号来告知父进程,子进程已经退出了。同时,父进程通过调用 wait 和 waitpid 来获取子进程的退出信息。

 

你可能感兴趣的:(linux,运维,面试,数据库)