网传Linux运维面试题解答(三)

题目来源:http://2358205.blog.51cto.com/2348205/1688449

十多年的皮山网站建设经验,针对设计、前端、开发、售后、文案、推广等六对一服务,响应快,48小时及时工作处理。成都全网营销的优势是能够根据用户设备显示端的尺寸不同,自动调整皮山建站的显示方式,使网站能够适用不同显示终端,在浏览器中调整网站的宽度,无论在任何一种浏览器上浏览网站,都能展现优雅布局与设计,从而大程度地提升浏览体验。创新互联从事“皮山网站设计”,“皮山网站推广”以来,每个客户项目都认真落实执行。

      http://mofansheng.blog.51cto.com/8792265/1627702

大部分都自己做的,部分参考了原帖博主的答案

1、DNS使用的端口号和协议,简单描述一下DNS正向解析和反向解析的工作原理和作用还有应用场景?

DNS使用

DNS使用的端口号是53,封装协议udp。正向解析是指域名到IP地址的解析过程。反向解析是从IP地址到域名的解析过程,它的作用就是通过查询IP地址的PTR记录来得到该IP地址指向的域名。PTR (Pointer Record),指针记录,是电子邮件系统中的一种数据类型,被互联网标准文件RFC1035所定义。与其相对应的是A记录、地址记录。二者组成邮件交换记录。A记录解析名字到地址,而PTR记录解析地址到名字,地址是指一个客户端的IP地址,名字是指一个客户的完全合格域名。PTR记录被用于电子邮件发送过程中的反向地址解析。使用了域名反向解析后,就可以大大降低垃圾邮件的数量。

2.编写IPTABLES使用内网某台机器的80端口可以在公网访问,假设公网IP为10.10.1.1 ,实现192.168.1.0/24段的NAT.       

iptables -A INPUT -p tcp --dport 80 -j ACCEPT   #允许80端口访问

iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o eth0 -j SNAT --to-source 10.10.1.1

3.举出三个以上的主流WEB服务器,并简述他们的特性和优缺点不限操作系统?


Apache、Nginx、IIS、tomcat、lighttpd等

特点没啥好说的,PHP和静态用Nginx,JAVE用tomcat

4,举出两个主流代理服务器,简述工作模式和优缺点?

Nginx、Squid

5,举出两个负载均衡的软件,并简述工作模式和优缺点?


Nginx、LVS、HAproxy

6,IE,FF,chrome浏览器最大并发请求数是多少?

当我们在浏览网页的时候,对浏览速度有一个重要的影响因素,就是浏览器的并发数量。并发数量简单通俗的讲就是,当浏览器网页的时候同时工作的进行数量。 如果同时只有2个并发连接数数量,那网页打开的时候只能依赖于这2条线程,前面如果有打开慢的内容,就会直接影响到后面的内容打开。但是如果同时有更多的并发连接数,这样就会大大的提高网页加载速度。IE11、FF、chrome默认都为6,并发连接数也可以自己修改的。

参考文章:http://www.iefans.net/liulanqi-zuida-bingfa-lianjieshu/

7,MySQL数据库备份种类有哪些,依据数据库的状态可分为哪些备份,备份工具有哪些,部署一个高可用mysql应用 环境,并说明他的高可用性?

按照要备份的数据集合的范围可分为完全备份、部分备份、增量备份、差异备份

按照数据备份方式可分为物理备份和逻辑备份,物理备份一般就是通过tar,cp等命令直接打包复制数据库的数据文件达到备份的效果,逻辑备份一般就是通过特定工具从数据库中导出数据并另存备份(逻辑备份会丢失数据精度)

按照数据库的状态可分为热备份、温备份、冷备份

热备份指的是当数据库进行备份时,数据库的读写操作均不是受影响 

温备份指的是当数据库进行备份时,数据库的读操作可以执行, 但是不能执行写操作 
冷备份指的是当数据库进行备份时,数据库不能进行读写操作, 即数据库要下线

MySQL备份工具:mysqldump、mysqlhotcopy 、kvm快照备份、tar工具备份、xtrabackup工具备份(只支持InnoDB存储引擎)等

MySQL的高可用方案,我们公司现在采用的是Heartbeat+DRBD的方案,也有推荐使用mycat的,还没有用过,这里就不展开说了。

8,什么是裸设备,他的好处是什么?,mysql支持裸设备吗?

裸设备:也叫裸分区(原始分区),是一种没有经过格式化,不被Unix/Linux通过文件系统来读取的特殊字符设备。裸设备可以绑定一个分区,也可以绑定一个磁盘。

好处:因为使用裸设备避免了再经过操作系统这一层,数据直接从Disk到数据库进行传输,所以使用裸设备对于读写频繁的数据库应用来说,可以极大地提高数据库系统的性能。当然,这是以磁盘的 I/O 非常大,磁盘I/O已经成为系统瓶颈的情况下才成立。如果磁盘读写确实非常频繁,以至于磁盘读写成为系统瓶颈的情况成立,那么采用裸设备确实可以大大提高性能,最大甚至可以提高至40%,非常明显。 

mysql支持裸设备



9,如果给你一个100g的INNODB类型数据库,你会用什么备份方案来做备份。


Xtrabackup

1,Xtrabackup是什么

Xtrabackup是一个对InnoDB做数据备份的工具,支持在线热备份(备份时不影响数据读写),是商业备份工具InnoDB Hotbackup的一个很好的替代品。

Xtrabackup有两个主要的工具:xtrabackup、innobackupex

1、xtrabackup只能备份InnoDB和XtraDB两种数据表,而不能备份MyISAM数据表

2、innobackupex是参考了InnoDB Hotbackup的innoback脚本修改而来的.innobackupex是一个perl脚本封装,封装了xtrabackup。主要是为了方便的同时备份InnoDB和MyISAM引擎的表,但在处理myisam时需要加一个读锁,并且加入了一些使用的选项,如slave-info可以记录备份恢复后,作为slave需要的一些信息,根据这些信息,可以很方便的利用备份来重做slave。

2,Xtrabackup可以做什么 :

在线(热)备份整个库的InnoDB、 XtraDB表
在xtrabackup的上一次整库备份基础上做增量备份(innodb only)
以流的形式产生备份,可以直接保存到远程机器上(本机硬盘空间不足时很有用)

MySQL数据库本身提供的工具并不支持真正的增量备份,二进制日志恢复是point-in-time(时间点)的恢复而不是增量备份。
Xtrabackup工具支持对InnoDB存储引擎的增量备份,工作原理如下:

(1)首先完成一个完全备份,并记录下此时检查点的LSN(Log Sequence Number)。

(2)在进程增量备份时,比较表空间中每个页的LSN是否大于上次备份时的LSN,如果是,则备份该页,同时记录当前检查点的LSN。
首 先,在logfile中找到并记录最后一个checkpoint(“last checkpoint LSN”),然后开始从LSN的位置开始拷贝InnoDB的logfile到xtrabackup_logfile;接着,开始拷贝全部的数据文件.ibd;在拷贝全部数据文件结束之后,才停止拷贝logfile。
因为logfile里面记录全部的数据修改情况,所以,即时在备份过程中数据文件被修改过了,恢复时仍然能够通过解析xtrabackup_logfile保持数据的一致。

10,写一个简单的shell脚本,脚本运行时让CTRL+C无法中断的该shell脚本?

在脚本里加入trap "" SIGINT 或 trap "" 2 以忽略SIGINT信号

11、具体说说cacti/nagios 的安装过程?cacti如何监控mysql?

我在日常工作中都是使用脚本一键安装,以下引用原帖答案:


cacti安装步骤:首先安装好lamp环境(建议都使用编译安装)和snmp服务,rrdtool工具安装,然后建立cacti库和登录mysql账号,并赋权;其次下载并解压cacti到web server的htdocs或html目录下,确保敲入http://IP:port/cacti能被访问到,进而在web上安装cacti,修改web页面上的snmp团体字,确保跟snmpd.conf的团体字一致,然后再手动执行php poller.php看看能否在rra目录下生成.rrd文件,默认只监控本机资源,将php.poller.php命令写入到crontab中,每5分钟执行一次,如果需要监控远程主机,需要在对方主机安装snmp服务,并且保证snmp的团体字与监控主机上的snmp团体字是一致的;最后,添加其他监控主机,添加模板,安装插件等一系列工作。


nagios安装步骤:首先同样安装好lamp环境(建议使用编译安装),然后下载并安装nagios和nagios-plugin,整合apache和naigos,并创建web登录账号验证,确保敲入http://IP:port/nagios能正常访问并登录,远程主机安装nrpe或NClient++;最后添加配置远程主机信息,报警功能实现,添加所需的监控指标等工作。

cacti监控mysql:首先到cacti的论坛上下载cacti监控mysql的模板,然后导入到cacti中,然后添加主机,选择应用模板,最后等待5分钟,看看是否监控正常。


12、sed和awk命令的区别?

  1. awk适合按列(域)操作,sed适合按行操作

  2. awk适合对文件的抽取整理,sed适合对文件的编辑

  3. 如果文件是格式化的,即由分隔符分为多个域的,优先使用awk

  4. awk更为强大,支持数组、循环等,甚至可以看作是一门编程语言,内部语法类似C语言

  5. sed是一个流编辑器,它的强大之处在于可以以行的方式来脚本化处理文本,并且语法相对awk来说更为简单,它的功能就是增删改查,但它毕竟不是编程语言,没有循环、数组等逻辑,所以,sed通常和awk一起使用,它们刚好互补,一起使用构成了文本处理的两个利器

13、如何更改linux主机名?

编辑配置文件 /etc/sysconfig/network    

更改HOSTSNAME,保存退出后重启生效;

14、登录linux,我们除了使用密码验证,还可以使用哪种方式?简述配置过程。

使用密钥登录,客户端生成公钥和私钥,客户端保存私钥,公钥复制到远程linux主机,登录时使用密钥登录,配置过程略

15、如何给grub加密码(明文、密文),密文加密又分成哪几种?         

grub明文加密和密文加密唯一的区别在于password 加不加--md5参数,明文则不加,如果是密文,要加,而且需要先用命令grub-md5-crypt计算密码的md5值,用这个md5值代替明文的密码,编辑/etc/grub.conf

1) 单纯对GRUB界面加密,而不对被引导的系统加密 在timeout一行下面加一行: password --md5 PASSWORD 


2) 对GRUB界面加密,同时对被引导的系统加密 在timeout一行下面加一行: password --md5 PASSWORD ,在title一行下面加一行: lock

3) 同时存在多个被引导系统,针对特定的系统实例分别加密(未对GRUB操作界面加密) 在title一行下面加一行: lock ,在lock一行下面紧贴着再加一行: password --d5 PASSWORD 注:lock不能单独使用。


16、如何用yum安装/删除一个软件包?如何查看某个软件包是否已经安装

yum install

yum localinstall   安装本地rpm包

yum remove 

rpm -qa 软件包名  或 rpm -qa | grep  

17、如何查看系统版本?(3个方法)

查看系统或内核版本:

cat /etc/redhat-release 或 cat /etc/centos-release 

lsb_release -a 

uname -a

cat /etc/issue

cat /proc/version

18、find 找出 当前目录下的 目录和普通文件? 找出当前目录下10天没有改变,大小大于4K的普通文件或目录

find . -type d -o -type f

find . -type d -o -type f -size +4k -mtime +10 

19、在当前目录下创建一个名字为1的目录 的命令?  创建级联目录 ./2/3/的命令? 一条命令创建级联目录 ./1/2/3和./1/2/4?

mkdir 1 

mkdir -p ./2/3/

mkdir -p ./1/2/{3,4}

20、cp一个目录中的文件需要什么权限,mv呢?touch呢?rm呢?

cp一个目录中的文件,需要对这个目录有x权限,对这个文件有r权限

mv、touch、rm,都需要对这个目录有w和x权限,对文件权限没有要求

21、用cat如何向文件里重定向字符串


cat >> test.txt << EOF  (以EOF为结束符,可以换成别的)

>1111111111

>2222222222

>EOF

22、建立一个公共目录/opt/public,要求每个用户都可以创建文件和目录,但只能自己本人和root可以删除;

mkdir /opt/public

chmod 1777 /opt/public


网页标题:网传Linux运维面试题解答(三)
转载来源:http://ybzwz.com/article/peedcj.html