LInux运维常见面试题之精华收录
1、什么是运维?介绍下你了解的运维分类。
运维是指大中型组织已经建立好的网络软件的维护,就是要保证业务的上线与运作的正常,在他运转的过程中,对他进行维护,集合了网络,系统,数据库,开发,安全,监控于一身的技术。
运维包括很多种,有dba运维,网站运维,虚拟化运维,监控运维,游戏运维等,游戏运维又有分工,分为开发运维,应用运维和系统运维,开发运维是给应用开发运维工具和运维平台的。应用运维是提供业务上的基础设施,比如系统、网络,监控、硬件等等。
2、在工作中,运维人员经常要与运营人员打交道,请问运营人员是干什么的?
游戏运营要做的一个事就是除了协调工作以外,还需要与平台沟通,做好开服的时间,开服数量。用户导量,活动计划等
3、现在给你三百台服务器,你怎么对他们进行管理
1)设定跳板机,使用统一账号登录,便于安全考虑
2)使用ansiable,salt、进行统一调度与统一管理
3)建立简单的服务器系统,配置应用的cmdb信息,便于查阅每台服务器的信息记录
4、简述raid0 raid1 raid5三种工作模式的区别
raid可以将硬盘整合为一个大磁盘,还可以在大磁盘进行分区,放数据
还有一个很大的功能就是冗余(备份)
raid0可以是一款盘和n个盘的集合,其优点是读写快,是raid中最好的,缺点没有冗余,一块盘坏了数据就全部没有了
raid1只能两块盘,盘的大小一样,以小的为准,10G+10G只有10G,另一个是备份,他有百分百的冗余,缺点是浪费资源,成本高。
raid5 三块盘,容量计算10*(n-1),损失一块盘:特点读写性能一般,写不好
冗余从好到坏:raid1 10 5 raid
性能从好到坏:raid0 10 5 1
成本从低到高:raid0 5 1 10
5、lvs\nginx\HAproxy有什么区别?工作中你怎么选择?
LVS:是基于四层的转发
HAproxy:是基于四层和七层的转发,是专业的代理服务器
NGINX:是web服务器,缓存服务器,又是返乡待柳服务器,可以做七层的转发
区别:LVS是由于四层的转发,所以只能够锁端口转发
而基于URL的,基于目录的这种转发LVS就做不了了
工作选择:HAproxy和nginx由于可以做七层的转发,所以URL和目录都可以做,并在很大并发量的时候我们选择LVS,像中小型公司的并发量没有那么大
选择HAproxy或者nginx足够,由于HAProxy是专业的代理服务器,配制简单,所以中小型企业推荐使用HAproxy
6、squid、Varinsh和nginx有什么区别,工作中你怎么选择?
都是代理服务器
能当用户去访问公网,并且能够将访问的数据缓存到服务器本地,等用户下次再访问相同的资源的时候,代理服务器直接从本地回应给用户,当本地没有的时候,我代替你去访问公网,我接受你的请求,我现在我自己的本地缓存找,如果我本地缓存有,我就会直接在我的本地缓存里面回复你,如果我在我本地缓存没有找到你要访问的数据,那么我的代理服务器就会代替你去访问公网
区别:
1)nginx本身就是反向代理web服务器,用了插件就可以做这个副业,但是本身不支持的特性挺多,只能缓存静态文件
2)varnish和squid专业的cache服务,而nginx是借助第三方模块来完成的
3)varnish本身的技术上优势要高于squid,它采用了可视化页面缓存技术
在内存的利用上,Varnish比Squid具有优势,性能要比Squid高。
还有强大的通过Varnish管理端口,可以使用正则表达式快速、批量地清除部分缓存
它是内存缓存,速度一流,但是内存缓存也限制了其容量,缓存页面和图片一般是挺好的
4)squid的优势在于完整的庞大的cache技术资料,和很多的应用生产环境
**工作中选择:**
要做cache服务的话,我们肯定是要选择专业的cache服务,优先选择squid或者varnish。
7、tomcat和resin有什么区别,工作中你会怎么选择?
区别:tomcat用户数量多,可以参考文档多,resin用户数量少,可以参考的文档少
最主要的区别是tomcat是标准的Java容器,不过性能方面要比resin的要差一些
但是稳定性和Java程序的兼容性,应该比resin的要好。
8、什么是中间件?什么是jdk?
中间件介绍:
中间件是一种独立的系统软件或者服务程序,分布式应用软件借助这种软件在不同的平台技术之间共享资源,中间件位于客户机/服务器的操作系统之上,管理计算机资源和网络通讯,是连接两个独立应用程序或者独立系统的软件,相连接的系统,即使他们具有不同的接口,但是通过中间件相互之间能够交换信息,执行中间件的一个关键途径是信息的传递,通过中间件,应用程序可以工作于多台OS环境。
jdk:是Java的开发工具包,他是一种用于构建在Java平台上发布的应用程序,applet和组建的开发环境。
9、讲述一下tomcat8005、8009、8080三个端口的含义
8005 --->关闭的时候使用
8009 --->为AJP端口,即容器的使用,如apache能够通过AJP访问tomcat的8009端口
8080 --->一般应用使用
10、什么叫CDN
cdn即内容分发网络,其目的是通过现有的Internet中增加一层新的网络架构,将网站的内容发布到最接近用户的网络边缘,使得用户可以就近取得所需要的内容,提高用户访问网站的速度。
11、什么是网站灰度发布?
灰度发布是指在黑与白之间,能够平滑过度的一种发布方式。
ABtest 就是一种灰度发布方式,让一部分用户继续用A,一部分用户开始用B
如果用户对B没什么反对意见,那么逐步扩大范围,把所有的用户都迁移到B上面来。
灰度发布可以保证系统业务的稳定,在初始灰度的时候就可以发现、调整问题,以保证其影响度。
12、简述DNS进行域名解析的过程
用户要访问www.baidu.com会首先找到本机的host文件,再找本地的DNS 服务器,如果也没有的话就去网络中找根服务器,根服务器反馈结果,说明只能提供一级域名解析服务器.cn,就去找一级域名服务器。一级域名服务器说只能提供二级域名服务器.com.cn就去找二级域名服务器,二级域名服务器只能提供三级域名服务器baidu.com.cn就去找三级域名服务器,三级域名服务器正好有这个网站www.baidu.com,然后发给请求的服务器,保存一份以后,再发给客户端。
13、RabbitMQ是什么东西?
RabbitMQ也是消息队列的中间件,消息的中间件是在消息的传输信息过程中保存消息的容器。
消息中间件再将消息从他的源文件到他的目标文件充当中间人的作用。
队列的主要目的是提供路由并保证消息的传递,如果发送消息时接受者不可用,消息队列也不会保留信息,直到可以成功传递为止,当然消息队列保存的消息也是有期限的。
14、讲一下keepalived的工作原理
在一个虚拟路由器中好,只有MASTER的VARRP路由器会一直发送VRRP报告信息,BACKUP不会抢占MASTER,除非他的优先级更高,当master不可用时(backup收不到通告信息),多台的backup中优先级最高的这台会被抢占master,这种抢占是非常快速的,可以保证服务的连续性,由于安全性考虑,VRRP使用了加密协议进行加密,backup不会发送通告信息,只会接受通告信息。
15、讲述一下LVS三种工作模式的过程
LVS有三种负载均衡模式,分别是nat模式、路由模式、隧道模式
①nat模式:将客户端发来的ip包头的目的ip地址,在负载均衡上换成期中一台RS的ip地址,rs处理完成以后把数据交给负载均衡,负载均衡再把数据包原ip改为自己的ip地址。在此期间,无论是出去还是进来的流量都要经过负载均衡器。
优点:集群中的物理服务器可以任意使用任何支持tcp的操作系统,只有负载均衡器需要一个合法的ip地址
缺点:扩展性有限,当服务器节点增长过多时,负载均衡器将成为整个系统的瓶颈,因为所有的请求包和应答包的流向都经过负载均衡器,大数据汇聚,速度肯定变慢。
②IP隧道模式
原理:首先要知道,互联网上的大多数Internet服务请求包都很断小,而应答包通常很大。那么隧道模式就是把客户端发来的数据包,封装成一个新的ip头标记,将其发给RS后,RS收到后将数据头解开,还原数据包,处理后,直接返回给客户端,不需要再经过负载均衡器。
注意:由于RS需要对负载均衡器发过来的数据包进行还原,所以说必须支持IPTUNNEL协议,所以在RS内核中,必须编译支持IPTUNNELz这个选项。
优点:负载均衡器只负责将请求包分发给后端节点服务器,而RS将应答包直接发给用户。
缺点:隧道模式的RS节点需要合法的IP,这种方式需要所有的服务器支持IP Tuneling,服务器可能只限于部分linux上。
③直接路由形式:
原理:负载均衡器和RS都使用同一个IP对外服务,但是只有DR对ARP请求进行响应。
优点:和隧道模式一样,负载均衡也只是分发请求,应答包通过单独的路由方法返回给客户端,但是不需要隧道结构,因此可以使用大多数操作系统作为物理服务器。
缺点:(不足)要求负载的网卡必须与物理网卡在一个物理断上。
mysql的innodb如何定位锁的问题,mysql如何减少主从复制延迟
mysql的innodb如何定位锁的问题:
在使用show engine innodb status检查引擎状态时,发现了死锁的问题
在mysql5.5中,information_schema库中增加了三个关于锁的表(MEMORY引擎)
innodb_trx #当前运行的所有事物
innodb_locks #当前出现的锁
innodb_lock_waits #锁等待的对应关系
mysql如何减少主从复制延迟
如果延迟比较大,就先确认以下几个因素
1、硬件方面---->从库的硬件比主库差,导致复制延迟
2、主从复制单线程,如果主库写并发太大,来不及传送到从库就会导致延迟,更高的mysql可以支持多线程复制。
3、慢SQL语句过多
4、网络延迟
5、master负载:主库写压力大,导致复制延迟,架构前端要加buffer缓存。
6、slave负载:一般的做法是使用多台slave来分摊请求,再从这些slave中取一些专用的服务器。
只作为备份用,不进行其他的任何操作,另外两个可以减少延迟的参数。
-slave-net-timeout=seconds单位为秒,默认设置3600s
#参数含义:当slave从主数据库读取log数据失败后,等待多久重新建立连接取得数据
-master-connect-retry=seconds 单位为秒,默认60秒
#参数含义:当重新建立主从连接时,如果连接失败,间隔多久后可以重试。
通常配置以上链各个参数可以减少网络问题导致的主从同步延时。
mysql数据库主从同步延迟解决方案:
最简单的是slave同步延时的方案就是在架构上做优化,尽量让主库的DDL快速执行
还有就是主库是写,对数据安全性较高,比如sync=1,innodb_flush_log_at_trx_commit=1之类的配置,而slave则不需要这么高的数据安全,完全可以将sync设置为0或者关闭binlog。innodb_flushlog也可以设置为0来提高SQL的执行效率,另外就是使用比主库更好的硬件设备作为slave。
17、如何重置MySQL的root密码
1、在已知mysql数据库root密码的情况下,修改密码的方法
①在shell环境下,使用mysqladmin命令设置
mysqladmin -uroot -p password "新密码" 回车要求输入旧的密码
2、在mysql>环境中,使用update命令,直接更新mysql库的user表数据
Update mysql.user set password=password("新密码") where user='root';
flush privileges;
注意:mysql语句要以;结束
3、在mysql>环境中,使用grant命令,修改root用户的授权权限
grant all on *.* to root@'localhost' identified by '新密码';
二、如果忘记了root密码应该如何做?
1、关闭数据库,并启动到单用户模式
systemctl stop mysqld
mysqld_safe --skip-grant-tables --skip-networking &
2、无密码登录root修改密码
mysql
flush privileges;
alter user root@'localhost' identified by '123456';
3、重启数据库到正常模式
systemctl restart mysqld
mysql -uroot -p123456
18、lvs/nginx/harproxy的优缺点
nginx 优点:
1、工作在网络的七层上,可以针对http应用做一些分流的策略,比如针对域名、目录结构
他的正则规则比HAProxy更加的强大灵活,这也是它目前广泛流行的原因之一。
2、nginx对网络稳定性的依赖非常小,理论上能够ping通就可以进行负载均衡功能,这也是他的优势之一,相反LVS对网络稳定依赖性比较大。
3、nginx的安装配置比较简单,测试起来比较方便,它基本上能把错误日志打印出来
LVS 的设置、测试花费时间比较长,LVS对网络的依赖性比较大
4、可以承担高负载压力并且稳定,在硬件差不多的情况下一般能够支撑几万次的并发量,负载度比LVS相对小一些。
5、nginx可以通过端口监测到服务器内部的故障,比如根据服务器处理网页返回状态码、超时等待,并且会把返回错误的请求重新提交到另外一个节点,不过其中的缺点是不支持url检测,比如用户正在上传一个文件,而处理该节点上传的过程中出现故障,nginx会把上传切到另一台服务器重新处理,而LVS就直接断掉了,如果是上传一个很大的文件或者很重要的文件的话,影响用户体验。
6、nginx不仅仅是一个优秀的负载均衡处理软件,它同时也是强大的web服务器
lnmp也是近几年非常流行的架构,在高流量的环境中稳定性也很好
7、nginx现在作为web反向代理加速越来越成熟了,速度比传统的sqid服务器更快,可以考虑用它作为反向代理加速器。
8、nginx可以作为中层反向代理使用,唯一可以比对的是lighttpd了,但是Lighttpd目前还没有完全的功能,配置也不是那么的清晰易读,社区也没有nginx那么活跃。
9、nginx可以作为静态网页和图片服务器,这方面的性能也无对手,还有nginx的社区非常活跃,第三方模块也很多。
nginx的缺点是:
1、nginx仅能支持http、https和email协议;
2、对后端服务器的健康检查,只能通过端口来检测,不支持通过url来检测
不支持session的直接保持,但是能通过ip_hash 来解决
LVS:使用linux内核集群实现一个高性能,高可用的负载均衡器
它具有很好的可伸缩性、可靠性和可管理性
LVS的优点是:
1、抗负载能力强,是工作在网络四层之上仅做分发之用,没有流量的产生
这个特点也决定了他在负载均衡软件里性能最强的,对内存和CPU资源消耗比较低
2、配置比较低,这是一个优点也是一个缺点,因为可以配置的东西比较少,大大较少了人为出错的概率
3、工作稳定,因为其本身抗负载能力很强,自身有完整的双热备方案
如:LVS+keepalived 不过我们在项目中使用最多的还是LVS+keepalived
4、无流量,lvs只做分发请求,二流量bin不从他本身出去,这点保证了负载均衡IO的性能不会受到大流量的影响
5、应用范围较广,因为LVS工作在4层,所以他几乎对所有应用做负载均衡,包括http、数据库、在线聊天室等
LVS的缺点是:
1、软件本身不支持正则表达式、不能做动静分离,现在许多的网站要求,这个是nginx/haproxy+keepalived的优势所在
2、如果网站响应比较大的话,部署起来比较复杂,相对而言nginx/haproxy+keepalived 就比较简单
HProxy的特点是:
1、haproxy也是支持虚拟主机的
2、haproxy的优点能够补充nginx的一些缺点,比如支持session的保持,cookie的引导,同时支持通过获取指定的url来检测后端服务器的状态
3、haproxy和lVS类似,本身就是一款负载均衡软件,单纯的从效率讲haproxy会比nginx更出色的负载均衡速度,在并发的处理上也是优于nginx的
4、haproxy支持tcp协议的负载均衡转发,可以对mysql读进行负载均衡
对后端的mysql节点进行检测和负载均衡。
5、HAProxy负载均衡策略非常多,HAProxy的负载均衡算法现在具体有如下8种:
①roundrobin,表示简单的轮询,这个不多说,这个是负载均衡基本都具备的;
② static-rr,表示根据权重,建议关注;
③leastconn,表示最少连接者先处理,建议关注;
④ source,表示根据请求源IP,这个跟Nginx的IP_hash机制类似
我们用其作为解决session问题的一种方法,建议关注;
⑤ri,表示根据请求的URI;
⑥rl_param,表示根据请求的URl参数’balance url_param’ requires an URL parameter name;
⑦hdr(name),表示根据HTTP请求头来锁定每一次HTTP请求;
⑧rdp-cookie(name),表示根据据cookie(name)来锁定并哈希每一次TCP请求。
19、mysql数据备份工具
mysqldump
mysqldump是mysql自带的工具,目录在bin目录下面:/usr/local/mysql/bin/mysqldump
支持innodb的热备份,但是由于逻辑备份,所以速度不是很快,适合备份数据比较小的场景使用
mysqldump完全备份+二进制日志可以实现基于时间点的恢复
基于LVM快照备份
在物理备份中,有基于文件系统的物理备份(LVM的快照),也可以使用tar命令对整个数据库目录进行打包备份,但是这些只是冷备份,不同的存储引擎备份也是不一样的,myisam自动备份到表级别
tar包备份
percona提供的xtrabackup工具
支持innodb的物理热备份,支持完全备份,增量备份,而且恢复速度快,支持innodb存储引起的数据在不同数据库之间迁移,支持复制模式下的丛机备份恢复备份恢复,为了让xtrabackup支持更多的扩展资源,可以设立独立的表空间,打开innodb_file_per_table功能,启用之后可以支持单独的表备份
20、keepalived的工作原理如何做到健康检查
keepalived 是vrrp协议实现基础的,vrrp全称virtual router redundancy ,即虚拟路由冗余协议。
虚拟路由冗余协议,可以认为是实现路由器高可用的协议,即将n台提供相同功能的路由器组成一个路由器组,这个组里面有master和多个backup,master上面有一个可以对外提供服务的VIP,master会发送组播,当backup收不到vrrp时候就认为master宕掉了,这时候就需要根据vrrp的优先级来选举一个backup当master,这样就可以保证路由器的高可用了。
keepalived 主要有三个模块,分别是core、是、check和vrrp。core模块以keepalived为核心,负责主进程启动、维护以及全局配置文件的加载和解析,check负责检查,包括常见的各种检查方式,vrrp模块是来实现vrrp协议的
21、统计ip访问情况,要求分析nginx访问日志,找出访问页面数量在前十位的ip
cat access.log |awk '{print $1}' |uniq -c |sort -nr |head -10
22、使用tcpdump监听主机为192.168.1.1,tcp端口为80的数据,同时将输出结果保存到tcpdump.log
tcpdump 'host 192.168.1.1 and port 80' >tcpdump.log
23、如何将本地的80端口转发到8080端口上,当主机ip为192.168.1.1
iptables -A PREROUTING-d 192.168.1.1 -m tcp -d port -80 -j DNAT-to-destination 192.168.1.1:8080
24、你对运维工程师的理解和以及对其工作的认识
运维工程师在公司当中责任最大,需要保证时刻为公司以及客户提供最高、最快、最稳定、最安全的服务
运维工程师一个小小的失误,有可能造成公司重大的损失
因此运维工程师要严谨并且要富有创新精神
25、实时抓取并显示当前系统中tcp 80端口的网络数据信息,请写出完整的操作命令
tcpdump -nn tcp port 80
26、服务器开不了机怎么解决?
A:找原因
1、服务器的电源有问题(断电、电源松动、人为原因)
2、服务器的系统文件丢失、硬件问题,散热不良造成蓝屏死机
3、服务器的网络参数配置错误,物理链路原因等
B:排查错误
1、先检查服务器的电源指示灯是否亮着,如果电源灯不亮,先检查bin并确认电源设备问题时,试着按开机键是否能够服务器点亮,如果不能,则联系数据确认后切换到备用服务器进行业务恢复。
2、如果电源灯亮,接上显示器和键盘,如果服务器系统有异常,不能正常登陆,先进行数据确认,是否执行重启或者更换到备用服务器,以便快速恢复业务。
3、如果正确输入用户密码的情况下能够登陆系统,查看网卡指示灯是否正常,用ping命令测试
4、如果ping不通,先检查是否配置正确,再进行测试
5、能ping通告之数据人员,并帮忙确认链路是否正常,确认网络方面的变化
6、权衡利弊,有没有必要换新的服务上去,恢复业务要紧。
27、Linux中病毒了怎么解决?
1)最简单:重装系统
2)检查病毒文件进行删除
3)中毒之后一般CPU、内存使用率会比较高
机器向外发包等异常情况,排查方法如下:
top找到CPU使用最高的进程,用ps -aux找到,再删除
4)最好把数据备份好之后进行重装一下
28、发现一个病毒文件删除之后又自动创建了怎么办?
一般就是先断外网,然后利用iftop,ps,netstat,chattr,lsof,pstree这些工具顺藤摸瓜
一般都能找到元凶。但是如果遇到诸如此类的问题
/boot/efi/EFI/redhat/grub.efi: Heuristics.Broken.Executable FOUND,个人觉得就要重装系统了
29、说说tcp/ip 的七层模型
应用层
网络服务于最终用户的一个接口
协议有:http、https、ftp、TFTP、snmp、dns、telnet、pop3、DHCP
表示层
数据的表示、安全、压缩(在五层里面已经合并到了应用层)
格式有JPEG、acsll、decoic、加密格式等等
会话层
建立、管理、终止会话(在五层模型里面合并到了应用层)
对应主机进程,指本地主机与远程主机正在进行的会话
传输层
定义传输数据协议的端口号,协议有TCP UDP 数据包一旦离开网卡即进入网络传输层
网络层
进行逻辑地址寻址,实现不同网络之间的路径选择
协议有ICMP IGMP IP (IPV4 IPV6) ARR RAPP
数据链路层:
建立逻辑连接,进行硬件地址寻址、差错校验等功能。(由底层的网络定义协议)
Mac地址访问
物理层
信号、介质。
30、你常用的nginx模块,用来做什么?
rewrite 模块,实现重写功能
access模块:来源控制
ssl:安全加密
ngx_http_gzip_modul:网络传输压缩模块
ngx_http_proxy_module模块实现代理
ngx_cache_purge实现缓存清除功能
31、请列出你了解的web服务器负载架构
nginx
HAproxy
Keepalived
LVS
32、查看http的并发请求与其TCP的连接状态
netstat -n |awk '/^tcp/ {++S[$NF]} END {for(a in S) print a,S[a]}'
33、使用tcpdump嗅探80 端口的访问看看谁最高
tcpdump -i etho -tnn dst port 80 -c 1000 |awk -F "." {printf $1"."$2"."$3"."$4"."} |sort |uniq -c |sort -nr |head -20
34、编写脚本,实现192.168.1.0/24网络中,当前在线的ip有哪些,能ping通认为在线
#!/bin/bash
for ip in `seq 1 255`
do
{
ping -c 192.168.1.$ip > /dev/null 2>&1
if [ $? -eq 0 ]; then
echo 192.168.1.$ip UP
else
echo 192.168.1.$ip down
fi
}&
done
wait
35、如何优化Linux系统(可以不用具体)
1、不用root,添加普通用户,通过sudo授权管理
2、更改默认的远程连接ssh端口禁止root用户远程登录
3、定时自动更新服务器时间
4、配置国内yum源
5、关闭selinux 以及iptables
6、调整文件描述符的数量
7、进件开机服务
8、内核参数优化
9、更改字符集,支持中文,但是建议用英文,防止乱码
10、锁定关键系统文件
11、清空/etc/issue 去除系统及内核版本登录前屏幕控制
36、请执行命令取出 linux 中 eth0 的 IP 地址(请用 cut,有能力者也可分别用 awk,sed 命令答)
cut方法1:
# ifconfig eth0|sed -n '2p'|cut -d ":" -f2|cut -d " " -f1
192.168.20.130
awk方法2:
# ifconfig eth0|awk 'NR==2'|awk -F ":" '{print $2}'|awk '{print $1}'
192.168.20.130
awk多分隔符方法3:
# ifconfig eth0|awk 'NR==2'|awk -F "[: ]+" '{print $4}'
192.168.20.130
sed方法4:
# ifconfig eth0|sed -n '/inet addr/p'|sed -r 's#^.*ddr:(.*)Bc.*$#\1#g'
192.168.20.130
37、请写出下面 linux SecureCRT 命令行快捷键命令的功能?
Ctrl + a —->光标移动到行首
Ctrl + e —->光标移动到行尾
Ctrl + c —->终止当前程序
Ctrl + d —->如果光标前有字符则删除,没有则退出当前中断
Ctrl + l —->清屏
Ctrl + u —->剪切光标以前的字符
Ctrl + k —->剪切光标以后的字符
Ctrl + y —->复制u/k的内容
Ctrl + r —->查找最近用过的命令
tab —->命令或路径补全
Ctrl+shift+c —->复制
Ctrl+shift+v —->粘贴
38、每天晚上 12 点,打包站点目录/var/www/html 备份到/data 目录下(最好每次备份按时间生成不同的备份包)
# cat a.sh
#/bin/bash
cd /var/www/ && /bin/tar zcf /data/html-`date +%m-%d%H`.tar.gz html/
# crontab –e
00 00 * * * /bin/sh /root/a.sh
一、LInux操作系统知识
1、常见的LInux发行版本都有什么?你最擅长哪一个?他的官网是什么?说明你最擅长哪一块?
redhat centos debian ununtu suse
centos
www.centos.com
基本命令操作以及服务搭建
2、linux开机启动的详细流程是什么?系统安装完,忘记密码如何破解?
开机步骤:
第一步:开机自检(BIOS)就是开始工作之前先对自己的工具进行检查是否正常,如果正常那就可以进行接下来的步骤假如步正常就得检测哪里的问题进行处理。BIOS其实就是主板上的一给自检程序,开机先对主板上自带的和外接的一些开机必备的设备进行检测,像CPU,显卡,内存,硬盘等设备的自检过程就是自检
第二步:MBR引导,也就是根据装有linux系统的硬盘上的主引导区的记录进行引导,主引导记录处在硬盘上的第一给物理分区上,硬盘能够读取到数据也就是靠的这个最主要的MBR主引导记录,假如这给512字节丢失那这张硬盘就无法工作。它里面包含了硬盘的主引导程序和硬盘的分区表,分区表有四个分区记录每个分区占16个字节共64个字节,还有446字节放主引导程序,2字节用作校验。
第三步:GRUB菜单,也就是操作系统引导菜单
第四步:加载内核(kernel),也就是启动操作系统的核心
第五步:运行INIT进程,init也就是主进程,它的PID号是1也就是第一个被运行的进程
第六步:读取/etc/inittab配置文件,也就是linux开机时默认的启动模式。在/etc/inittab这给配置文件下可以修改开机默认启动选项
第七步:执行/etc/rc.d/rc.sysinit初始化脚本,也就是init进程的初始化用来执行kernel的任务
第八步:执行/etc/rc.d/rc脚本,通过执行脚本找出默认启动模式选项要启动的进程
第九步:执行/etc/rc.d.rc.local个人配置脚本,也就是用户想要开机自启动的命令或者进程都放在这个脚本文件内,这样设置开机自启方式比较安全。开机时这给脚本文件内的所有命令全部执行一遍
第十步:启动mingetty进程
这时用户就可以看到登录界面,就可以登录系统了
忘记密码
a、重启系统,在GRUB界面,选取忘记密码的系统,按e键进入编辑模式
b、选项Kernel.....按e键进行编辑
c、在编辑界面rhgbquiet后加空格,然后输入"single"或"1"回车
d、按b启动进入单用户模式
f、进入系统后passwd回车输入新密码(如果有selinux,先暂时关闭setenforce0)
3.企业中Linux服务器系统分区标准是什么?(硬盘为300G,内存16G)
答:
/boot200M
/swap16G
/70G
/data剩下的全部空间
4、某一天突然发现Linux系统文件只读,该怎么办呢?完整操作步骤。
答:
首先把系统关机,然后以光盘启动进入救援模式(linuxrescue)
执行"fsck.ext3-y/dev/sda2"(假如只读的分区类型为ext3,分区为/dev/sda2)
5.安装一台系统使用DVD光盘安装,如何安装50台Linux系统如何安装呢?思考一下。
答:
a、可以多用几张DVD一台一台的安装。
b、可以用Kickstart批量安装(客户端从网络启动)
6.用虚拟机安装了一台Linux系统,突然想克隆一台服务器,克隆后发现无法上网,如何解决?
答:
a、编辑网卡配置文件/etc/sysconfig/network-scripts/ifcfg-eth0,将HWADDR和MAC地址这两行删除。
b、修改文件/etc/udev/rules.d/70-persistent-net.rules,删除之前eth0所在的行,将下一行eth1修改为eth0
c、reboot
7.Linux网卡配置文件路径是什么?要使服务器上外网,必须满足的条件有哪些?需要配置什么?
答:
网卡配置文件路径:/etc/sysconfig/network-scripts/ifcfg-eth*(*代表数字)
要上外网需要:能够链接internet的网线(或无线)、有网卡
需要配置:IP、netmask、gateway、dns(自动或手动都ok,服务器一般自动)
8.一般可以使用什么软件远程linux服务器?通过什么上传文件和下载文件?
答:
远程连接linux的软件:xshell、SecureCRT、putty、vnc(图形化)
上传和下载文件:lrzsz、sftp
9./mnt目录主要用于什么?/root目录跟root用户有什么关系?/根目录与/boot目录有什么联系?
答:
/mnt一般用于挂载外接设备
/root是一个目录,是root用户的家目录
/boot目录是/目录下的一个子目录
10.某一天误操作,执行了rm-rf*,会有哪些情况发生?请举例。
答:
a、如果当前目录为"/tmp",那么这个目录下的东西会全部删除(默认不包含隐藏文件)
b、如果当前目录为"/",那么系统上的数据将会丢失,且无法启动,系统崩溃(谨慎使用这个命令)
二、Linux命令及文件操作
1.在/tmp/目录下创建test.txt文件,内容为:Hello,World!,用一个命令写出来。
答:
echo "Hello,World!" > /tmp/test.txt
2.给test.txt文件除所有者之外增加执行权限,最终以数字写出文件的权限。
答:
655
默认是644,可以通过"chmod 655 /tmp/test.txt"
3.用vi命令编辑test.txt,如何跳转到末行,首行,行首、行末,如何在光标行下一行插入
如何复制5行,删除10行,查找jingfeng的字符、把jingfeng替换为jfedu.net
答:
末行:G
首行:gg
行首:^(Shift+6)
行尾:$(Shift+4)
光标下插入一行:o
复制5行:5yy
删除10行:10dd
替换::%s/jingfeng/jfedu.net/g
4.查找linux系统下以txt结尾,30天没有修改的文件大小大于20K同时具有执行权限的文件并备份到/data/backup/目录下。
答:
find / -name *txt -mtime +30 -type f -size +20k -perma= x -exec cp {} /data/backup/\;
5.当前test.txt所属的用户为root,组为abc,请将test.txt使拥有者为abc,组为root,写出命令。
答:
chown abc:root test.txt
6.如何修改Linux启动级别为字符模式并永久生效,如何临时、永久关闭selinux及防火墙,请分别写出操作方法。
答:
更改字符模式:修改/etc/inittab一行为id:3:initdefault:
临时关闭selinnuxsetenforce0
临时关闭防火墙iptables-F
永久关闭selinux修改/etc/selinux/config一行为SELINUX=permissive
永久关闭防火墙 iptables -F; /etc/init.d/iptablessave
7.每次开机在/tmp目录下创建一个当天的日期文件夹(提示:当前日期表示的方法为:`date+%Y%m%d`)
答:
echo "mkdir/tmp/ `date+%Y%m%d`" >> /etc/rc.d/rc.local
8.如何查看文件内容,命令有哪些?查看文件第1行到3行,查看文件最后一行。
答:
查看文件内容:vim、cat、head、tail
查看第1到行:head -3 file
查看最后一行:tail -1 file
9.查看linux服务器IP的命令,同时只显示包含ip所在的行打印出来。
答:
以eth0为例
只打印所在的行:ifconfig eth0 | grep "inetaddr:"
只打印ip:ifconfig eth0 | grep "inetaddr:" | awk -F: '{print$2}' | awk -F ' ' '{print$1}'
10.将普通用户test加入root组的命令是?
答:
usermod -G root test
技术是没有终点的,也是学不完的,最重要的是活着、不秃。 学习看书还是看视频,都不重要,重要的是学会,欢迎关注,我们的目标---不秃。
---更多运维开发交流及软件包免费获取请加V: Linuxlaowang