linux运维(五)

头有点大,也浪费了一些时间。明天过后缓冲一下

1、存储过程与触发器的区别?

答:(1)触发器主要是通过事件执行触发而被执行的,而存储过程可以通过存储过程名称而直接调用。(call/execute)

(2)触发器是一种特殊的存储过程,在表中进行insert、update、delete等DML语句时,数据库服务器就会自动执行触发器所定义的SQL语句

(3)触发器没有参数,而存储过程有参数。

(4)触发器最好不要返回数据,而存储过程可以返回数据

2、netfilter和iptables的区别?

答:(1)iptables是应用程序,它定义了一些规则,而netfilter是框架。

(2)iptables工作在用户空间,而netfilter工作在内核空间。

(3)netfilter是用来实现linux内核防火墙中的内核空间程序代码段,它要么被直接编译进内核,要么包含在模块中;而iptables是用来管理Netfilter防火墙的用户程序。

3、TCP报文格式字段,拥塞控制跟流量控制有何区别?(区别不好说,有点难,即使以前整理过的)

答:序列号、确认号、6个标志字段(FIN/ACK/RST/SYN/URG/PSH)、源端口号、目的端口号、校验和、数据偏移、窗口、紧急指针。

区别:(1)拥塞控制就是防止过多的数据注入到网络中引起链路过载,不要一下子发成百上千个的文件。它是一个全局性的过程,涉及到所有的主机、路由器,以及与降低网络传输性能有关的所有因素。

(2)流量控制指端到端通信流量的控制,不要一下子来个几个G大小的大文件,对方忙过不来。流量控制所要做的就是抑制发送端发送数据的速率,以便使接收端来得及接收。

4、文件A中10条记录,文件B有5条记录,找出A中有但B没有的记录。(一时不好办,以前好像做过)

答:cat A.txt B.txt |sort|uniq -d >chongfu.txt;cat A.txt chongfu.txt|sort |uniq -u

##思路就是先找出两个文件中相同的记录重定向到一个文件,再比较A文件中干掉相同的记录,就剩下A中唯一有的记录。

5、用户A想在它的linux工作站上以用户B的身份登录到C主机上查看D的UID是多少,怎么做?(听起来吓人一跳啊)

答:只要在A主机上执行:ssh -l B C id D 或者ssh [email protected] id D ##C相当于主机名或IP地址,-l代表登录log in

6、不含主键的数据库中出现重复行数据,如何删除这些重复记录?并且重复记录保留一次。

答:select distinct * into tmp from table_name;  ##distinct去会去掉重复行,并且只保留一次。

drop table table_name; ##删除原来的表

select * into table_name from tmp; ##将不含重复的临时表插入到原来的新表中;

drop table tmp;删除临时表

7、上述问题中,如果遇到重复的行都删除呢?只要有重复就一条都不保留

mysql> select * from t1;..

+------+------+

| id   | namw |

+------+------+

|    1 | y    |

|    2 | h    |

|    2 | h    |

|    3 | h    |

|    3 | h    |

|    3 | h    |

+------+------+

答:思路就是group by,having count(*)>1的话,放入到一个临时表中;然后用exists比较两个表,删除原来基表相同的记录,返

mysql> create table tmp as select * from t1 group by id,name having count(*)>1;##在这里重复行只出现一次在tmp表中。

mysql> select * from tmp;

+------+------+

| id   | namw |

+------+------+

|    2 | h    |

|    3 | h    |

mysql> select * from t1 where exists (select * from tmp where tmp.id=t1.id and tmp.namw=t1.namw);#从t1表返回重复行

+------+------+

| id   | namw |

+------+------+

|    2 | h    |

|    2 | h    |

|    3 | h    |

|    3 | h    |

|    3 | h    |

+------+------+

mysql> delete from t1 where exists (select * from tmp where tmp.id=t1.id and tmp.namw=t1.namw)

##只把select换成delete即可。

mysql> select * from t1;

+------+------+

| id   | namw |

+------+------+

|    1 | y    |

+------+------+

8、一台linux主机由两块网卡eth0、eth1,IP分别为192.168.1.1和10.0.0.1,如何让这台服务器作为网关或者说代理服务器让内部的人可以上网?

答:(1)linux主机上:echo 1>/proc/sys/net/ipv4/ip_forward=1   ##开启路由管道

(2)iptables -t nat -A POSTROUTING -o eth1 -j MASQURADE  ##出口IP是动态的

iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o eth1 -j SNAT --to 10.0.0.1 ##出口IP是静态的

service iptables save

(3)在客户端的浏览器中设置代理即可访问Internet。

9、A公司内部的用户反映不能接收来自某新客户公司的邮件,A公司使用自己的Sendmail邮件服务器,你觉得是什么出了问题?

答:(1)当sendmail从任意MTA收到一封邮件时,首先检查收信地址.如果”@”后面的部分和本机文件/etc/mail/local-host-names里本地域的主机名匹配,则尝试将其作为本地邮件保存,无匹配项时则尝试将该邮件转发给外部MTA。主要用来防止垃圾邮件中的,比如公司只想接收或转发来自本地192.168.1.0/24的邮件,应该在文件中添加如下一行:192.168.1 RELAY

(2)/etc/mail/access.db是访问权限的数据文件,可以通过makemap命令将文本文件/etc/mail/access转换生成

(3)/etc/aliases用来实现邮件用户的别名(因为邮箱账号记录不方便),建立公司的邮件列表,邮件服务器的转发;newaliases 用来重新加载文件, 让sendmail读取该文件中的内容

综上分析,是/etc/mail/access出了问题,可以改为From:[email protected] OK ##OK是制约关键字,类似的还有RELAY、REJECT、DISGARD

10、内连接有哪几种?有何区别?

答:等值连接:返回两个表中符合“=”条件的所有数据,并且包括重复列。

非等值连接:返回两个表中符合"<>"条件的所有数据。

自然连接:在等值连接的基础上,去掉重复列即可。

11、存在表T(a,b,c,d),要根据字段c排序后取第21—30条记录显示,请给出sql?

答:select * from T order by c limit 20,10   ##初始记录行的偏移量是 0,20代表第21行起,我要连续记录10行,才能满足30行

12、MySQL中InnoDB引擎的行锁是通过加在什么上完成?(套路有点不同啊)

答:索引值。innodb表数据是索引组织表形式存放,但是对索引页加锁,采用位图方式实现。锁:提供共享资源的并发访问,保证数据的完整性、一致性;InnoDB与myisam的缓存机制不同,InnoDB既缓存数据块,又缓存索引值。

13、如何对linux分区?

答:假设硬盘8GB,我设置虚拟机的物理内存512MB(对于字符界面够了,对于x_windows图形界面不够用,但是可以随时调),真实机的物理内存是固定的(除非使用PAE地址扩展技术),/boot分区200MB,/swap分区为1G,保证为物理内存的2倍大小,/data分区1G,用于存放数据库文件,/root分区2GB,大概占总硬盘大小的25%,最后剩下的全部空间都划分给/home分区。

14、LAMP环境如何测试?对于Fastcgi的主机分离服务如何部署?(服务器分离是我一直想要思考的,三台主机实验还有点难度)

答:测试:对于apache来说,很好测试,浏览器页面访问该站点,返回我在网页根目录发布的index.html的相应内容即可。不好测试的是Mysql,必须要借助一个PHP语言写的动态页面,当我在前端页面输入数据并提交的时候,我的后台数据库服务器会自动添加内容,我只需要select 查询是否有更新即可。单独只测试PHP的话,写一个index.php,看浏览器访问能出现页面不。

分离:httpd——php—fpm(fastcgi process manager)——mysql,都各自拥有自己的IP地址。apahce需要取消注释mod_proxy模块,

在虚拟主机中添加ProxyRequests Off;关闭正向代理,ProxyPassMatch ^/(.*\.php)$fcgi://192.168.1.2:9000/PATH/$1 ,

在PHP代码中,使用$link = mysql_connect(‘172.16.2.6‘,‘root‘,‘magelinux‘);类似字段连接数据库,称为为ODBC。

参考文档:http://yao3800.blog.51cto.com/1522113/1705701

15、TCP什么时候会重传?如何判断一个TCP报文是重传报文呢?(这题拿来面试的话又要刷一批人啊)

答:(1)数据包传输过程中丢失;

(2)服务端收到了客户端的数据报文,但是不予响应,即不发送ACK;

(3)服务端响应过程的途中因为各种原因导致ACK报文丢失了。

判断:重传报文一般具有以下两个特征:一是TCP交互序列号突然下降(因为序列号本来是递增的,要重传以前的报文当然得下降),二是在TCP报头中的序列号、数据长度、应用数据等参数跟前面的某些TCP报文一致。

机制:发送方发送一个或连续好几个带有序列号的报文,在规定的计时器时间内,收到接收方的确认,再继续发送接下来的内容,否则,重传。

重传次数;cat /proc/sys/net/ipv4/tcy_synack_retries默认5次,如果次数到了,那么服务器会发送RESET表示重置终止该连接。

重传时间:比如windows第一次重传3秒,第二次重传前的计时器等待时间是第二次的2倍,linux不知道

16、有一个web服务,怎么监控它在提供服务?

答:(1)写一个脚本,每隔5分钟去ping它,测试这台主机的网络连通性,否则邮件报警

(2)在该脚本中,每隔1分钟用curl命令-I参数去测试,再使用awk命令过滤出200 OK字段,否则,邮件报警

(3)另一方面,那些监控工具如nagios很强大,不能提供服务它也会短信和邮件报警的。

17、微信发一个小视频,使用哪种协议?解释原因?(如果不提前思考,说原因还有点难)

答:毫无怀疑是UDP。原因:(1)UDP封装上层应用数据,添加的控制信息较为少,也不需要建立三次握手,直接交付给网络层处理,延迟那就小了点。另外,我们知道这些语音和视频流量对延迟和抖动要求比较高

(2)。。。(应该还有,待续想)

18、有一个文件里面包含许多单词,单词之间以空白分隔,找出单词‘Linux‘的前一个单词,或者后一个单词?(居然这么问,真难,还是网友厉害!)

echo "centos linuxcast redhat" >1.txt

答:前一个单词:cat 1.txt |tr " " "\n"|awk ‘/linux/{print VAR}{VAR=$0}‘  ### 利用变量VAR保存关键字所在行的上一行

当前行:cat 1.txt |tr " " "\n"|awk ‘/linux/{print $RS}‘ ##RS是当前行的内容

后一个单词:cat 1.txt |tr " " "\n"| awk ‘{if(A)print; A=0} /linux/{A=1}‘ ##找到linux关键字后,构造下一行的输出条件。

19、有一些冷热数据,对这些很冷的的数据,突然之间有很多用户访问,怎么提高磁盘的I/O能力(有点难哦)

答:(1)使用固态硬盘做RAID5阵列。

(2)从业务上减小某个时间段的访问量

20、如何查看linux的网卡流量,是字节还是比特?用什么查看网卡信息,网卡信息包括什么,以及配置文件在哪?(常考)

答:字节。 ethtool命令查看网卡信息,包括千兆还是百兆,双工还是半双工,自协商与否,接口的型号,

(1)sar -n DEV [刷新延迟] [刷新次数] ;(2)iptraf界面,如果说屏幕太小,需要按F11键

21、socket连接和http连接的区别。(这是真难了)

答:(1)Socket本身并不是协议,而是一个调用接口(API),套接字位于应用层与传输层之间的抽象层;http是应用层的无状态协议,用TCP来封装http报文。

(2)socket有IP地址和端口号组成,它是一种编程技术,提供网络通信的能力。http用来规定如何来传输一些诸如ASIII或者二进制类型的数据

22、路由器和交换机的区别?(放到linux运维这儿,是因为可能会涉及很浅的网络知识)

答:(1)路由器工作在网络才呢过,交换机工作在数据链路层。(当然这里默认交换机是二层的)

(2)本身的工作机制不同。路由器拆开三层包头的IP地址,经过查路由表进行路由选择和存储转发。而交换机是拆开帧头查看目的MAC地址,如果MAC地址表有缓存记录则转发,否则广播出去。

(3)路由器划分广播域和冲突域,交换机只划分冲突域,但不划分广播域。

(4)从端口密度来说,路由器端口很少,交换机通常有16、24个不等。

(5)从通信范围来说,路由器是让不同网段进行通信的,而交换机是让本地网段通信的。

23、网站响应太慢,如何排错?(这种题是重点,重复了很多次)

答:首先判断是一个人的问题还是大面积的问题。自己要去测试下,看ping服务器的丢包率情况如何。

(1)用户带宽问题(2)服务器CPU利用率过高(3)DNS解析慢(4)网站出口带宽问题

(5)客户浏览器前端设计问题(6)网页代码质量问题(7)服务器遭遇攻击

24、如何让192.168.10.6 ping通172.16.100.6呢?(以前还真是以为不可能,看了马哥运维,真是颠覆了)

答:在172.16.100.6这台主机上设置iptable -t nat -A POSTROUTING -s 192.168.10.0/24 -j snat --to-source 172.16.100.6即可。

25、用什么工具或命令查看、测试系统的性能?(这个问题值得好好整理一下)

答:(1)磁盘性能:sysbench、iostat、iotop

(2)网络性能:ethtool、sar命令。ping连通性、traceroute测路径故障

(3)内存和swap情况:vmstat 刷新延迟 刷新次数、free -m,以及文件/proc/meminfo

(4)进程情况:top、ps、pstree;线程情况:htop、ps -T

(5)端口情况:netstat

(6)负载情况:uptime、top

(7)CPU情况:sar命令、top命令,以及文件/proc/cpuinfo

(8)日志情况:Awstats 、last命令,以及一些文件如系统日志、服务日志、安全日志

(9)磁盘情况:df -h和fisk -l

(10)并发处理能力:ab、httperf

时间: 2024-10-13 16:11:41

linux运维(五)的相关文章

Linux运维 第二阶段 (五)权限管理

Linux运维第二阶段(五)权限管理 一.权限管理(解决用户和身份不足的问题) >#dumpe2fs  -h /dev/sda2             (查询指定分区详细文件系统信息的命令,-h仅显示超级块中的详细信息) #mount  -o remount,acl  /             (重新挂载根分区,加入acl权限) >acl基本命令: #getfacl  文件名                      (查询文件的acl权限) #setfacl  -m  u:用户名:权限

Linux运维课程 第一阶段 重难点摘要(五)CISCO

Linux运维课程第一阶段重难点摘要(五)CISCO 一.高级路由管理 1.        路由:数据包从一台设备通过网络发往另一台不同网络中的设备,路由器不关心这些主机,它们只关心网络和通向每个网络的最佳路径.目的主机的IP地址用来保证数据包可以通过路由到达目的网络,而主机的MAC地址用于将数据包从路由器投递到目的主机. 静态路由:由管理员手动输入到路由表中的路由:不占用带宽,不会随着网络拓扑的变化而变化,缺少灵活性: 动态路由:通过动态学习得到路由:占用网络带宽和CPU资源:会随着网络拓扑的

Linux运维 第五阶段(四) corosync&pacemaker

Linux运维 第五阶段(四)corosync&pacemaker 一.相关概念: 补充 { what is high Availability? A=MTBF/(MTBF+MTTR) MTBF(mean time betweenfailures平均无故障时间) MTTR(mean time to repair平均修复时间) two ways improve availability? increase MTBF to very large values reduce MTTR to very

Linux运维 第五阶段(九)iSCSI & cLVM & gfs2

Linux运维 第五阶段(九)iSCSI&cLVM&gfs2 gfs2(global file system version2,全局文件系统,CFS集群文件系统,利用HA的信息层,向各node通告自己所持有锁的信息) cLVM(cluster logical volume management,集群逻辑卷管理,将共享存储做成逻辑卷,借用HA的心跳传输机制(通信机制,对于脑裂处理的机制),各node要启动clvmd服务(此服务启动前要启动cman和rgmanager),使得各node彼此间通

《跟老男孩学Linux运维之shell编程实战》-第五章 shell脚本的条件测试

本文的知识点是关于shell脚本的条件测试的相关内容. 通常在shell脚本中我们需要做各式各样的条件判断,比如,测试一个文件是否存在.是否为文件或目录.是否 具有执行权限等等,所以在shell脚本中,条件判断还是至关重要的.接下来我们进入正题:shell脚本的条件测试. 1.在bash编程中,条件测试常用的语法形式如下表: 提示: 语法1中的test命令和语法2中的[]是等价的.语法3中的[[]]双中括号为扩展的test命令. 语法4中的(())常用于计算. 在双中括号[[]]中可以使用通配符

Linux运维 第四阶段 (五) MySQL用户和权限管理

Linux运维 第四阶段 (四)MySQL用户和权限管理 1.相关概念: >mysql用户: 类似VSFTPD虚拟用户: 密码,自己独有的加密机制,PASSWORD函数: 用户名@主机: 用户名16字符以内,主机(主机名.IP.网络地址.通配符(%,_): --skip-name-resolve(跳过名称解析,可提高用户连接速度) 账号是用来认证的: >RENAME USER  'old_name'@'host'  TO  'new_name'@'host;  (重命名用户) >权限,授

Linux运维(十)-2016-12-9整理

也有段时间没有整理面试题目了,这几天呢,完成了2场实习生和1场校招,十分郁闷,为什么金融运维一点都不关注技术,在乎我的学校成绩,我尼玛想说,学校那么水的课程能说明什么,跟技术有一丁丁点关系吗?我学业成绩不好,就能否定我的专业岗位基础不行吗?唉,劳资想说,你如果质疑我的能力,你就问我,劳资要是被你虐倒是我算我输,学艺不精我就服,看过去有球用. 这辈子职业生涯都不想进外包和IDC这两种类型的公司,就是TM打杂的,薪资还低,关键是不厚道,比如垃圾胜蓝.这回校招那家是我之前就提到的那家,大多数人对我是认

Linux运维学习笔记之一:运维的原则和学习方法

一直在用Linux,但从未系统学习过,从1月1日开始学习到7月16日结束,近七个月学习,让自已对Linux有了新的认识,老男孩老师的课真的不错,实战性很强.由于只能中午和晚上10点以后才有时间,所以所有的实验是在不同电脑上完成的,文中IP可能有点问题,但应该不会影响实验.同时,为了保证笔记的完整,在做笔记的时候,从网上也下载了些图片和内容. 第一章 运维的原则: 一.简单.易用.高效 二.修改前做备份 1.以便回滚 2.以便事后比对改过的内 三.最小化原则 1.安装系统最小化 2.开启服务最小化

如何迅速掌握并提高linux运维技能

之前曾经写过一篇如何学习Linux的文章,得到了很多反馈,大家都在分享自己的学习经验和体会,并且也提出了不少意见和建议.学习这个事情其实是说起来容易,做起来就很难,虽然给大家提高了很多学习linux的思路和方法,但是很多时候,学习的过程是个锻炼和总结的过程,需要自己去体会和领悟,而这个领悟跟钻研的深度有关,所以,对linux技术点钻研较深的朋友,可能收获的知识就多一些,提高也就快一些,而相反,不太喜欢钻研的朋友们,技能提高就稍微慢一点,因此,我们说虽然有了统一的学习方法,但是由于每个人的领悟力不