运维屌丝回答网传Linux运维面试题(一)


前段时间网上流传有不少Linux运维的面试题,豪鹫也看了一些,但不少都没有附答案,最近工做比较空闲,利用这三年的运维经验,作作题目,当是巩固一下知识,如答案有误或者各位有更好的答案,欢迎点评。这里固然有小部分答案是网上整理过来的, 请原做者见谅,此做为引用。node


后续将整理出豪鹫亲身经历面试过的公司运维技术面的题目(非笔试题目,技术面运维经理的提问),并也附上答案。mysql

敬请期待。。。。。linux


如下是网上面试题,会经过大概4篇博文来整理面试题目,蓝色内容为豪鹫的回答:(未完待续……)面试


 上海实战面试经历----Linux 系统/运维面试总结sql


同窗在上海某网络公司面试题:shell


一、LINUX系统软件安装和卸载的常见方法数据库


答:A.rpm包卸载:rpm -e XXX.rpm   (若是想忽略依赖,可加上--nodeps)windows

B.yum remove xxx.rpm  这种方法很是不建议使用,卸载过程会将待卸载的软件包所依赖的软件包一并卸载掉,很容易形成系统缺乏某些包而崩溃等问题安全

C.源码包卸载:cd命令进入编译后的软件目录,即安装时的目录,执行make uninstall命令便可;或者直接删除安装目录bash



二、Windows和LINUX经常使用的远程链接工具备那些


答:命令远程链接工具:Xshell、SecureCRT、Putty、SSH Secure Shell Client等

图形远程链接工具:xmanager(需安装配置服务并打开177端口)、VNC-Viewer(linux需安装vncserver)、windows自带的远程桌面(linux需安装xrdp和vnc)



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


答:A、修改IP地址、网关:编辑/etc/sysconfig/network-scripts/ifcfg-eth0,修改里面IPADDR和GATEWAY内容,没有这两行,则添加便可,添加时确保BOOTPROTO=static,静态地址,如IPADDR=192.168.1.100   GATEWAY=192.168.1.1

B、修改主机名称:编辑/etc/sysconfig/network,修改里面的HOSTNAME内容,如设置主机名称为mysql,则:HOSTNAME=mysql便可;





四、编写脚本实现如下功能;

   天天早上5点开始作备份

   要备份的是/var/mylog里全部文件和目录能够压缩进行备份

   备份能够保存到别一台器上19二、16八、一、2 FTP账号 aaa 密码 bbb

   要示天天的备份文件要带有当天的日期标记


答:

[root@haojiu ~]#cat /root/mylogbak.sh

#!/bin/bash

#scripts for dirbakup and upload to ftp server.

#author by haojiu 

#create by 

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  

rm -rf  mylog_*.tar.gz     #这步以前能够作一个判断,判断文件上传成功再执行rm,留给各位发挥吧。


添加crontab:

crontab -l

00 05 * * * /bin/bash /root/mylogbak.sh     #天天早上5点开始执行备份脚本

   

   

五、IPTABLES相关的命令


(豪鹫不熟悉iptables,这里请网友补充,具体问题还要具体分析)



六、mysql相关的题

  新安装MYSQL后怎样提高MYSQL的安全级别


答:A.修改mysql默认端口

 B.linux下能够经过iptables来限制访问mysql端口的IP地址

 C.对全部用户设置较复杂密码并严格指定对应帐号的访问IP(可在mysql库中user表中指定用户的访问可访问IP地址)

 D.root特权帐号的处理(建议给root帐号设置强密码,并指定只容许本地登陆)

 E.开启二进制查询日志和慢查询日志

 F.mysql安装目录及数据存储目录权限控制:给mysql安装目录读取权限,给mysql日志和数据所在目录读取和写入权限

 G.删除无用mysql帐号和删除无用的数据库(安装好的mysql默认会有个test库,可将其删除)

  

   MYSQL的主从原理,怎么配置文件


答: 总体上来讲,复制有3个步骤:   

      A.master将改变记录到二进制日志(binary log)中(这些记录叫作二进制日志事件,binary log events);

      B.slave将master的binary log events拷贝到它的中继日志(relay log);

      C.slave重作中继日志中的事件,将改变反映它本身的数据。


   Mysql复制的基本原理过程以下:


(1)Slave上面的IO线程链接上Master,并请求从指定日志文件的指定位置(或者从最开始的日志)以后的日志内容;

(2)Master接收到来自Slave的IO线程的请求后,经过负责复制的IO线程根据请求信息读取指定日志指定位置以后的日志信息,返回给Slave端的IO线程。返回信息中除了日志所包含的信息以外,还包括本次返回的信息在Master端binary log文件的名称以及在Binary log中的位置;

(3)Slave的IO线程收到信息后,将接收到的日志内容依次写入到Slave端的RelayLog文件(mysql-relay-lin.xxxxx)的最末端,并将读取到的Master端的bin-log的文件名和位置记录到master-info文件中,以便在下一次读取的时候可以清楚的告诉master“我须要从某个bin-log的哪一个位置开始日后的日志内容,请发给我”

(4)Slave的SQL线程检测到Relay Log中新增长了内容后,会立刻解析该Log文件中的内容成为在Master端真实执行时候的那些可执行的查询或操做语句,并在自身执行那些查询或操做语句,这样,实际上就是在master端和Slave端执行了一样的查询或操做语句,因此两端的数据是彻底同样的。


补充:mysql主从复制的优势————

<1> 若是主服务器出现问题, 能够快速切换到从服务器提供的服务;

<2> 能够在从服务器上执行查询操做, 下降主服务器的访问压力;

<3> 能够在从服务器上执行备份, 以免备份期间影响主服务器的服务。

  

  为MYSQL添加一个用户


  mysql> grant select,insert,update,delete on book.* to test2@localhost identified by "abc";    #增长test2用户,密码为abc。并只能在localhost这台主机上登陆,而且只能访问book这个库中的表,具备查询,插入,更新,删除权限;

  语法:mysql> GRANT <权限> ON <库>.<表> TO '用户'@'主机名' identified by "密码";

  

  

七、WINDOWNS相关的问题

  你是否对WINDOWNS系统打过补丁,若是有100台你会怎么作


 答:(题主是一个不专业的MCSE,记得在win2003中,有发布指派这个概念的,请各位网友补充)在域环境中,应该是将一台服务器做为域控补丁的update服务器,利用“发布与指派”的功能,将补丁批量更新到内网其余服务器;

 

  WINDOWNS下怎么为MYSQL作定时彻底备份

  答:批处理+计划任务+ftp上传至远程服务器

  

  在没有硬件防火墙的状况下,怎样提升WINDOS系统安全

  答:用ISA防火墙?

  


同窗面试大智慧试题


一、显示/test目录下的全部目录


答:豪鹫这里提供4种方法:

ls -d */

find . -type d -maxdepth 1  (若是不加-maxdepth 参数,将会列出无穷多的子目录。)

ls -F | grep '/$'

ls -l | grep '^d'|awk '{print $9}'



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


答:tar --exclude /etc/a/b -zPcvf /home/a/a.gz /etc/a       (不加P选项会提示:『tar: Removing leading `/' from member names』)

验证:

[root@haojiu a]# tar tPvf /home/a/a.gz         (忽略掉b文件)

drwxr-xr-x root/root         0 2015-08-21 10:15 /etc/a/

-rw-r--r-- root/root         0 2015-08-21 10:15 /etc/a/d

-rw-r--r-- root/root         0 2015-08-21 10:15 /etc/a/f

-rw-r--r-- root/root         0 2015-08-21 10:15 /etc/a/c

-rw-r--r-- root/root         0 2015-08-21 10:15 /etc/a/e




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

答:chmod +x a.sh



四、umask 022表明什么意思


答:新建文件夹或文件的权限是由所谓基本码减去称之为umask的屏蔽位获得的。

按照规定:文件夹的基本码是rwxrwxrwx(777),文件的基本码是rw-rw-rw-(666)

所以新建文件夹是777-022=755(rwxr-xr-x),新建文件是666-022=644(rw-r--r--)。

综上,umask 022表示默认建立新文件权限为755 也就是 rxwr-xr-x(全部者所有权限,属组读写,其它人读写) 



五、如何查看某进程所打开的全部文件


答:取出该进程的进程号,而后用lsof -p pid查看打开的全部文件。(这里以crond进程为例)


[root@haojiu a]# ps -ef |grep crond|grep -v grep |awk '{print $2}'   #取出进程号

2550

[root@zintao01 a]# lsof -p 2550                                 #查看该进程打开的全部文件

COMMAND  PID USER   FD   TYPE             DEVICE SIZE/OFF    NODE NAME

crond   2550 root  cwd    DIR                8,2     4096       2 /

crond   2550 root  rtd    DIR                8,2     4096       2 /

crond   2550 root  txt    REG                8,2    64096  820728 /usr/sbin/crond

crond   2550 root  mem    REG                8,2    65928  524319 /lib64/libnss_files-2.12.so

crond   2550 root  mem    REG                8,2 99158576  788202 /usr/lib/locale/locale-archive

crond   2550 root  mem    REG                8,2   472064  554920 /lib64/libfreebl3.so

crond   2550 root  mem    REG                8,2    43392  554921 /lib64/libcrypt-2.12.so

crond   2550 root  mem    REG                8,2  1926800  554903 /lib64/libc-2.12.so

crond   2550 root  mem    REG                8,2   115536  554937 /lib64/libaudit.so.1.0.0

crond   2550 root  mem    REG                8,2    22536  554909 /lib64/libdl-2.12.so

crond   2550 root  mem    REG                8,2    58480  554938 /lib64/libpam.so.0.82.2

crond   2550 root  mem    REG                8,2   124624  554913 /lib64/libselinux.so.1

crond   2550 root  mem    REG                8,2   156928  554899 /lib64/ld-2.12.so

crond   2550 root    0u   CHR                1,3      0t0    4160 /dev/null

crond   2550 root    1u   CHR                1,3      0t0    4160 /dev/null

crond   2550 root    2u   CHR                1,3      0t0    4160 /dev/null

crond   2550 root    3u   REG                8,2        5 1084973 /var/run/crond.pid

crond   2550 root    4u  unix 0xffff88003b3949c0      0t0   13870 socket

crond   2550 root    5r   DIR               0,10        0       1 inotify

 


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


答:[root@haojiu ~]# tcpdump -i eth0 port 80



七、删除 /a/b下的全部文件及目录

答:[root@haojiu ~]# rm -rf /a/b/*



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

答:Windows下有:ipcofnig(/all,/renew,/release),ping,tracert,nslookup,telnet……

    Linux下有:ifconfig,ping,traceroute,dig,nslookup,telnet……


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

答:ftp(20和21)、https(443)、smtp(25)、pops(110)、ssh(22)



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

答:豪鹫没作过,这里提供网上的作法: 在个人电脑上单击鼠标右键,选择属性,点击“高级”标签,点击【启动和故障恢复】下的“设置”按钮,点击“编辑”按钮,将Boot.ini文件的最后一行后面添加一个开关 “/PAE”(不带引号),保存后从新启动机器便可。



十一、请用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端口)



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

答:脚本以下

[root@zintao01 ~]# cat adduser.sh 

#!/bin/bash

#script for adduser.

#create by haojiu

#2015-x-x


groupadd class

user=std

for i in {01..30}

do

useradd -G class ${user}$i

done



1三、在mysql客户端查询工具中,如何获取当前的全部链接进程信息

答:mysql> show full processlist;



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

答:在my.cnf中的[mysqld]段下面加入:expire-logs-days=7(设置自动清除7天钱的logs),重启mysql;

或者登陆进mysql,执行:purge binary logs to 'mysql-bin.000003';          #删除bin-log(删除mysql-bin.000003以前的而没有包含mysql-bin.000003)

若是是mysql主从环境的,删除日志,语句格式以下:  

PURGE {MASTER | BINARY} LOGS TO ‘log_name’

PURGE {MASTER | BINARY} LOGS BEFORE ‘date’


文章原始出处:http://2358205.blog.51cto.com/2348205/1687708

相关文章
相关标签/搜索