好几天没复习了,脑壳已经反应不过来了,被问到自己研究过的,绝对SB,前功尽弃!希望明天接到电话啊,进入向往的电商公司!

1、一个sql语句查询很慢怎么办?

答:(1)登录到Mysql,show global status;和show processlist查看数据库系统状态

(2)查看慢查询日志,show variables like '%slow%',分析是那些SQL语句拖慢了系统

(3)vi /etc/my.cnf配置文件,对参数进行修改,比如最大连接数和表缓存

(4)合理添加索引

2、哪些字段适合当作索引,哪些字段不适合建立索引?内连接外连接的区别?

答:适合:外键字段、主键字段、在where子句中的字段。

不适合:更新频繁的数据不适合建立索引、全表扫描比建立索引快则不需要建立索引、like查询以%开头、有or语句的不适合建立索引

内连接:匹配左右两表某个列值的相同的记录行

外连接:又分为左外连接、右外连接、全外连接,返回某一个表相匹配的行,并在另一表不匹配的行为空值

左外连接就是以左表为准,去匹配右表,如果有匹配的则返回,如果不匹配,则对应的列为空值。左表有多少条数据,结果就是多少条数据

3、事务隔离级别?

答:(1)未提交读,可以读取未提交事务的数据,也称为脏读

(2)提交读,只能读取已经提交事务的数据,也称为未重复读

(3)可重复读,这个事务在读取某一行的时候,另一个事务又对这行数据进行修改并提交,那么之前的事务就会看到新的行,也称为幻读

(4)串行化读,强制事务顺序,使之不可能冲突,从而解决幻读问题

4、mysql数据库cpu飙升到500%的话他怎么处理?

答:(1)多实例的服务器,先top查看是那一个进程,哪个端口占用CPU多;

(2)show processlist查看是否由于大量并发,锁引起的负载问题;

(3)否则,查看慢查询,找出执行时间长的sql;explain分析sql是否走索引,sql优化;

(4)再查看是否缓存失效引起,需要查看buffer命中率

5、bash for循环打印下面这句话中字母数不大于6的单词(昆仑万维面试题)

I am oldboy teacher welcome to oldboy training class.
#!/bin/bash
for word in I am oldboy teacher welcome to oldboy training classdoif [ `echo ${word}|wc -L` -le 6 ]   ## -L, --max-line-length显示最长行的长度thenecho $wordfidone

6、正则表达式匹配具有IP地址的行

答:grep -E "([0-9]{1,3}\.){3}[0-9]{1,3}" test.txt  ##事实上,这不是正确答案,还需要细分255等,但是这个好记,一般适用,还必须是扩展的

7、[1,15,4,6,29,22] 把他进行排序,并去掉中括号和逗号 (这要是笔试题遇到,跪了)

答:(1)sed -i 's/,/ /g ;s/\[//g ;s/\]//g ' test.txt  ##把逗号变为空格,并删除中括号,-i改变原文件,但是-i不会输出该文件

(2)sed -i 's/ /\n/g' test.txt |sort -nr ##把空格变为换行,并进行逆向排序

(3)sed -i 's/\n/ /g' test.txt  ##已经排完序,但是需要改为横行输出

8、设置网卡MTU为1K的命令是

答:临时生效:ifconfig eth0 mtu 1024

永久生效:echo "MTU=1024" >>/etc/sysconfig/network-scripts/ifcfg-eth0

9:将当期Linux终端的系统环境变量改为GB2312;

答:export LANG=zh_CN.GB2312

10、建立一个用户组(group)group1,该组只能对目录/opt/dir1进行读取;

答:groupadd group1;setfacl -m g:group1:r-- /opt/dir1

11、如果每天3:00时,需要将进程myproc自动强行终止掉(使用kill停止),之后并重新启动(执行 myproc命令即可),则应该执行的脚本命令分别是:

0 3 * * * /bin/pkill -18 myproc

12、用awk实现如下结果?(如果不知道paste命令,很难做出来)

cat 1.txt

1 2 3

1 2 3

cat 2.txt

a b c

a b c

实现:2 a c

2 a c

答:paste 1.txt 2.txt |awk '{print $2,$4,$6}'

13、MySQL的锁类型,何时会触发锁?

答:页级:引擎 BDB。

表级:引擎 MyISAM , 理解为锁住整个表,可以同时读,写不行

行级:引擎 INNODB , 单独的一行记录加锁

用索引字段做为条件进行修改时, 是否表锁的取决于这个索引字段能否确定记录唯一,当索引值对应记录不唯一,会进行锁表,相反则行锁。

读锁应该是第一个sql就释放,写锁在整个事务结束时释放

14、session和cookie的区别

答:(1)cookie数据存放在客户的浏览器上,session数据放在服务器上。

(2)cookie不是很安全,别人可以分析存放在本地的COOKIE并进行COOKIE欺骗,考虑到安全应当使用session,因为它不会任意读取客户存储的信息。

(3)单个cookie保存的数据不能超过4K,很多浏览器都限制一个站点最多保存20个cookie。

15、MySQL的索引的实现方式?索引类型?

答:方式:B+树、散列索引、位图索引   类型:普通索引、主键索引、唯一索引、聚集索引

参考文档:http://www.cnblogs.com/barrywxx/p/4351901.html

16、session原理和共享方式。

答:(1)定义:session是由服务器维持的一个存储空间,用户连接服务器时,会由服务端生成一个唯一的session_ID,该session_ID被称为标识符来存取服务端的session存储空间。

(2)原理:sessionID这一数据是保存在cookie中的,用户提交页面时,会将这一sessionID提交到服务端,用于存取session数据。但是不会完全依赖于cookie,可以通过服务端自动URL重写方式来传递sessionID的,并且整个过程对程序员透明。

(3)方式:基于cookie的共享,基于数据库的共享,基于memcached的共享

参考文档:http://blog.csdn.net/zhuanshenweiliu/article/details/38844741

17、取出/etc/passwd中shell出现的次数?(awk数组解决)

答:awk -F ":" '{arr[$NF]++}END{for (shell in arr){print shell,arr[shell]}}' /etc/passwd

18、合并文件问题(这题比上面更难一些,主要是排序问题和大小变换问题)

a.txt

100 $5,000

200 $500

300 $3,000

400 $1,250

b.txt

100 Json Smith

200 John Doe

300 Sanjay Gupta

400 Ashok Sharma

要求结果

400 ashok sharma $1,250

200 john doe $500

100 json smith $5,000

300 sanjay gupta $3,000

答:paste b a|awk '{print $1,$2,$3,$5}'|tr [:upper:] [:lower:]|sort -k 2 >c.txt

##tr命令将大写转为小写,sort -k根据关键字排序,2表示第二列

19、打印本机交换分区大小,输出如下:(这题是很难的,如果不是上机,很难做出来)

Swap: 2016M

答:free -m|grep -i swap|awk '{print $1,$2"M"}'或者下面第二种方法

top -n 1|grep Swap|sed 's/k.*//g'|awk '{print $1,$2/1024"M"}'

##top 命令显示系统资源占用情况,-n 1表示只调用1次,Swap: 16779884k total 将k以及后面的字符串替换为空,这样这剩下Swap: 16779884,除以1024即可

20、测试输出本机创建20000个目录所用的时间?(我日,这题要是没见过以为是世纪难题!)

time for i in `seq 1 20000`; do mkdir "$i" &>/dev/null; done

输出;

real0m0.065s

user0m0.015s

sys0m0.024s

##值得注意的是do后面没有分号,另外/dev/null只是把屏幕产生的结果放在黑洞中,但是依然会产生这些目录

21、求root用户登陆了多少时间。

答:用现在的时间减去登陆时间,一步做不了用脚本

#!/bin/bash
login=`who am i | awk '{print $4}'`
logintime=`date -d $login +%s`   ##%s是取到秒的意思,因为上面只有小时:分钟
now=`date +%s`  ##-d显示指定字符串所描述的时间,而非当前时间
let last=now-logintime   ##用let命令进行计算操作时不需要用$符号
let lasttime=last/3600
echo "logged on for $lasttime hours"

22、Nagios监控linux服务器的通信过程?

答:当Nagios需要监控某个远程linux主机的服务或者资源情况时:

1)nagios会运行check_nrpe插件,我们要在nagios配置文件中告诉它要检查什么(/usr/local/nagios/etc/objects/commands.cfg)

2)check_nrpe插件会通过SSL连接到远程的NRPE daemon

3)NRPE daemon会运行相应的nagios插件来执行检查本地资源或服务

4)NRPE daemon将检查的结果返回给check_nrpe插件,插件将其递交给nagios程序做处理

5)CGI图形显示展现给用户

注意:NRPE daemon需要nagios插件安装在远程被监控linux主机上,否则,daemon不能做任何的监控

23、有商品表, 有主键goods_id, 栏目列cat_id, 价格price,在价格列上已经加了索引,但按价格查询还是很慢,可能是什么原因。

答:在实际场景中,一个电商网站的商品分类很多,直接在所有商品中,按价格查商品,是极少的,一般客户都来到分类下,然后再查.

改正: 去掉单独的Price列的索引, 加 (cat_id,price)复合索引再查询

24、解释varchar(30)中的30、int(20)中20的涵义?为什么这么设计?int(20)存储的数字的上限和下限是多少?

答:20表示最大显示宽度为20,但仍占4字节存储,存储范围不变;varchar(30)中30的涵义最大存储30个字符,它是可变长度。

设计原因:实际业务有这样的需求。4个字节是32位,可能是第一位为0,则正数是2^32,可能第一位是1,则负数是-(2^32-1)

25、MySQL主从复制binlog 日志格式

答:row:只需要记录哪一条记录被修改了,修改成什么样了

statment:每一条会修改数据的SQL语句都会记录到 master 的bin-log中

mixed:就是前两种模式的结合

26、如何将本地80端口的请求转发到9000端口,当前主机IP为192.168.2.1(这题经常搞混)

答:iptables -A PREROUTING  -d 192.168.2.1 -p tcp -m tcp --dport 80 -j DNAT --to-destination 10.0.0.18:9000

27、处理以下oldboy.log,将域名取出并进行计数排序

http://www.etiantian.org/index.html

http://www.etiantian.org/1.html

http://post.etiantian.org/index.html

http://mp3.etiantian.org/index.html

http://www.etiantian.org/3.html

http://post.etiantian.org/2.html

答:awk -F "/" '{print $3}' oldboy.log |sort|uniq -c

28、如何提高MySql的安全性?

答:(1)如果MYSQL客户端和服务器端的连接需要跨越并通过不可信任的网络,那么需要使用ssh隧道来加密该连接的通信。

(2)使用set password语句来修改用户的密码,先“mysql -u root”登陆数据库系统,然后“mysql> update mysql.user set password=password(’newpwd’)”,最后执行“flush privileges”就可以了。

Mysql需要提防的***有,防偷听、篡改、回放、拒绝服务等,不涉及可用性和容错方面。对所有的连接、查询、其他操作使用基于acl即访问控制列表的安全措施来完成。也有一些对ssl连接的支持。

(3)设置除了root用户外的其他任何用户不允许访问mysql主数据库中的user表;加密后存放在user表中的加密后的用户密码一旦泄露,其他人可以随意用该用户名/密码相应的数据库;

(4)使用grant和revoke语句来进行用户访问控制的工作;

采用防火墙可以去掉50%的外部危险,让数据库系统躲在防火墙后面工作,或放置在dmz区域中;

(5)为了防止被恶意传入非法参数,例如where id=234,别人却输入where id=234 or 1=1导致全部显示,所以在web的表单中使用”或”"来用字符串,在动态url中加入%22代表双引号、%23代表井号、%27代表单引号;传递未检查过的值给mysql数据库是非常危险的;

(6)确信在mysql目录中只有启动数据库服务的用户才可以对文件有读和写的权限;

29、线程通信、以及线程同步机制?

答:通信:跟进程一样,消息队列、共享内存、套接字、信号、信号量、管道通信

同步:(1)、临界区:通过对多线程的串行化来访问公共资源或一段代码,速度快,适合控制数据访问。在任意时刻只允许一个线程对共享资源进行访问,如果有多个线程试图访问公共资源,那么在有一个线程进入后,其他试图访问公共资源的线程将被挂起,并一直等到进入临界区的线程离开,临界区在被释放后,其他线程才可以抢占。

(2)、互斥量:采用互斥对象机制。 只有拥有互斥对象的线程才有访问公共资源的权限,因为互斥对象只有一个,所以能保证公共资源不会同时被多个线程访问。互斥不仅能实现同一应用程序的公共资源安全共享,还能实现不同应用程序的公共资源安全共享

(3)、信号量:它允许多个线程在同一时刻访问同一资源,但是需要限制在同一时刻访问此资源的最大线程数目

(4)、事 件: 通过通知操作的方式来保持线程的同步,还可以方便实现对多个线程的优先级比较的操作

30、mysql优化?

答:(1)表的设计合理(符合3NF)(2)添加适当索引(3)分表技术(4)读写【update/insert/delete】分离(5)存储过程【模块化编程】(6)mysql配置文件优化【配置最大并发数、缓存大小】(7)硬件升级(固态硬盘或RAID阵列)(8)定时清除不需要的数据,定时碎片整理

转载于:https://blog.51cto.com/19951008/1844987

Linux运维(三)相关推荐

  1. Linux运维 第三阶段 (二) DHCP

    Linux运维 第三阶段 (二) DHCP服务 dhcp(dynamic host configuration protocol) 前期bootp(无盘工作站)-->dhcp(引入租约lease ...

  2. Linux运维 第三阶段 (十八) varnish

    Linux运维 第三阶段 (十八) varnish 数据: 结构化数据,RDBMS: 非结构化数据,FS,存海量小文件,NAS.SAN.DFS可提供较好的性能: web cache: 程序具有局部性( ...

  3. linux分区方案 arv,Linux运维 第三阶段 (九)NFS

    Linux运维第三阶段(九)NFS nfs 为方便文件有序管理,把磁盘disk空间在内核映射为一种软件结构,通过文件系统FS管理工具(mke2fs)将磁盘格式为某分区格式(ext4),则disk被分为 ...

  4. Linux运维 第三阶段 (一) 网络配置及openssl加密

    Linux运维 第三阶段 (一) 网络配置及openssl加密 主机接入网络:IP,netmask,gateway,hostname,DNS1,DNS2,DNS3,route,dhcp(dynamic ...

  5. linux运维工程分多少种,运维工程师划分的三种层次都是什么

    今天小编要跟大家分享的文章是关于运维工程师划分的三种层次都是什么?正在从事Linux运维功能的小伙伴们来和小编一起看一看吧,希望本篇文章能够对大家有所帮助. 初级:背锅侠型运维 背锅侠型运维人员在遇到 ...

  6. linux运维面试题:第三部分

    linux运维面试题: (第三部分)三 本章是关于docker的面试题于实战(实战=当你正在面试时,回答问题的方式) 注:(很多题都是通过网上搜索总结出来的,可能在一部分内发现自己写的东西:如有不满请 ...

  7. Linux运维跳槽必备的40道面试精华题

    过一次年,结婚.存款.父母养老,一系列向钱看的事都在碾压我们本来还挺简单的神经,但难过没有出路,唯有找到好的方法和事业方向,才能实现一步一个脚印的逆袭. 下面是一名资深Linux运维求职数十家公司总结 ...

  8. Linux运维人员成长之路学习书籍推荐

    对于从事或者即将从事Linux运维的童鞋来说,学习书籍和视频课程两者缺一不可,当然最重要的是要付诸于实践.今天为大家推荐一些不错的书籍,希望对对大家有帮助. 入门书: <鸟哥的私房菜(基础篇)& ...

  9. linux运维的发展方向

    linux运维发展常见的就是下面两条路线: 第一条:运维应用-->系统架构-->运维开发-->系统开发 第二条:运维应用-->应用dba-->架构dba-->开发D ...

  10. 网络配置——Linux运维基础

    今天把Linux的网络配置总结了一下,尽管并不难可是是个比較重要的基础.然后我也不知到自己以后是否会做运维,可是我知道自己比較喜欢刨根问底.还有就是我很珍惜我以前掌握过的这些运维的技能.今天突然间问自 ...

最新文章

  1. java 执行cmd windows_Windows平台Java调用cmd命令执行程序
  2. 寄存器在哪里_二、汇编之寄存器
  3. 如何:修改 Office Open XML 文档【转载】
  4. kafka原理_P8架构师带你参透Kafka:设计原理、消息存储、消息消费原理等等
  5. 阿里云MVP陈磊:数字化转型驱动业务创新
  6. 40vf什么意思_变频器的VF模式是什么意思?VF什么意思
  7. dfa matlab用法,关于使用MF-DFA方法计算广义Hurst指数的MATLAB操作问题
  8. 交叉风帆行业调研报告 - 市场现状分析与发展前景预测
  9. Iris数据集神经网络训练
  10. centos7下学习Redis(一)
  11. Twaver-HTML5基础学习(2)基本数据元素(Data)
  12. pe服务器注册表,在PE里如何修改系统注册表?U盘PE下修改本机注册表方法
  13. 毕业设计基于linux下http,Linux下HTTP服务器设计-毕业设计.doc
  14. MATLAB NAR时间序列神经网络两种预测方法
  15. mongodb连接不上的问题Exception thrown during connection pool background maintenance task
  16. Photoshop CC 2019 软件安装教程
  17. 情侣博客源码php,分享超炫的表白页面和爱的纪念日源码
  18. 怎么彻底处理windows下遇到的广告流氓软件例如:双11天喵、霸业传奇、贪玩蓝约等
  19. 2K和XP下的CMD命令
  20. sony android mp3播放器,入手一年,详细聊聊 索尼ZX505、艾利和SR15 两款安卓播放器的使用体验...

热门文章

  1. 在服务中mysql启动不了了_mysql在服务项里无法启动
  2. mysql允许虚拟机访问权限_设置虚拟机安装的mysql访问权限及删除mysql
  3. php 上楼梯问题 递归,算法:爬楼梯问题中的递归
  4. springboot分页展示功能_SpringBoot实战项目(三)用户列表以及分页功能实现
  5. Java 8新特性探究(十一)Base64详解
  6. CentOS安装第三方yum源EPEL
  7. ReentrantLock及AQS浅谈
  8. struts2文件上传,获取文件名和文件类型
  9. hdu-acm steps Common Subsequence
  10. Redis源码分析系列十一:createClient后面内容