【备战秋招】Linux运维电子大厂面试之每日精进自己(一)

1.误操作drop语句导致数据库数据被破坏,请写出恢复思想及实际大体步骤?

#所有数据的恢复都在于备份,如果没有备份,那就恢复不了.误操作后要恢复时需使用增量恢复的方法进行恢复,具体的步骤如下:

(1)查看备份与binlog文件
(2)刷新并备份binlog文件删除线格式 
	#mysqladmin -uroot -p123456 -S /data/mysql.sockflush-logs
	(-S, --socket=name      指定soc**ket文件。)
(3)将binlog文件恢复成sql语句
		#mysqlbinlog –no-defaults mysql-bin.000061 mysql-bin.000062 >bin.sql
(4)将其中误操作的语句删除(就是drop的动作)
(5)解压全备文件,恢复全备文件
	#gzip -d mysql_backup_2016-10-12.sql.gz
	#mysql -uroot -pmysql123 -S/data/3306/mysql.sock < mysql_backup_2016-10-12.sql
			(如果有对表的操作,恢复数据时需要接表名)
(6)恢复误操作前的binlog文件记录的sql语句
		#mysql -uroot -pmysql123 -S/data/3306/mysql.sock < bin.sql
			(最后登陆数据库,查看数据是否恢复成功,如果有确定的误操作时间,就直接恢复这段时间的数据即可。)*

2.列举一个实际生产的例子,网站访问速度慢是因为数据库访问慢导致的

(1)情况描述:
	#有一天同事反应,网站的访问速度慢.甚至出现打不开网页的情况.刷新等待好长时间又可以打开了
(2)解决措施
	#登录数据库执行show full processlist(查看有哪些线程在运行),查看有很多相同的SQL查询且针对一张表,确定网站打不开就是这个原因,解决方法是禁止此IP的访问
	#建议:(1)为了避免此类问题的发生.可以安装中间件实现读写分离
	     (2)安装数据缓存服务器,尽量将大部分读的请求不直接对接数据库

3.通过kill -9 野蛮粗鲁的杀死数据库导致数据库启动故障,给出排错方法或是经验

(1)查看MySQL启动日志(查看log,发现mysql系统表丢失了,因为数据库数据都是测试数据,重建数据库不影响。)
(2)执行创建表的初始化脚本:(进入数据库目录# ./scripts/mysql_install_db --user=mysql --datadir=/var/lib/mysql)
(3)再次执行启动脚本:+WX:machinegunJoe666 免费获取资料

4.IDC机房宽带突然从平时100M增加到400M,请分析原因并给出解决方法

(1)可能遭受DDOS***(写一个预防DDOS的脚本)
(2)内部的服务器中毒,大量外发流量(内部运维规范、制度)
(3)网站的元素被盗连,在门户页面被推广导致大量流量产生(网站的基本优化)
(4)合作公司来抓数据来了

5.正在工作的Linux系统,发现文件系统只读了,分析原因如何解决

(1)检查 /etc/fstab 配置,查看是否对磁盘进行了挂载。
(2)检查当前实际挂载的磁盘状态是否正确。
(3)对于 Ubuntu 或者 Debian 系统,检查磁盘挂载参数 barrier 的设置情况。
(4)通过 fsck 等工具检查文件系统状态。

6.磁盘报错"No sapce left on device",但是df -h后发现磁盘空间没有满,为什么

(1)df -h查看没有满,但df -i查看满了
(2)解决方法:
		#删除/backup目录中的部分文件,释放出/backup分区的一部分inode,特别要留意那些spool出来的文件,这种文件一般会占用比较多的节点,因为比较小而且零碎,同时要多留意日志文件信息等
		#用软连接将空闲分区/opt中的newcache目录连接到/data/cache,使用/opt分区的inode来缓解/backup分区inode不足的问题
	ln-s /opt/newcache /data/cache
		#更换服务器,用高配置的服务器替换低配置的服务器

7.发现磁盘空间满了,删除了一部分Nginx access日志,可发现磁盘空间还是满的,为什么

(1)未释放磁盘空间原因:
	在Linux或者Unix系统中,通过rm或者文件管理器删除文件将会从文件系统的目录结构上解除链接(unlink).然而如果文件是被打开的(有一个进程正在使用),那么进程将仍然可以读取该文件,磁盘空间也一直被占用。而我删除的是nginx的log文件删除的时候文件应该正在被使用
(2)解决方法
	重启nginx服务,或者用>/opt/nginx/logs/nginx.log清空日志文件,而不是直接删除。 

8.一个tomcat启动脚本,手动执行ok,但放到计划任务里执行不成功,为什么

(1)计划任务的格式错误
(2)环境变量引起的不成功

9.描述MySQL主从复制原理

(1)从库生成两个线程,一个I/O线程,一个SQL线程;
(2)i/o线程去请求主库 的binlog,并将得到的binlog日志写到relay log(中继日志) 文件中;
(3)主库会生成一个 log dump 线程,用来给从库 i/o线程传binlog;
(4)SQL 线程,会读取relay log文件中的日志,并解析成具体操作,来实现主从的操作一致,而最终数据一致;

Linux进程状态

10.Apache服务的常用工作模式及对应的特点

worker模式:
		(1)线程模式
		(2)占用资源少
		(3)稳定性略差
		(4) 并发大

prefork模式:
		 (1)进程模式 
		 (2)占用资源多
		 (3)稳定
		 (4)并发一般+WX:machinegunJoe666 免费获取资料

11、显示/test目录下的所有目录

ls -R /test
ls -a /test

12、将文件/etc/a 下中除了 b文件外的所有文件压缩打包放到/home/a下,名字为a.gz

tar --exclude /etc/a/b -zPcvf /home/a/a.gz /etc/a

13、给一个脚本赋予执行权限的命令及选项

chmod +x 
基本文件是644,改成647

14、umask022代表什么意思

(1)新建文件夹或文件的权限是由所谓基本码减去称之为umask的屏蔽位得到的。
(2)按照规定:文件夹的基本码是rwxrwxrwx(777),文件的基本码是rw-rw-rw-(666)
(3)因此新建文件夹是777-022=755(rwxr-xr-x),新建文件是666-022=644(rw-r--r--)。
(4)综上,umask 022表示默认创建新文件权限为755 也就是 rxwr-xr-x(所有者全部权限,属组读写,其它人读写)

15、如何查看test进程所打开的所有文件

(1) lsof -c test
(2)lsof -c string

16、获取eth0网卡上80端口的数据包信息

tcpdump -i eth0 port 80

17、删除 /a/b下的所有文件及目录

rm -rf /a/b/*

18、常用的网络管理工具(5种以上)

(1)Windows下有:ipcofnig(/all,/renew,/release),
							ping,
							tracert,
							nslookup,
							telnet……
(2)Linux下有:ifconfig,
						ping,
						traceroute,
						dig,
						nslookup
						,telnet……

19、ftp、https、smtp、pops、ssh的端口号

 21     443     25      110    22

20、如何在windows server 2003/2008上开启支持内存3-4G

在我的电脑上单击鼠标右键,选择属性,
点击“高级”标签,点击【启动和故障恢复】下的“设置”按钮,
点击“编辑”按钮,将Boot.ini文件的最后一行后面添加一个开关 “/PAE”(不带引号),
保存后重新启动机器即可

Linux的目录结构

21、请用iptables控制来自192.168.1.2主机的80端口请求

iptables -A INPUT -p tcp -s 192.168.1.2 --dport 80 -j ACCEPT
 (允许来自192.168.1.2这台主机访问80端口)

22、请用shell脚本创建一个组class、一组用户,用户名为stdX X从01-30,并归属class组

groupadd class
user=std
for i in {01..30}
do
useradd -G class ${user}$i
done

23、在mysql客户端查询工具中,如何获取当前的所有连接进程信息

mysql> show full processlist;

24、如何删除已满的数据库日志信息

(1)在my.cnf中的[mysqld]段下面加入:
expire-logs-days=7(设置自动清除7天钱的logs),重启mysql;
(2)或者登录进mysql,
执行:purge binary logs to 'mysql-bin.000003'; 
#删除bin-log(删除mysql-bin.000003之前的而没有包含mysql-bin.000003)
(3)如果是mysql主从环境的,删除日志,语句格式如下: 
		PURGE {MASTER | BINARY} LOGS TO ‘log_name’
		PURGE {MASTER | BINARY} LOGS BEFORE ‘date’
+WX:machinegunJoe666 免费获取资料

25、LINUX系统软件安装和卸载的常见方法

(1)rpm包卸载:rpm -e xxx.rpm
(2)yum remove xxx.rpm
(3)源码包卸载:cd进入编译后的软件目录,执行make uninstall命令,

26、Windows和LINUX常用的远程连接工具有那些

常用的远程连接Linux工具有:XShell、Putty、SecureCRT
windows:Teamviewer/Splashtop/Chrome Remote Desktop app/TightVNC/ PC Anywhere

ç¨äºlinuxæä½ç³»ç»

27、如何修改LINUX的IP地址、网关和主机名

(1)A、修改IP地址、网关:编辑/etc/sysconfig/network-scripts/ifcfg-eth0,
修改里面IPADDR和GATEWAY内容,没有这两行,则添加即可,
添加时确保BOOTPROTO=static,静态地址,
如IPADDR=192.168.1.100 GATEWAY=192.168.1.1
(2)B、修改主机名称:编辑/etc/sysconfig/network,
修改里面的HOSTNAME内容,
如设置主机名称为mysql,则:HOSTNAME=mysql即可;

28、编写脚本实现以下功能;

1)每天早上5点开始做备份
2)要备份的是/var/mylog里所有文件和目录可以压缩进行备份
3)备份可以保存到别一台器上192、168、1、2 FTP帐号 aaa 密码 bbb
4)要示每天的备份文件要带有当天的日期标记

bakdir=mylog
date=`date +%F`
cd /var
tar zcf ${bakdir}_${date}.tar.gz ${bakdir}
sleep 1
ftp -n <<- EOF
open 192.168.142.129 #远程ftp服务器IP
user aaa bbb
put mylog_*.tar.gz
bye.
EOF
worker模式:
		(1)线程模式
		(2)占用资源少
		(3)稳定性略差
		(4) 并发大
+WX:machinegunJoe666 免费获取资料
prefork模式:
		 (1)进程模式 
		 (2)占用资源多
		 (3)稳定
		 (4)并发一般

为了更好的帮助到朋友们,俺还在这里准备准备了各大厂的精华面试题



最后,祝大家早日学有所成,拿到满意offer,快速升职加薪,走上人生巅峰。 

可以的话请给我一个三连支持一下我~~

【资料获取】

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

我是黑客

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值