精华内容
下载资源
问答
  • 运维面试题

    千次阅读 多人点赞 2018-09-18 17:10:20
    运维面试题 NETWORK 1 请描述TCP/IP协议中主机与主机之间通信的三要素 参考答案 IP地址(IP address) 子网掩码(subnet mask) IP路由(IP router) 2 请描述IP地址的分类及每一类的范围 参考答案 A类1-26...

    运维面试题

    NETWORK

    1 请描述TCP/IP协议中主机与主机之间通信的三要素

    参考答案

    IP地址(IP address)

    子网掩码(subnet mask)

    IP路由(IP router)

    2 请描述IP地址的分类及每一类的范围

    参考答案

    A类1-26

    B类128-191

    C类192-223

    D类224-239组播(多播)

    E类240-254科研

    3 请描述A、B、C三类IP地址的默认子网掩码

    参考答案

    A类255.0.0.0

    B类255.255.0.0

    C类255.255.255.0

    4 请描述预留给企业的私有网络使用的私有IP有哪三段

     

    参考答案

    A类 10.0.0.1-10.255.255.254

    B类 172.16.0.1-172.16.31.254

    C类 192.168.0.1-192.168.255.254

     

    5组建一个企业网络按照TCP/IP五层参考模型的标准,每个层次需要选购哪些相应层次的设备

     

    参考答案

    应用层 计算机

    传输层 防火墙

    网络层 路由器

    数据链路层 交换机

    物理层 网卡

     

    6 请分别描述T568A、 T568B的线序

     

    参考答案

    T568A:白绿、绿、白橙、蓝、白蓝、橙、白棕、棕

    T568B:白橙、橙、白绿、蓝、白蓝、绿、白棕、棕

     

    7 请简要描述交换机的工作原理

     

    参考答案

    初始状态

    根据源MAC地址学习

    除源端口外的端口广播未知数据帧

    接收方回应

    交换机实现单播通信

    8 MAC地址的长度,组成及单播、组播、广播地址的表示方式

     

    参考答案

    MAC地址长度48位,前24位代表厂商,后24位代表网卡编号,MAC 地址的第8位为0时表示该MAC地址为单播地址,为1时表示组播地址,48位都为1表示广播地址。

     

    9 请简要描述网络层有哪些常见协议

     

    参考答案

    ARP协议

    RARP协议

    代理ARP

    ICMP协议

    10 什么是TTL,作用并简要描述TTL的原理

     

    参考答案

    TTL是数据生命周期

    作用:避免数据在网络中无限循环转发

    原理:当网络中的数据包每经过一个路由器TTL值减1,当TTL值为0时,数据包丢弃。

     

    11 请描述SMTP及POP3分别是什么协议、作用及端口号

     

    参考答案

    SMTP:简单邮件传输协议,用于发送和接收邮件,端口号25。

    POP3:邮局协议版本3,用于客户端接收邮件,端口号110。

    12 请描述http及https分别是什么协议、作用及端口号

     

    参考答案

    HTTP:超文本传输协议,用于传输Internet浏览器使用的普通文本、超文本、音频和视频等数据,端口号为TCP的80。

    HTTPS:安全超文本传输协议,基于HTTP开发,提供加密,可以确保消息的私有性和完整性,端口号为443工作区子系统。

     

     

     

    CISCO

     

    1  ISL和802.1Q 有哪些异同

    参考答案

    相同点:都是显式标记,即帧被显式标记了VLAN的信息。

    不同点:IEEE 802.1Q是公有的标记方式,ISL是Cisco私有的。ISL采用外部标记的方法,802.1Q采用内部标记的方法,ISL标记的长度为30字节,802.1Q标记的长度为4字节。

     

    2  RIP的最大跳数是

    A. 15

    B. 16

    C. 12

    D. 18

    参考答案

    最大路数为A 选项。

    这是因为,RIP度量值为跳数 ,最大跳数为15跳,16跳为不可达。

    3 三层交换机的作用

    参考答案

    三层交换机是具有网络层功能的交换机,三层交换=二层交换+三层转发,使用三层交换技术实现VLAN间通信。

    4 请描述基于CEF 的快速转发有哪两个信息表

    参考答案

    转发信息库(FIB):FIB类似于路由表,包含路由表中转发息的镜像。当网络的拓扑发生变化时,路由表将被更新,而FIB也将随之变化,这些信息是根据路由表中的信息得到的。

    邻接关系表:存储第2层编址信息,对于每个FIB条目,邻接关系表中都包含相应的第2层地址。

     

    5 什么是STP及作用

    参考答案

    STP :生成树协议

    作用:逻辑上断开环路,防止广播风暴的产生。当线路故障,阻塞接口被激活,恢复通信,起备份线路的作用。

    6 什么是HSRP及作用

    参考答案

    HSRP:热备份路由选择协议

    作用:确保了当网络边缘设备或接入链路出现故障时,用户通信能迅速并透明地恢复,以此为IP网络提供冗余性。通过使用同一个虚拟IP地址和虚拟MAC地址,LAN网段上的两台或者多台路由器可以作为一台虚拟路由器对外提供服务。

    7 交换机端口有哪5种STP状态

    参考答案

    转发(Forwarding)

    学习(Learning)

    侦听(Listening)

    阻塞(Blocking)

    禁用(Disabled)

    8 请描述访问控制列表有哪三种类型

    参考答案

    标准访问控制列表

    扩展访问控制列表

    命名访问控制列表

    9 请描述扩展访问控制的作用及列表号

    参考答案

    作用:

    可以根据源IP地址,目的IP地址,指定协议,端口等过滤数据包。

    扩展访问控制列表号:

    100-199

    10 请简要描述访问控制列表的处理过程

    参考答案

    如果匹配第一条规则,则不再往下检查,路由器将决定该数据包允许通过或拒绝通过。

    如果不匹配第一条规则,则依次往下检查,直到有任何一条规则匹配。

    如果最后没有任何一条规则匹配,则路由器根据默认的规则将丢弃该数据包。

    11 请简要描述NAT的作用

    参考答案

    通过将内部网络的私有IP地址翻译成全球唯一的公网IP地址,使内部网络可以连接到互联网等外部网络上。

    12 请描述NAT 的优点及缺点

    参考答案

    优点:

    节省公有合法IP地址

    处理地址重叠

    增强灵活性

    安全性

    缺点:

    延迟增大

    配置和维护的复杂性

    不支持某些应用,可以通过静态NAT映射来避免

    13 请描述NAT三种实现方式的区别

    参考答案

    静态转换的对应关系一对一且不变,并且没有节约公用IP,只隐藏了主机的真实地址。

    动态转换虽然在一定情况下节约了公用IP,但当内部网络同时访问Internet的主机数大于合法地址池中的IP数量时就不适用了。

    端口多路复用可以使所有内部网络主机共享一个合法的外部IP地址,从而最大限度地节约IP地址资源。

     

     

     

    SYSTEM

     

     

    1 什么是绝对路径?什么是相对路径?

    参考答案

    绝对路径:以 / 开始的完整路径

    相对路径:以当前工作目录为参照的路径

     

    2 常见通配符的含义。

    在命令行环境中,通配符 * 、?、[n-m] 、{n,m} 各自的含义是什么?

    参考答案

    * :匹配任意个数的任意字符

    ? :匹配任意单个字符

    [n-m] :匹配从n到m这个连续范围内的任意单个字符

    {n,m} :匹配字符串n或m

     

    3 Linux中管道“|”的作用?

    参考答案

    将前一个命令的输出结果,交由后面命令处理,当做后面命令的参数

     

    4 简述find命令的格式及常见用法。

    参考答案

    命令格式:find [查找范围] [查找条件]

    常见的查找条件设置:

    -type:按文件类型查找

    -name:按文件名称查找

    -size:按文件大小查找

    -mtime:按内容修改的时间

     

     5  vim编辑器的工作模式及切换。

    vim编辑器包括哪几种模式,各自的作用是什么,如何切换?

    参考答案

    主要包括三种工作模式:

    命令模式:启动vim编辑器后默认进入命令模式,该模式中主要完成如光标移动、字符串查找,以及删除、复制、粘贴文件内容等相关操作。

    输入模式:该模式中主要的操作就是录入文件内容,可以对文本文件正文进行修改、或者添加新的内容。处于输入模式时,vim编辑器的最后一行会出现“—插入 --”的状态提示信息。

    末行模式:该模式中可以设置vim编辑环境、保存文件、退出编辑器,以及对文件内容进行查找、替换等操作。处于末行模式时,vim编辑器的最后一行会出现冒号“:”提示符。

     

    6  YUM简介。

    什么是YUM,其作用是什么,主要支持哪几种方式提供软件源?

    参考答案

    是一种基于“C/S”结构的RPM软件更新机制,所有的软件包由集中的软件仓库提供,能够自动分析并解决软件包之间的依赖关系。

    支持的软件源主要包括:

    本地文件夹:file://.. ..

    FTP服务器:ftp://.. ..

    HTTP服务器:http://

    2 客户端配置文件。

     

    在建立 .repo 仓库配置文件时,常见的配置条目如下所示,请补充各自的作用。

    [Server]:( )

    name:( )

    baseurl:( )

    enabled:( )

    gpgcheck:( )

    gpgkey:( )

    参考答案

    自定义源的名称,具有唯一性

    本软件源的描述字串

    指定YUM服务端的URL地址

    是否启用此频道

    是否验证待安装的RPM包

    用于RPM验证的密钥文件

    3 客户端配置文件路径与命名。

     

    为RHEL6服务器指定要使用的YUM源时,建立的配置文件一般应放在( )目录下,其扩展名应该是( )。

    参考答案

    /etc/yum.repos.d、.repo

     

    7 编译源码包过程介绍。

    采用源码包编译的方式安装软件包时,有哪些基本过程、各自的作用是什么?

    参考答案

    tar解包:解压、释放安装包内的文件

    ./configure配置:针对当前系统环境指定安装目录、选择功能等设置。

    make编译:将源代码编译成二进制的可执行程序、库文件等数据。

    make install:将编译好的程序文件、配置文档等复制到对应的安装目录。

    8 Linux目录结构介绍。

    Linux系统的根目录下主要包括哪些文件夹,各自的作用是什么?

    参考答案

    /boot:存放Linux内核、引导配置等启动文件。

    /bin:存放最基本的用户命令,普通用户有权限执行。

    /dev:存放硬盘、键盘、鼠标、光驱等各种设备文件。

    /etc:存放各种配置文件、配置目录。

    /home:存放普通用户的默认工作文件夹(即宿主目录、家目录)。

    /root:Linux系统管理员(超级用户)root的宿主目录。

    /sbin:存放最基本的管理命令,一般管理员用户才有权限执行。

    /usr:存放额外安装的应用程序、源码编译文件、文档等各种用户资料。

    /var:存放日志文件、用户邮箱目录、进程运行数据等变化的文档。

    /tmp:存放系统运行过程中使用的一些临时文件。

     

    9 find命令的扩展。

    在Linux中find常见的选项都有哪些?都有什么作用?

    参考答案

    -type:按文件类型查找

    -name:按文件名称查找

    -size:按文件大小查找

    -mtime:按内容修改的时间

    -iname:根据名称查找,忽略大小写

    -uid:根据uid查找,属于这个用户的文件

    -gid :根据gid查找,属于这个组的文件

    -user :根据用户名查找,查找属于这个用户的

    -group :根据组名查找,查找属于这个组的

    -nouser :查找这个文件不属于任何用户的

    -nogroup :查找这个文件不属于任何组的

    -maxdepth :限制目录查找的深度

    -inum :根据文件i节点编号查找

    10 简述autofs服务。

    作用、主要配置文件、配置要点?

    参考答案

    1)autofs的作用:

    autofs即触发挂载,它是一种看守程序。如果检测到用户正试图访问一个尚未挂载的文件系统,它就会自动检测该文件系统,如果存在,那么autofs会自动将其挂载。另一方面,如果它检测到某个已挂载的文件系统在一段时间内没有被使用,那么autofs会自动将其卸载。因此一旦运行了autofs后,用户就不再需要手动完成文件系统的挂载和卸载。

    2)autofs的配置文件:/etc/auto.master与/etc/auto.misc

    11 简述LVM的含义及特点。

    LVM的含义及优势?/boot是否可建立在LVM卷上,为什么?

    参考答案

    1)LVM:用来整合磁盘空间和文件系统的一种逻辑机制,通过将多个物理分区/磁盘从逻辑上组合成一个更大的整体,从这个整体中划分出不同的逻辑分区,用来创建文件系统。

    2)LVM的主要优势如下所述:

    逻辑分区的大小可以根据需要扩大和缩减,因此生产系统上的文件系统也可以在线改变大小(在卷组容量范围内),不会导致系统中断

    物理存储空间(硬盘、分区)由LVM统一组织为卷组,可以方便的加入或移走分区,以扩大或减小卷组的容量,充分利用硬盘空间

    文件系统建立在LVM逻辑卷之上,可以跨越分区、跨越磁盘,方便使用

    3)/boot不能建立在LVM之上,因为/boot/目录下存放着引导程序,而Linux启动不支持从LVM卷上读取引导程序。

     

    12 简述RAID的含义及特点。

    RAID的含义及优势?RAID0、RAID1、RAID5分别指什么、各自的特点?

    参考答案

    1)RAID:廉价冗余磁盘阵列,指通过硬件/软件技术将多个较小/低速的磁盘整合成一个大磁盘使用的一种存储技术,其不仅可存储数据,还可以实现一定程度的冗余保障,具有“速度快、安全性高”的优势。

    2)RAID0、RAID1、RAID5的含义及特点如下:

    RAID0:条带模式,由两个或两个以上的磁盘组成,同一份文档分散在不同的磁盘中,并行写入,提高写效率。

    RAID1:镜像模式,由至少两个磁盘组成,同一份文件被分别写入到不同的磁盘中,每份磁盘数据一样,实现容错,提高读效率。

    RAID5:分布式奇偶校验的独立磁盘模式,结合RAID0和RAID1的好处,同时避免它们的缺点。由至少3块以上大小相同的磁盘组成,实现冗余。

    13  RHEL6.x系统包括哪几种运行级别。

    各自的特点是什么?

    参考答案

    默认包括7种运行级别:

    0:关机

    1:单用户模式

    2:字符界面的多用户模式(不支持网络)

    3:字符界面的完整多用户模式

    4:未分配使用

    5:图形界面的多用户模式

    6:重启

    14请描述RHEL6.x系统的引导过程?

    参考答案

    加载BIOS,检查硬件信息

    读取并执行第一个开机设备内MBR

    运行grub引导加载 kernel

    内核启动/sbin/init程序

    init 系统初始化

    确定默认的运行级别

    触发runlevel事件,运行/etc/rc.d/rc

    最后执行/etc/rc.d/rc.local

    加载终端或X-Window接口

    15  SSH协议简介。

    OpenSSH服务器使用的协议、默认端口、主配置文件分别是什么?SSH与Telnet应用的区别在哪里?

    参考答案

    OpenSSH使用TCP协议,默认端口是22,主配置文件/etc/ssh/sshd_config。

    SSH的英文全称是Secure SHell,即安全外壳。SSH会把传输过程中的数据加密,且支持压缩以提高传输速度;而Telnet在网络上以明文传送口令和数据,安全级别低,容易受到攻击。

    16  Linux常见的系统日志文件都有哪些,各自的用途?

    参考答案

    /var/log/messages 内核及公共消息日志

    /var/log/cron 计划任务日志

    /var/log/dmesg 系统引导日志

    /var/log/maillog 邮件系统日志

    /var/log/secure 记录与访问限制相关日志

    17 常见的linux开机设置文件。

    /etc/fstab与/etc/initab、/etc/rc.local三个配置文件的作用?

    参考答案

    /etc/fstab:实现开机自动挂载设备的配置文件

    /etc/initab:定义开机进入默认级别的配置文件

    /etc/rc.local:定义开机自定义任务的配置文件

    18 FTP协议简介。

    FTP服务器在传输层使用的协议、默认端口、FTP主目录绝对路径?

    参考答案

    FTP服务器在传输层使用的协议是tcp

    默认的端口号为21

    FTP主目录为/var/ftp

    19,suid,sgid,sticky bit 的作用?

    suid, 以属主的身份运行程序

    sgid, 在目录中创建的文件继承所在目录的属主

    sticky bit  用户只能修改,删除自己的文件

     

    20.解释下什么是GPL,GNU,自由软件?

    GPL:(通用公共许可证):一种授权,任何人有权取得、修改、重新发布自由软件的权力。

    GNU:(革奴计划):目标是创建一套完全自由、开放的的操作系统。

    自由软件:是一种可以不受限制地自由使用、复制、研究、修改和分发的软件。主要许可证有GPL和BSD许可证两种。

     

    21.如何选择Linux操作系统版本?

    一般来讲,桌面用户首选Ubuntu;服务器首选RHEL或CentOS,两者中首选CentOS。

    根据具体要求:

    ①安全性要求较高,则选择Debian或者FreeBSD。

    ②需要使用数据库高级服务和电子邮件网络应用的用户可以选择SUSE。

    ③想要新技术新功能功能可以选择Feddora,Feddora是RHEL和CentOS的一个测试版和预发布版本。

    ④根据现有状况,绝大多数互联网公司选择CentOS。现在比较常用的是6系列,现在市场占有大概一半左右。另外的原因是CentOS更侧重服务器领域,并且无版权约束。

     

    22.初学者在Linux系统的开机启动项如何选择?

    建议选择五个开机启动项:

    ①.crond: 该服务用于周期地执行系统及用户配置的计划任务。有要周期性执行的任务计划需要开启,此服务是生产场景必须要用的一个软件。

    ②.iptables: iptables包过滤防火墙,有外网IP时,考虑开启。

    ③.network: 启动系统时,若想激活/关闭启动时的各个网络接口,则应(必须)考虑开启。

    ④.sshd: 远程连接Linux服务器时需要用到这个服务程序,所以必须要开启,否则将无法远程连接到Linux服务器。

    ⑤.rsyslog: 是操作系统提供的一种机制,系统的守护程序通常会使用rsyslog将各种信息收集写入到系统日志文件中,CentOS6以前此服务的名字为syslog。

    ⑥.sysstat: 是一个软件包,包含监测系统性能及效率的一组工具,这些工具对于Linux系统性能数据很有帮助,比如CPU使用率、硬盘和网络吞吐数据等,这些数据的分析,有利于判断系统运行是否正常,所以它是提高系统运行效率、安全运行服务的助手。

     

    23.请描述Linux系统优化的12个步骤。

    ⑴登录系统:不使用root登录,通过sudo授权管理,使用普通用户登录。

    ⑵禁止SSH远程:更改默认的远程连接SSH服务及禁止root远程连接。

    ⑶时间同步:定时自动更新服务器时间。

    ⑷配置yum更新源,从国内更新下载安装rpm包。

    ⑸关闭selinux及iptables(iptables工作场景如有wan ip,一般要打开,高并发除外)

    ⑹调整文件描述符数量,进程及文件的打开都会消耗文件描述符。

    ⑺定时自动清理/var/spool/clientmquene/目录垃圾文件,防止节点被占满(c6.4默认没有sendmail,因此可以不配。)

    ⑻精简开机启动服务(crond、sshd、network、rsyslog)

    ⑼Linux内核参数优化/etc/sysctl.conf,执行sysct -p生效。

    更改字符集,支持中文,但是还是建议使用英文,防止乱码问题出现。

    ⑾锁定关键系统文件(chattr +i /etc/passwd /etc/shadow /etc/group /etc/gshadow /etc/inittab 处理以上内容后,把chatter改名,就更安全了。

    ⑿清空/etc/issue,去除系统及内核版本登陆前的屏幕显示。

     

    24.描述Linux运行级别0-6的各自含义

    0:关机模式

    1:单用户模式<==破解root密码

    2:无网络支持的多用户模式

    3:有网络支持的多用户模式(文本模式,工作中最常用的模式)

    4:保留,未使用

    5:有网络支持的X-windows支持多用户模式(桌面)

    6: 重新引导系统,即重启

     

    25.描述Linux系统从开机到登陆界面的启动过程

    ⑴开机BIOS自检,加载硬盘。

    ⑵读取MBR,MBR引导。

    ⑶grub引导菜单(Boot Loader)。

    ⑷加载内核kernel。

    ⑸启动init进程,依据inittab文件设定运行级别

    ⑹init进程,执行rc.sysinit文件。

    ⑺启动内核模块,执行不同级别的脚本程序。

    ⑻执行/etc/rc.d/rc.local

    ⑼启动mingetty,进入系统登陆界面。

     

    26.描述Linux下软链接和硬链接的区别

    在Linux系统中,链接分为两种,一种是硬链接(Hard link),另一种称为符号链接或软链接(Symbolic Link)。

    ①默认不带参数的情况下,ln创建的是硬链接,带-s参数的ln命令创建的是软链接。

    ②硬链接文件与源文件的inode节点号相同,而软链接文件的inode节点号,与源文件不同,

    ③ln命令不能对目录创建硬链接,但可以创建软链接。对目录的软链接会经常使用到。

    ④删除软链接文件,对源文件和硬链接文件无任何影响。

    ⑤删除文件的硬链接文件,对源文件及软链接文件无任何影响。

    ⑥删除链接文件的源文件,对硬链接文件无影响,会导致其软链接失效(红底白字闪烁状)。

    ⑦同时删除源文件及其硬链接文件,整个文件才会被真正的删除。

    ⑧很多硬件设备的快照功能,使用的就是类似硬链接的原理。

    ⑨软链接可以跨文件系统,硬链接不可以跨文件系统。

     

    27.生产场景如何对linux系统进行合理规划分区?

    分区的根本原则是简单、易用、方便批量管理。根据服务器角色定位建议如下:

    ①单机服务器:如8G内存,300G硬盘

    分区:  /boot 100-200M,swap 16G,内存大小8G*2,/ 80G,/var 20G(也可不分),/data 180G(存放web及db数据)

    优点:数据盘和系统盘分开,有利于出问题时维护。

    RAID方案:视数据及性能要求,一般可采用raid5折中。

    ②负载均衡器(如LVS等)

    分区:/boot 100-200M,swap 内存的1-2倍,/  ,

    优点:简单方便,只做转发数据量很少。

    RAID方案:数据量小,重要性高,可采用RAID1

    ③负载均衡下的RS server

    分区: /boot 100-200M,swap 内存的1-2倍,/  

    优点:简单方便,因为有多机,对数据要求低。

    RAID方案:数据量大,重要性不高,有性能要求,数据要求低,可采用RAID0

    ④数据库服务器mysql及oracle如16/32G内存

    分区:/boot 100-200M,swap 16G,内存的1倍,/ 100G,/data 剩余(存放db数据)

    优点:数据盘和系统盘分开,有利于出问题时维护,及保持数据完整。

    RAID方案:视数据及性能要求主库可采取raid10/raid5,从库可采用raid0提高性能(读写分离的情况下。)

    ⑤存储服务器

    分区:/boot 100-200M,swap 内存的1-2倍,/ 100G,/data(存放数据)

    优点:此服务器不要分区太多。只做备份,性能要求低。容量要大。

    RAID方案:可采取sata盘,raid5

    ⑥共享存储服务器(如NFS)

    分区:/boot 100-200M,swap 内存的1-2倍,/ 100G,/data(存放数据)

    优点:此服务器不要分区太多。NFS共享比存储多的要求就是性能要求。

    RAID方案:视性能及访问要求可以raid5,raid10,甚至raid0(要有高可用或双写方案)

    ⑦监控服务器cacti,nagios

    分区:/boot 100-200M,swap 内存的1-2倍,/

    优点:重要性一般,数据要求也一般。

    RAID方案:单盘或双盘raid1即可。三盘就RAID5,看容量要求加盘即可。

     

    28.描述Linux下文件删除的原理

    Linux系统是通过link的数量来控制文件删除的,只有当一个文件不存在任何link的时候,这个文件才会被删除。一般来说每个文件两个link计数器来控制i_count和i_nlink。当一个文件被一个程序占用的时候i_count就加1。当文件的硬链接多一个的时候i_nlink也加1。删除一个文件,就是让这个文件,没有进程占用,同时i_link数量为0。

    29.请简单描述VI编辑器的使用

    ①vi编辑器是linux系统下最最基本和最常用的标准文本编辑器。

    ②vi编辑器有三种工作模式:普通模式、编辑模式、命令模式。

    ③普通模式下的键盘输入任何字符都是当作命令来执行的,也可以输入命令进行光标的移动,字符、单词、行的复制、粘帖以及删除等操作。

    ④编辑模式主要用于文本的输入。在该模式下,用户输入的任何字符都被作为文件的内容保存起来。

    ⑤命令模式下,用户可以对文件进行一些如字符串查找、替换、显示行号等操作还是必须要进入命令模式的。

    ⑥在普通模式下输入冒号即可进入命令模式,此时vi窗口的状态行会显示出冒号,等待用户输入命令。“i”插入模式,即可以进行编辑。用户输入完成后,按【Esc】之后编辑器又返回到普通模式下,在命令模式下,保存退出,可以使用的命令为wq和x。前面加!表示强制退出,强制保存等。

     

    30.请简单说出用户管理的相关命令及用途

    #组管理命令

    groupadd #添加组

    groupdel #删除用户组

    groupmod #修改用户组

    groups  #显示当前用户所属的用户组

    grpck   #检查用户组及密码文件的完整性(etc/group以及/etc/gshadow文件)

    grpconv #通过/etc/group和/etc/gshadow 的文件内容来同步或创建/etc/gshadow ,如果/etc/gshadow 不存在则创建;

    grpunconv #通过/etc/group 和/etc/gshadow 文件内容来同步或创建/etc/group ,然后删除gshadow文件 。

     

    #用户管理命令

    useradd #添加用户

    adduser #添加用户

    passwd  #为用户设置密码

    usermod #修改用户命令,可以通过usermod 来修改登录名、用户的家目录等等

    pwcov   #同步用户从/etc/passwd 到/etc/shadow

    pwck   #pwck是校验用户配置文件/etc/passwd 和/etc/shadow文件内容是否合法或完整

    pwunconv #执行pwunconv指令可以关闭用户投影密码,它会把密码从shadow文件内,重回存到passwd文件里。

    finger #查看用户信息工具(危险命令,一般不用)

    id #查看用户的UID、GID及所归属的用户组

    chfn #更改用户信息工具

    su #用户切换工具

     

    31.请简述基础正则表达式grep高级参数的使用

    常用参数:

    -v排除匹配内容,

    -e支持扩展的正则表达式,

    -i忽略大小写,

    -o输出匹配的内容(只是一块,不是行),

    --color=auto 匹配内容显示颜色,

    -n 在行首显示行号。

    特殊字符注意事项:

    ^(尖括号)word :表示搜索以word开头的内容。

    word$ 表示搜索以word结尾的内容。

    ^$    表示的是空行,不是空格。

    .     代表且只能代表任意一个字符。非正则表达式其他功能(当前目录,加载文件)

    \     转义字符,让有着特殊身份意义的字符,脱掉马甲,还原原型。例如\.只表示原始小数点意义。

    *    表示重复0个或多个前面的一个字符。不代表所有。

    .*   表示匹配所有的字符。^.*表示以任意字符开头。

    [任意字符如abc] 匹配字符集内任意一个字符[a-z]。

    [^abc] ^在中括号里面是非的意思,不包含之意。意思就是不包含a或b或c的行。

    {n,m} 表示重复n到m次前一个字符。{n}至少n次,多了不限。{n}N次,{,m}至多m次,少了不限。

    注:使用grep或sed要对{}转义。即\{\}.egrep就不需要转义了。

     

    32.请简述基础正则表达式sed高级参数的使用(计时4分钟)

    解答:

    -n取消默认输出

    -p 打印

    -d删除

    -e允许多项编辑

    sed取行,要特别注意sed -n 's###g' filename 的使用,sed的\( \)的功能可以记住正则表达式的一部分,其中,\1为第一个记住的模式即第一个小括号中的匹配内容,\2第二记住的模式,即第二个小括号中的匹配内容,sed最多可以记住9个。

    实际字符的选取最好要唯一,正则表达式是贪婪的,总是尽可能的匹配更远的符合匹配的内容。另外注意字符串中的空格。

     

    33.请给出查看当前哪些用户在线的Linux命令

    w        #显示目前系统登录用户

    who      #显示目前已登录用户信息

    last     #列出目前与过去登入系统的用户相关信息

    lastlog  #检查某特定用户上次登录时间

    whoami   #打印与当前生效的用户ID关联的用户名

    finger   #用户信息查找程序

    id       #显示指定用户或当前用户的用户与组信息

     

    34.请你描述下crontab的作用和语法,以及书写定时任务注意的要点。

    设置crontab后我们可以使得Linux主动执行的在固定的间隔时间,执行指定的系统指令或 shell script脚本。生产环境可以用来日志分析或生产备份等。

    语法格式:

    crontab [ -u user ] file     ===》-u的意思就是指定用户

    crontab [ -u user ] { -l 显示文件内容| -r全部删除crontab文件 | -e 编辑crontab文件| -i删除crontab文件前确认提示}

    举例:

    */5 10,12 * 3-8 * * /usr/sbin/ntpdate 10.0.0.155  >/dev/null  2>&1

    前五段是时间间隔的设定,单位分别是分钟、小时、日、月、周(尽量避免使用日月和周同时出现,以免造成系统误判)。

    第一个时间段 分钟 范围0-59

    第二个时间段 小时 范围0-23

    第三个世间段 日   范围1-31

    第四个时间段 月   范围1-12

    第五个时间段 周   范围0-7

     

    *星号代表任何时间都接受命令

    ,逗号,表示隔开。代表分隔的时间都适用此命令。

    - 减号,两个时间段之间,代表在此时间段内执行定时任务。

    /n斜线和n(数字)表示每隔n段时间执行一次。

     

    注意要点分为:书写基本要领与书写注意事项

    7个基本要领:

    第一、为定时任务规则加必要的注释

    第二、定时任务命令或程序最好写到脚本里执行

    第三、定时任务执行的脚本要规范路径,如:/server/scripts

    第四、执行shell脚本任务时前加/bin/sh

    执行定时任务时,如果是执行脚本,尽量在脚本前面带上/bin/sh命名

    第五、定时任务结尾加 >/dev/null 2>&1

    第六、/dev/null为特殊的字符设备文件,表示黑洞设备或空设备。

    第七、有关重定向的说明

    >或1>    输出重定向:把前面输出的东西输入到后边的文件中,会删除文件原有内容。

    >>或1>>  追加重定向:把前面输出的东西追加到后边的文件中,不会删除文件原有内容。

    <或<0     输入重定向:输入重定向用于改变命令的输入,指定输入内容,后跟文件名。

    <<或<<0   输入重定向:后跟字符串,用来表示“输入结束”,也可用ctrl+d来结束输入。

    2>        错误重定向:把错误信息输入到后边的文件中,会删除文件原有内容。

    2>>        错误追加重定向:把错误信息追加到后边的文件中,不会删除文件原有内容。

    标准输入(stdin):代码为0,使用<或<<。

    标准输出(stdout):代码为1,使用>或>>。正常的输出。

    标准错误输出(sederr):代码为2,使用2>或2>>。

    特殊:

    2>&1就是把标准错误重定向到标准输出(>&)。

    >/dev/null 2>&1 等价于 1>/dev/null  2>/dev/null

     

    35.请简述修改/etc/sudoers配置文件的注意事项

    ①别名的名称可以包含大写字母。数字、下划线。如果是字母必须要大写,(别名为一群拥有相同属性的集合)。

    ②一个别名下面可以有多个成员,成员间通过半角(,)逗号隔开。成员必须有效实际存在。

    别名成员受别名类型 Host_Alias、User_Alias、Runas_Alias、Cmnd_Alias制约,定义什么类型的别名,就要有相什么类型的成员匹配。

    ③用户组前面必须加%号。命令别名下的成员必须是文件或目录的绝对路径。

    ④指定切换用户要用()括号括起来,如果省略,则默认root用户,如果括号里是ALL,则代表能切换到所有用户。

    ⑤命令路径要使用全路径。

    ⑥别名规则每行算一个规则,一行容不下时用\续行。另外超过一行,用反斜线换行。

    ⑦一般不建议先给all权限,后面排除。用什么权限,就给什么权限。(注意权限,语法)。

    如果不需要密码直接运行命令的应该加NOPASSWD参数。

    ⑧禁止某类程序或命令执行,要在命令动作前面加上“!”号,并放在允许执行命令之后。

     

    36.请描述如何实现linux系统集权分治的权限分级精细管理?

    ① 收集以及制定用户和权限的匹配信息,原则是给于最小权限,但是又能完成所承担的工作职责。

    ② 各个用户组设置对应权限,用什么给什么,精细到每一条指令上根据分组情况。

    ③ 创建规划权限分组的用户.添加相关用户组。并修改etc/sudoers配置文件。

    ④ 增加sudo的权限开放,确定相关用户加入如soduers权限列表,并详细设置所开放权限内容,并选择是否需要密码的相关执行权限开放。(注意ALL权限,以及密码修改权限设置)。

    ⑤ 不建议先给all权限,后面排除。建议使用白名单。

    ⑥实战调试测试相关权限是否正确配置完成。

    ⑦编写操作说明,及相关注意事项。

    ⑧调试完毕,邮件周知所有相关人员系统权限设置生效,并附带操作说明及相关注意事项。

     

    37.请写出下面Linux SecureCRT命令行快捷键命令的功能?

    Ctrl + a  光标到开头

    Ctrl + c 中断当前程序

    Ctrl + d 退出当前窗口或当前用户

    Ctrl + e 光标到结尾

    Ctrl + l 清屏 相当与clear

    Ctrl + u 剪切、删除(光标以前的)内容

    Ctrl + k 剪切、删除(光标以后的)内容

    Ctrl + r 查找(最近用过的命令)

    tab    所有路径以及补全命令

    Ctrl+shift+c 命令行复制内容

    Ctrl+shift+v 命令行粘贴内容

    Ctrl + q 取消屏幕锁定

    Ctrl + s 执行屏幕锁定

     

    38.请描述服务器账户日志审计的5种解决方案。

    ⑴通过环境变量syslog对全部全部日志进行审计(信息量太大,不推荐)

    ⑵sudo配合syslog服务,进行sudo操作日志进行审计(信息较少,效果不错)

    ⑶在bash解释器嵌入一个监视器,让所有用户使用修改过的bash程序,作为解释程序。

    ⑷齐治的堡垒机(商业产品)。

     

    39.如果一台办公室内主机无法上网(打不开网站),请给出你的排查步骤?

    ①首先确定物理链路是否联通正常。

    ②查看本机IP,路由,DNS的设置情况是否达标。

    ③telnet检查服务器的WEB有没有开启以及防火墙是否阻拦。

    ④ping一下网关,进行最基础的检查,通了,表示能够到达服务器。

    ⑤测试到网关或路由器的通常情况,先测网关,然后再测路由器一级一级的测试。

    ⑥测试ping公网ip的通常情况(记住几个外部IP),

    ⑦测试DNS的通畅。ping出对应IP。

    ⑧通过以上检查后,还在网管的路由器上进行检查。

     

    40.描述Linux shell中单引号、双引号及不加引号的简单区别

    单引号:所见即所得,即将单引号内的内容原样输出,或者描述为单引号里面看到的是什么就输出什么。

    双引号:把双引号里面的内容给输出出来,如果内容中有命令、变量等,会先把,变来那个、命令解析出结果,然后输出最终内容。

    双引号内的命令或者变量写法’命令或变量’或$(命令或变量)

    无引号:把内容输出出来,可能不会键含有空格的字符串,视为一个整体输出,如果内容中有命令、变量等,会先把变量、命令解析出来,然后输出最终内容,如果字符串中带有空格等特殊字符,则不能完整输出,需要改加双引号。一般连续的字符串,数字,路径等可以用,不过最好用双引号,替代之。

     

    41.请简述Linux启动过程中几个重要配置文件的执行过程

    Linux 登录后,配置执行顺序为(Debian Serials Capable):

    /etc/environment -> /etc/profile -> (~/.bash_profile | ~/.bash_login | ~/.profile) -> ~/.bashrc -> /etc/bashrc -> ~/.bash_logout

    关于各个文件的作用说明:

    (1)/etc/environment:此配置文件设置基本的PATH变量,及系统当前语言变量,虽然比较短,但却在系统启动中占据举足轻重的作用,比如如下是我的系统中的内容:

    (2)/etc/profile: 此文件为系统的每个用户设置环境信息,当用户第一次登录时,该文件被执行. 并从/etc/profile.d目录的配置文件中搜集shell的设置。

    (3)/etc/bash.bashrc: 为每一个运行bash shell的用户执行此文件.当bash shell被打开时,该文件被读取。

    (4)~/.bash_profile: 每个用户都可使用该文件输入专用于自己使用的shell信息,当用户登录时,该文件仅仅执行一次!默认情况下,他设置一些环境变量,执行用户的.bashrc文件。

    (5)~/.bashrc: 该文件包含专用于你的bash shell的bash信息,当登录时以及每次打开新的shell时,该该文件被读取。

    (6)~/.bash_logout: 当每次退出系统(退出bash shell)时,执行该文件. 另外,/etc/profile中设定的变量(全局)的可以作用于任何用户,而~/.bashrc等中设定的变量(局部)只能继承 /etc/profile中的变量,他们是"父子"关系。

    (7)~/.bash_profile 是交互式、login 方式进入 bash 运行的~/.bashrc 是交互式 non-login 方式进入 bash 运行的通常二者设置大致相同,所以通常前者会调用后者。

     

    42.请描述下列路径的内容是做什么的?

    /var/log/messages   系统日志文件

    /var/log/secure     系统安全文件(显示登录信息的文件)

    /var/spool/clientmqueue  例行性任务回执邮件存放文件

    /proc/interrupts    当前系统中断报告文件

    /etc/fstab          开机自动挂载磁盘的配置文件

    /etc/profile        环境变量存放的文件

     

    43.请给出Linux中eth0的IP地址和广播地址的指令,需使用cut、awk、grep、sed指令。

    第一种方法:使用grep和cut取值

    第二种方法:使用grep和awk(默认分隔符为空格)取值

    第三种方法:使用grep和awk(多分隔符)

    第四种方法:使用sed和awk

    第五种方法:使用grep和awk(多分隔符与加号+)

    第六种方法:awk (分隔符及取行)

    第七种方法:grep 网卡文件

    第八种方法:head取行 awk分割

     

    44.请输出你知道的20 个LINUX 命令及作用

     

    cp 复制 -a(drp),-r拷贝目录 -p保持属性

    mv 移动文件或目录

    mkdir 创建目录  -p递归创建目录 mkdir /a/b/c

    touch 创建文件,

    cd    切换目录(~当前用户家目录,-上一次的目录)

    cat   查看文件内容  -n显示行号

    ls    查看目录下文件,-l长格式,-d查看目录**********

    rm    删除文件或目录 -r目录 -f强制删除(慎用,mv,find)

    find  查找文件或目录 -type 类型(f,d,l,c,b),-name名字 -exec执行动作*****

    alias 查看及设置别名

    unalias 取消别名

    seq 打印序列 -s指定分割符 -w数字前面加0补齐位数

    head 查看文件前N行,默认10行,-n指定行数

    tail 查看文件后N行,默认10行,-n指定行数,-f实时跟踪文件结尾的变化

    sed linux三剑客老二,文件增删改查,*****

    pwd打印当前工作目录

    rmdir 删除空目录

    echo 显示输出

    xargs (配合find,ls)等查找到的内容处理,-n分组

    tree -L层数  -d目录

    rpm  -q query查询 -a all

    uname -r内核 -m32位还是64位 -a所有信息, -n主机名(hostname)

    hostname 主机名

    whoami 查看当前用户

    users

    w

    useradd 添加用户

    passwd  改密码,--stdin 非交互设置密码

    su     切换用户角色,-切换环境变量

     

     

    Service

    1 简述部署Discuz!论坛的工作流程

    参考答案

    1)部署LAMP软件并启动相应服务;

    2)创建网站数据库及数据库管理员账户及密码;

    3)将Discuz!压缩包中的upload下的内容解压到httpd站点根路径下,并调整好适当的权限;

    4)最后,在浏览器输入网址后,进行第一次的初始化工作。

     

    2 简要说明PXE安装系统流程

    参考答案

    客户端向DHCP服务器请求分配IP地址;

    DHCP服务器为客户端分配IP地址,告知Boot server;

    客户端向Boot server请求下载启动文件;

    Boot server向客户端提供启动文件;

    客户端向文件共享服务器请求应答文件;

    客户端根据应答文件信息,安装操作系统

    3 简单描述虚拟化技术常见的虚拟网络类型

    参考答案

    桥接模式:Guest与Host连接到同一个交换机上,通过桥接物理网卡,相当于直连到Host所在网络。

    隔离模式:Guest可访问同一虚拟交换机上的其他Guest,但无法访问Host所在外部网络。

    NAT模式:Guest的网关指向Host的virtbr0的IP地址,允许虚拟机共享真机的网络连接。

    路由模式:由Host充当路由器,开启转发,需要额外设置外网与Guest之间互访的路由。

    2 RHEL6上实现KVM虚拟化需要安装哪些软件组

     

    参考答案

    Virtualization、Virtualization Client

    Virtualization Tools、Virtualization Platform

    4 简述DNS递归和迭代查询的作用

    参考答案

    对于一台DNS服务器来说:

    若允许递归,则当客户端请求解析的域名非本DNS管辖时,本DNS会向其他DNS服务器代询;

    若不允许递归,则当客户端请求解析的域名非本DNS管辖时,本DNS会放弃代询 —— 但是,如果目标地址位于已知的某个授权子域,本DNS会告知客户端对应的子DNS服务器的地址信息(即迭代)。

     

    5 为什么使用LAMP?

    答案: 因为LAMP 具有Web 资源丰富、轻量、快速开发等特点,与微软的.NET 架构相比,LAMP 具有通用、跨平台、高性能、低价格优势、因此LAMP 无论是性能、质量还是价格都是企业搭建网站的首选平台。

    6 DNS的解析过程?

    答案:第一步:客户机提出域名解析请求,并将该请求发送给本地的域名服务器。

    第二步:当本地的域名服务器收到请求后,就先查询本地的缓存,如果有该纪

    录项,则本地的域名服务器就直接把查询的结果返回。

    第三步:如果本地的缓存中没有该纪录,则本地域名服务器就直接把请求发

    给根域名服务器,然后根域名服务器再返回给本地域名服务器一个

    所查询域(根的子域)的主域名服务器的地址。

    第四步:本地服务器再向上一步返回的域名服务器发送请求,然后接受请求

    的服务器查询自己的缓存,如果没有该纪录,则返回相关的下级的

    域名服务器的地址。

    第五步:重复第四步,直到找到正确的纪录。

    第六步:本地域名服务器把返回的结果保存到缓存,以备下一次使用,同时还

    将结果返回给客户机。

    7 DNS的工作原理?

     

    答案:域名解析有正向解析和反向解析之说,正向解析就是将域名转换成对应的 IP

    地址的过程,它应用于在浏览器地址栏中输入网站域名时的情形;而反向解析是

    将 IP 地址转换成对应域名的过程,但在访问网站时无须进行反向解析,即使在

    浏览器地址栏中输入的是网站服务器 IP 地址,因为互联网主机的定位本身就是

    通过 IP 地址进行的,只是在同一 IP 地址下映射多个域名时需要。另外反向解析

    经常被一些后台程序使用,用户看不到。

    除了正向、反向解析之外,还有一种称为“递归查询”的解析。“递归查询”

    的基本含义就是在某个DNS服务器上查找不到相应的域名与IP地址对应关系时,

    自动转到另外一台 DNS 服务器上进行查询。通常递归到的另一台 DNS 服务器对

    应域的根 DNS 服务器。因为对于提供互联网域名解析的互联网服务商,无论从

    性能上,还是从安全上来说,都不可能只有一台 DNS 服务器,而是由一台或者

    两台根 DNS 服务器(两台根 DNS 服务器通常是镜像关系),然后再在下面配置

    了多台子 DNS 服务器来均衡负载的(各子 DNS 服务器都是从根 DNS 服务器中

    复制查询信息的),根 DNS 服务器一般不接受用户的直接查询,只接受子 DNS

    服务器的递归查询,以确保整个域名服务器系统的可用性。

    当用户访问某网站时,在输入了网站网址(其实就包括了域名)后,首先就

    有一台首选子 DNS 服务器进行解析,如果在它的域名和 IP 地址映射表中查询到

    相应的网站的 IP 地址,则立即可以访问,如果在当前子 DNS 服务器上没有查找

    到相应域名所对应的 IP 地址,它就会自动把查询请求转到根 DNS 服务器上进行

    查询。如果是相应域名服务商的域名,在根 DNS 服务器中是肯定可以查询到相

    应域名 IP 地址的,如果访问的不是相应域名服务商域名下的网站,则会把相应

    查询转到对应域名服务商的域名服务器上。

     

    8 NTP 简介?

    答案:

    NTP(Network Time Protocol, 网络时间协议)是由 RFC 1305 定义的时间同步协议,用来

    在分布式时间服务器和客户端之间进行时间同步,NTP 基于 UDP 保温进行传输,使用 UDP

    端口号为 123。

    使用 NTP 的目的是对网络内所有具有时钟的设备进行时钟同步,使网络内所有设备的时钟

    保持一致,从而使设备能够提供基于统一时间的多种应用。

    对于运行 NTP 的本地系统,既可以接受来自其他时钟源的同步,又可以作为时钟源同步其

    他的时钟,并且可以喝其他设备互相同步。

    9 NTP 工作原理?

    答案:

    NTP 的基本工作原理如图 1-1 所示。Device A 和 Device B 通过网络相连,他们都有自己独

    立的系统时钟,需要通过 NTP 实现各自系统时钟的自动同步。为便于理解,作如下假设:

    l  在 Device A 和 Device B 的系统时钟同步之前,DeviceA 的时钟设定

    为 10:00:00am,DeviceB 的时钟设定为 11:00:00am。

    l  设备 B 作为 NTP 时间服务器,即设备 A 将使自己的时钟与设备 B

    的时钟同步。

    l  NTP 报文在设备 A 和设备 B 之间单向传输所需要的时间是 1 秒

    图1-1 NTP 原理图

     

    系统时钟同步过程如下:

    l  设备 A 发送一个 NTP 报文给设备 B,该报文带有它离开设备 A 时的

    时间戳,该时间戳为 10:00:00am(T 1 )。

    l  当此 NTP 报文到达设备 B 时,设备 B 加上自己的时间戳,该时间戳

    为 11:00:01am(T 2 )。

    l  当此 NTP 报文离开设备 B 时,设备 B 再加上自己的时间戳,改时间

    戳为 11:00:02(T 3 )。

    l  当设备 A 接收到该响应报文时,设备 A 的本地时间为

    10:00:03am(T 4 )。

    至此,设备 A 已经拥有足够的信息来计算两个重要的参数:

    l  NTP 报文的往返时延 Delay=(T 4 -T 1 )-(T 3 -T 2 )=2 秒。

    l  设备 A 相对设备 B 的时间差 offset=((T 2 -T 1 )+(T 3 -T 4 ))/2=1

    小时。

    这样,设备 A 就能够根据这些信息来设定自己的时钟,使之与设备 B 的时钟同步。

    以上内容只是对 NTP 工作原理的一个粗略描述,更详细的资料可以参阅 RFC 1305。

    10 NTP的工作模式?

    答案:

    设备可以采用多种 NTP 工作模式进行时间同步:

    l  客户端/服务端模式

    l  对等体模式

    l  广播模式

    l  组播模式

    11  JAVA概述?

    答案:

    Tomcat 在严格意义上并不是一个真正的应用服务器,它只是一个可以支持运行 Serlvet/JSP

    的 Web 容器,不过 Tomcat 也扩展了一些应用服务器的功能,如 JNDI,数据库连接池,用户事

    务处理等等。Tomcat 是 Apache 组织下 Jakarta 项目下的一个子项目,目前 Tomcat 被非常广泛的

    应用在中小规模的 Java Web 应用中。

    Tomcat 是一种具有 JSP 环境的 Servlet 容器。Servlet 容器是代替用户管理和调用 Servlet

    的运行时外壳。作为一个开放源代码的软件, Jakarta -Tomcat 有着自己独特的优势:

    l  首先,它容易得到。事实上,任何人都可以从互联网上自由地下载这个软件。无论从

    http://jakarta.Apache.org 还是从其他网站(Jakarta Tomcat 是 Apache 软件基金会

    开发的一个开放源码的应用服务器)。

    l  其次,对于开发人员,特别是 Java 开发人员,Tomcat 提供了全部的源代码,包括 Servlet

    引擎、JSP 引擎、HTTP 服务器。无论是对哪一方面感兴趣的程序员,都可以从这些由世

    界顶尖的程序员书写的代码中获得收益。

    l  最后,由于源代码的开放及世界上许多程序员的卓有成效的工作, Tomcat 已经可以和

    大部分的主流服务器一起工作,而且是以相当高的效率一起工作。如:以模块的形式被

    载入 Apache,以 ISAPI 形式被载入 IIS 或 PWS,以 NSAPI 的形式被载入 Netscape

    Enterprise Server。

    l  由于 Java 的跨平台特性,基于 Java 的 Tomcat 也具有跨平台性。

    12 什么是VPN?

    答案:

    VPN(Virtual Private Network,虚拟私有网)

    l 以共享的公共网络为基础,构建私有的专用网络

    l 以虚拟的连接,而非以物理连接贯通网络

    l 处于私有的管理策略之下,具有独立的地址和路由规

    l 有所通,有所不通

    l RFC 2764描述了基于IP的VPN体系结构

    13 VPN的优势?

    答案:

    可以快速构建网络,减小布署周期

    l 与私有网络一样提供安全性,可靠性和可管理性

    l 可利用Internet,无处不连通,处处可接入

    l 简化用户侧的配置和维护工作

    l 提高基础资源利用率

    l 于客户可节约使用开销

    l 于运营商可以有效利用基础设施,提供大量、多种业

     

    14 DHCP工作原理?

    答案:

    DHCP(Dynamic Host Configure Protocol,动态主机配置协议),用于向网络中的计算机分配IP地址及一些TCP/ip配置信息。DHCP提供了安全,可靠且简单的TCP/IP网络设置,避免了TCP/ip网络地址的冲突,同时大大降低了工作负担。

     

    DHCP的 工作原理:客户机从服务器获取IP的四个租约过程,客户机请求ip,服务器相应请求,客户机选择ip,服务器确定租约。

     

    1. 客户机请求IP地址 —— DHCP客户机在网络中广播一个DHCP DISCOVER包,请求ip地址 ,DHCP Discover 包的源地址为0.0.0.0 。目的地址为255.255.255.255,该包 包含客户机的MAC和计算机名,使服务器能够确定是哪个客户机发送的请求。

     

    1. 服务器响应请求——当DHCP服务器接收到客户机请求ip地址的信息时,就在自己的库中查找是否有合法的ip地址提供给客户机,如果有 ,将此ip标记,广播一个 DHCP offer 包。这个包中包含:客户机的的MAC地址;提供的合法ip;子网掩码;租约期限;服务器标示;其他参数等。因为客户机没有ip地址,所以还是以广播方式发送的,源地址:0.0.0.0 目的地255.255.255.255。

    1. 客户机选择IP地址——DHCP客户机接收到第一个DHCP offer包中选择ip地址,并在次 广播一个DHCP request 包到所有服务器,该包中包含为客户机提供的ip配置的服务器的服务标示符(ip地址),服务器查看标示符,以确定自己提供的ip地址是否被客户机选中,如果客户机接受ip,则发出ip地址的DHCP服务器将该地址保留,就不能将该地址提供给另一个DHCP。如果拒绝,提供给下一个ip租约请求。这个源地址仍然是0.0.0.0 目的地255.255.255.255。

    1. 服务器确认IP 租约——DHCP租约的最后一步,服务器确认租约,发送一个DHCP ack/DHCP NACK包。服务器收到DHCP request 包后,以dhcp ack 包向客户机广播出去,当客户机收到后,就配置了ip地址,完成初始化,就可以在TCP/IP网络上通信了。客户机收到DHCP nack 包后会重新发送DHCP discover包。这次源地址是服务器的ip地址 目的地是255.255.255.255。

     

    IP的租约更新:当客户机重启和租期到达50%时,就需要更新租约,直接想提供的服务器发送DHCP request包,要求更新租约。客户机无法和服务器取得联系时,继续使用现有IP,一直等到85%时,向所有的服务器发送广播DHCP request 包请求更新,如果仍然无法联系,则客户机将开始新的ip租约过程DHCP discover包

     

    IP的租约释放命令 :释放的ipconfig /release       获取是 :ipconfig /renew 。

     

    配置DHCP服务的要求:服务器具有静态IP ;在域环境下需要使用活动目录服务授权DHCP服务;建立作用域。(如果在安装时建立则默认为6天,之后创建为8天,无线为2小时)

     

        配置选项有服务器选项、作用域选项、保留选项。服务器选项:对所有作用域生效;作用与选项:对当前作用域生效;保留选项:对当前作用域中某台客户机生效。

     

     

     

     

    搭建服务器的基本流程

     

    1 网络服务器成功连接的分析

    答案:

    1. 网络:了解网络基础知识与所需服务的通信协议
    2. 服务器本身:了解搭建网络服务器的目的以配合主机的安装规划
    3. 服务器本身:了解操作系统的基本操作
    4. 内部防火墙设置:管理系统的可共享资源
    5. 服务器软件设置:学习设置技巧与开机是否自动执行
    6. 细节权限设置:包括SElinux 与文件权限

     

    2 常见的服务器设置案例分析

    答案:

    1. 网络环境
    2. 对外网络
    3. 额外服务
    4. 服务器管理
    5. 防火墙管理
    6. 账号管理
    7. 后台分析

     

     

    Shell

    1 自定义Shell变量时,变量名有什么规则?

    参考答案

    可以包括数字、字母、下划线,不能以数字开头

    变量名区分大小写

    赋值时等号两边不要有空格

    尽量不要使用关键字和特殊字符

    给同一个变量多次赋值时,最后一次的赋值生效

    2 简述预定义变量$$、$?、$0、$#、$*、$!的作用。

    参考答案

    $$ 保存当前运行进程的(PID)号

    $? 保存命令执行结果的(返回状态)

    $0 保存当前运行的(进程名)或(脚本名)

    $# 保存位置变量的(个数)

    $* 保存所有位置变量的(值)

    $! 保存后台(最后一个进程)的PID号

    3 简述三种定界符在变量赋值操作中的特点。

    参考答案

    双引号 " ":允许扩展,以 $ 引用其他变量

    单引号 ' ':禁用扩展,即便 $ 也视为普通字符

    反撇号 ` `:将命令的执行输出作为变量值

    4 列出常见的整数值比较操作,并说明各自作用。

    参考答案

    -eq 等于(Equal)

    -ne 不等于(Not Equal)

    -ge 大于或等于(Greater or Equal)

    -le 小于或等于(Lesser or Equal)

    -gt 大于(Greater Than)

    -lt 小于(Lesser Than)

    5 简述Shell环境常见的中断及退出控制指令。

    参考答案

    break:跳出当前所在的循环体,执行循环体后的语句。

    continue:跳过循环体内余下的语句,重新判断条件以便执行下一次循环。

    exit:退出脚本,默认返回值是 0。

    return:用在函数里 指定返回值。

    shift:用于迁移位置变量,将 $1~$9 依次向左顺序移动。

    6 正则表达式中的+、?、*分别表示什么含义?

    参考答案

    这三个字符用来限制关键词的匹配次数,含义分别如下:

    +:最少匹配一次,比如a+可匹配a、aa、aaa等

    ?:最多匹配一次,比如a?可匹配零个或一个a

    *:匹配任意多次,比如a*可匹配零个或任意多个连续的a

    7 简述awk工具常用的内置变量、各自的作用。

    参考答案

    FS:保存或设置字段分隔符

    $n:即$1、$2、$3……,表示指定分隔的第几个字段

    $0:保存当前读入的整行文本内容

    NF:记录当前处理行的字段个数(列数)

    NR:记录当前已读入行的数量(行数)

    FNR:保存当前处理行在原文本内的序号(行号)

    FILENAME:保存awk 当前处理的(文件名)

    ENVIRON:调用Shell环境变量,格式:ENVIRON["变量名"]

     

    8, 什么是shell?如何查看当前系统支持的Shell?

    答案:

    1. 实现某种功能的,有执行权限的文件  2)cat /etc/shells

     

    9,如何切换当前使用的shell

    答案: bash

     

    10、/bin/bash特性有哪些

    答案:特性:提供命令补全,命令编辑和命令历史表等功能

    11、用户配置文件是哪几个?有什么用?

    答案:

    1)~/.bashrc ~/.bash_profile

    可以在里面定义变量,用户每打开一个终端时加载的文件,只针对用户有效

     

    12、系统配置文件是哪几个?有什么用?

    /etc/profile /etc/bashrc

    可以在里面定义变量,用户每打开一个终端时加载的文件,针对所有用户生效

     

    13、shell变量类型有哪些?列举出常用的4个预定义变量

    1)1、自定义变量 2、系统环境变量 3、预定义变量 4、位置变量

    2)$? $# $* $$

     

    14、自定义变量的命名规则?

    1、可以用数字字每下载线,但不能用数字开头和纯数字

    2、同一个变量赋两个值,最后一个值生效

    3、给变量赋值时,两边不能有空格

    4、区分大小写

     

    15、变量的生命周期,和作用范围?

    1)在脚本里定义的变量,只在脚本执行过程中有效

    2) 默认情况下只在当前Shell里可以使用,要想定义的Shell在所有的Shell里被使用,要把变量定义为全局变量

    16、脚本的执行过程?脚本的执行方式?

    1)从左到右 从上到下

    2) sh xx.sh bash xx.sh /xx/xx/sh ./xx.sh

     

    17、编写脚本的步骤?

    1、明确脚本要实现的功能

    2、需要使用哪些命令

    3、需要使用哪些流程控制

    4、数据是变化的,就要用变量来表示

    18、Shell条件判断类型?

    1、文件状态

    2、数值比较

    3、字符比较

    4、逻辑比较

    19、eval在shell中有什么作用?请举个例子说明?

       作用:

    #!/bin/bash

    aa=h1

    bb=h2

    var=(aa bb)

    for vas in ${var[@]}

    do

            echo $vas

            eval var_temp=\$${vas}

            echo $var_temp

    done

    20、dirname有什么作用?请举个例子说明?

       作用:获取当前脚本路径

       例子:

       #!/bin/bash

    cd `dirname $0`

    pwd;ls

    21、ssh -o stricthostkeychecking=no -o ConnectTimeout=60  分别代表什么意思?

       ssh加接时不需要输入key检查,然后六十秒为超时时间

    22、说一下-n -z -d -f -e -r -w -x -l !-z在shell中分别代表什么意思?-n和-z试举一个例子说明

       -n 非空为真

       -z 字符串为空为真

       -d 是目录且存在为真

       -f 是普通文件且存在为真

       -e 存在为真

       -r 可读为真

       -w 可写为真

       -x 可执行为真

    -l 是链接为真

       !-z不为空

       1)-n例子:

       JavaApp=($(ps aux | grep "java" | grep "/app/guaji"))

       if [ -n "${JavaApp[0]}" ];then

        echo -e "\033[1;31m 脚本退出 \033[0m"

       exit 1

        fi

       2)-z例子:

       ssh=$(ssh -o StrictHostKeyChecking=no $2 "ls /")

       if [[ -z "$ssh" ]];then

    echo -e "\033[1;31m \033[5m 远程主机($2)无法连接,脚本退出. \033[0m"

    exit 1

       fi

     

    23、正则表达式的 "|"、"\n"、"\r"、"\t"分别代表什么意思

    |表示或的意思

             \n表示换行,将当前位移置下行开头

      \r回车,将当前位置移至本行开头

     

    24、写出获取公网IP的两种方法

    ifconfig | grep -Po "(?<=addr:).*(?=Bcast)" | egrep -v '^192.168|^172.1[6-9].|^172.2[0-9].|^172.3[0-1].|^10.|^127.'

            /sbin/ifconfig | awk -F'[ :]+' '/inet addr:/ {print $4}' | egrep -v '^192.168|^172.1[6-9].|^172.2[0-9].|^172.3[0-1].|^10.|^127.'

     

    25、$$表示什么意思?

       获取当前执行脚本的进程名  

     

    26、函数内的local是什么意思?举一脚本例子说明

       脚本中局部变量,存在于脚本函数(function)中的变量称为局部变量,要以local方式进行声明,使之只在本函数作用域内有效,

       防止变量在函中的命名与变量外部程序中变量重名造成程序异常,下面是一脚本例子:

       #!/bin/sh

       a() {

            local s=1

            echo $s

       }

       b() {

            s=2

            echo $s

    }

    s=0

    a

    echo $s

    b

    echo $s

     

    27、$@和$*的区别

       $@将命令行每个参数视为单独的字符串,等同于"$1"、"$2"、"$3"

       $*将所有的命令行所有参数视为单个字符串,等同于"$1$2$3"

     

    28、$0、dirname和basename有什么作用?具个例子说明?

        作用:

        dirname获取脚本路径名

        basename获取脚本名

        $0获取脚本路径和脚本名

        例子:

        #!/bin/basha

        echo "####################"

        echo "# this is '$ 0' test#"

        echo "####################"

        echo $0

        echo

        echo "#########################"

        echo "# this is 'dirname' test#"

        echo "#####################@@@#"

        cd `dirname $0` && pwd

        echo

        echo "##########################"

        echo "# this is 'basename' test#"

        echo "##########################"

        echo `basename $0`

     

    29、取出3306端口号这个数字

        netstat -tlnp| grep 3306 | awk '[ :]+' '{print $5}' #[ :]+ 以空格和点为分隔符,这种分隔符有一个或多个

     

    30、shell中单引号和双引号与不加与号分别代表什么意思

        单引号:可以说是所见即所得,即将单号引号的内容原样输出

        双引号:把双引号的内容输出出来,如果内容中有命令、变量等,会先把变量、命令解析出结果,然后再输出最终内容来

        无引号:把内容输出出来,会将含有空格的字符串视为一个整体输出,如果内容中有命令、变量等,会先把变量、命令解析出结果,

                然后再输出内容来,如果字符串中带有空格等特殊字符,则不能完整的输出,需要改加双引号,一般连续的字符串,数字

                路径等可以不加任何引号,不过最好用双引号替代之

     

    31、echo -n 是什么意思?举一脚本例子显示他的功能

        -n不换行

           #!/bin/bash

    . /etc/init.d/functions

    echo "---------Please wait while we are checking-------------"

    echo -n "6秒后执行该操作."

    for ((i=0;i<6;i++))

    do

           echo -n ".";sleep 2

            #[ $i -eq 3 ] && break

    done

    echo

    action "test success" /bin/true

     

    32、echo -e "\n" | nohup ping www.baidu.com > filename 2>&1 &这里的-e 和 "\n" 是什么意思?

        -e是代表后面输入的内容包含特珠字符需要加的参数

        \n 是代表换行

      

    33、有1-9的数字,echo输出1-9的数字时,屏蔽0-5的数字再输出

        echo '1234567890' | sed 's/[0-5]//g'

     

    34、用nohup把一个脚本放在后台运行

        nohup sh test.sh > filename 2>&1 &

     

    35、用seq打印10以空格分隔,用seq坚着打印10到1

        seq -s " " 10

        seq 10 -1 1

     

    36、curl -I -s www.baidu.com | head -1 | wc -l 中的-I和-s代表什么意思

        -s 沉默或安静模式。不显示进度表或错误消息。使卷曲静音

        -I  只读取HTTP头! HTTP的服务器功能命令HEAD此用来获取  

        --connetct-timeout 2 2秒连接超时

     

    37、wget -T 10 -c -q --spider www.baidu.com 这些参数分别代表什么意思?

        -T 超时10少

        -c 断点续传

        -q 为执行命令时屏蔽他打印输出的意思,执行命令不会任何内容出来

        --spider wget命令加spider参数不会下载任何东西,spider的主要作用是测试下载链接。

        tries

    38、生产环境常用的监控web的方法是哪种

        用wget或curl的方法作监控

     

    39、生产环境写脚本报错就发邮件的命令是怎么样的

        mail -s "uname -n 's httpd status is on" 123456@qq.com < $logfile

     

    40、给文件改名

        mv $file 1linux-`echo $file | cut -d "-" -f2`   

        ls *.jpg | awk -F '_finished' '{print "mv " " $0" "$1".jpg"}' | bash

    41、查看当前目录的所有文件夹

        ls -F | grep /

     

    42、awk中的NF代表什么意思?

        NF代表结尾的意思

     

    43、shell上: 0、1>、2>、>、2>&1、&>/dev/null分别代表什么意思

        0表示标准输入

        1>表示标准输出

        2>表示标准错误输出

        > 默认为标准输出重定向,与 1> 相同

        2>&1 意思是把 标准错误输出 重定向到 标准输出.

        &>/dev/null 意思是把 标准输出 和 标准错误输出 都重定向到空

     

     

    Mysql

     

    1 主流数据库服务软件有哪些?开源且跨平台的数据库软件有哪些?

    参考答案

    主流数据库服务软件有:

    甲骨文公司 Oracle

    IBM DB2

    微软 SQL Server

    美国Sybase公司 Sybase

    加州大学伯克利分校计算机系开发的 PostgreSQL

    开源且跨平台的数据库软件有:

    MySQL、PostgreSQL:开源且跨平台

    Oracle、DB2:跨平台不开源

    SQL Server:不跨平台不开源

    Sybase:跨平台不开源

    2 MySQL数据库的服务进程叫什么名字?监听端口是多少?默认数据库目录是?

    参考答案

    服务进程名是mysqld;监听端口是3306;默认数据库目录为 /var/lib/mysql。

    3 MySQL默认的3个库叫什么名字?哪个库里的数据不占用物理磁盘空间?

    参考答案

    3个默认库:mysql、test 和 information_schema。

    其中,information_schema库的数据不占用磁盘空间,仅保存在内存里。

    4 请列出MySQL常用的数据类型,并写出定义这些数据类型所使用的关键字。

    参考答案

    MySQL常用的数据类型:

    数值类型:所用关键字为int、float

    字符类型:所用关键字为char、varchar

    日期时间类型:所用关键字为year、time、datetime

    枚举类型:所用关键字为set、enum

    5 简述索引的优点与缺点,默认情况下哪个文件保存表的索引信息?

    参考答案

    索引的优点与缺点如下:

    索引就像一本书的目录

    加快查询记录的速度

    会降低插入、更新记录的速度

    默认情况下“表名.MYI” 文件保存表的索引信息

    6 简述在表中创建外键字段要满足那些条件?

    参考答案

    在表中创建外键字段要满足以下条件:

    表必须都使用innodb存储引擎

    表中外键字段的类型要匹配

    被参照字段要有明确的索引

    7 简述MySQL体系结构的组成,并描述每个组成部分的作用。

    参考答案

    主要包括8个部分:

    连接池:进程数限制、内存检查、缓存检查等。

    SQL接口:用户通过sql客户端发过来的命令,由sql接口接收,sql操作(DML数据操作语言:查询、修改、升级数据等;DDL数据定义语言:创建一个新的数据库、新的索引、删除一个用户等;存储过程、视图触发器。

    分析器: 分析查询语句 事务处理 对象访问权限。

    优化器: 优化访问路径 、 生成执行树。

    缓存和缓冲:保存sql查询结果。

    存储引擎:用于管理存储的文件系统,将逻辑结构转换为物理结构的程序;不同的存储引擎有不同的功能和存储方式。

    管理工具:备份,恢复,安全,移植,集群等,这些工具一般和文件系统打交道,不需要和mysql-server打交道,它们对应的都是命令。

    物理存储设备(文件系统)。

    8 简述MySQL数据库访问的执行过程。

    参考答案

    1)客户端发出请求。

    2)服务器端开辟线程响应客户端请求。

    3)客户端发起sql语句查询数据库。

    4)查询缓存:记录用户的sql查询语句,如果查询内容相同,直接从查询缓存回复。

    5)如果缓存没有进入分析器。

    6)分析器:分析用户命令语法是否正确,将用户的命令进行切片,一个词一个词用空格隔开,获得用户要查询的表、内容、用户的权限等。

    7)优化器:执行路径的选择,生成执行树。(每个SQL语句都有很多执行路径,优化的目的就是在这些执行路径里选择最优的执行路径)。

    8)存储引擎:用于管理存储的文件系统,不同的存储引擎有不同的功能和存储方式。

    9 简述MySQL数据库中插入、更新、查询、删除表记录的指令格式。

    连接到MySQL数据库服务器,练习以下表记录操作:

    向表中插入记录的语法格式

    更新表记录的语法格式

    查询表记录的语法格式

    删除表记录的语法格式

    参考答案

    1)向表中插入记录的语法格式

    insert (into)表名(字段名列表) values(字段名=值,字段名=值,…);

    2)更新表记录的语法格式

    update 表名(set) (字段名=值,字段名=值,…) where(条件表达式列表);

    3)查询表记录的语法格式

    select (字段名列表) (from) 表名 (where) 条件表达式列表;

    4)删除表记录的语法格式

    delete (from) 表名 (where) ( 条件表达式列表);

    10 简述用户授权命令的语法格式。

    参考答案

    grant   权限列表    on   数据库     to     用户名@“客户端地址”

    identified   by   “密码”   with   grant   option;  

    11 在MySQL-MMM集群中有几种角色,各自的功能是什么?

    参考答案

    共3种角色:客户端、monitor节点(管理节点)、agent节点(数据库节点)

    客户端:访问集群

    管理节点:负责所有的监控工作的监控守护进程,决定故障节点的移除或恢复

    数据库节点:运行在MySQL服务器上的代理守护进程,提供简单远程服务集、提供给监控节点(可用来更改只读模式、复制的主服务器等)

    12 在MySQL-MMM集群中可以有多少台主数据库服务器、多少台从数据库服务器?

    参考答案

    在MySQL-MMM环境中主数据库有且只能有2台,从数据库理论上可以任意多台。

    13 在MySQL-MMM集群中均衡模式和排他模式的作用是?

    参考答案

    均衡模式一般用于从数据库,可实现多个虚拟IP地址。

    排他模式一般用于主数据库,只可设置一个虚拟IP地址。

     

    14,简述mysqldump备份数据时数据库名的表示方式。

     

    参考答案

    --all-databases 所有库

    数据库名 指定单个库

    数据库名.表名 指定库里的指定表

    -B 数据1 数据库2 备份多个库

     

     

    15,什么是MySQL集群?

     

    答案:MySQL 集群是一个无共享的(shared-nothing),分布式节点架构的存储方案,其目的是提供容错性和高性能。数据在单个数据节点(有时也称存储节点)上存储和复制,每个数据节点运行在独立的服务器上并维护数据的一份拷贝。每个集群还有管理节点。数据更新使用读已提交隔离级别(read-committed isolation)来保证所有节点数据的一致性,使用两阶段提交机制(two-phased  commit)保证所有节点都有相同的数据 (如果任何一个写操作失败,则更新失败)。

     

    MySQL 集群的最初实现将所有信息都保存在主存内,没有任何永久性存储。后来MySQL 集群允许数据存储在磁盘上。通过存储引擎层MySQL 服务器作为查询引擎,可以使MySQL 集群的性能达到最佳。这样就可以将 MySQL 应用透明地迁移到 MySQL 集群中去。

     

    无共享的对等节点使得某台服务器上的更新操作在其他服务器上立即可见。传播更新使用一种复杂的通信机制,这一机制专用来提供跨网络的高吞吐量。该架构通过多个MySQL服务器分配负载,从而最大程度地达到高性能,通过在不同位置存储数据保证高可用性和冗余。

     

    16,MySQL集群和MySQL 有和不同?

     

    答案:你可能会问:“集群和复制之间有什么区别那?” 集群的定义很多,通常认为集群包含成员、消息、冗余和自动故障转移等功能,而复制仅仅是一个服务器向别一个服务器发送消息(数据)的方式。我们先讨论集群内部的复制(又称本地复制)。

     

    17,MySQL 集群的特点?

     

    答案:为了实现最高性能。高可用性和冗余等目标。数据在集群内部的对等数据节点之间互相复制。数据复制采用同步机制,每个数据节点到所有其他数据节点上,数据在多个数据节点上存储。

     

    18,MySQL 集群有一些创建高可用性系统的专用功能,主要包括?

     

    答案:节点回复、日志、检查点、系统恢复、热备份恢复、无单点故障、故障转移、分区、联机操作

     

     

     

    19、MySQL中myisam与innodb的区别,至少5点

    【评析】将Mysql常见的存储引擎的特点归纳表格如下

     

    myisam

    innodb

    memory

    archive

    存储限制

    256TB

    64TB

    事物安全

    支持

    支持索引

    支持

    支持

    支持

    不支持

    锁颗粒(锁力度)

    表锁

    行锁(没有索引的情况是表锁)

    表锁

    行锁

    数据压缩

    支持

    不支持

    支持

    不支持

    支持外键

    支持

     

    20   什么是读写分离?

     

    MySQL Proxy最强大的一项功能是实现“读写分离(Read/Write Splitting)”。基本的原理是让主数据库处理事务性查询,而从数据库处理SELECT查询。数据库复制被用来把事务性查询导致的变更同步到集群中的从数据库。 当然,主服务器也可以提供查询服务。使用读写分离最大的作用无非是环境服务器压力。

     

    21   读写分离的好处

    1.增加冗余

    2.增加了机器的处理能力

    3.对于读操作为主的应用,使用读写分离是最好的场景,因为可以确保写的服务器压力更小,而读又可以接受点时间上的延迟。

     

     

    22 读写分离提高性能之原因

     

    1.物理服务器增加,负荷增加

    2.主从只负责各自的写和读,极大程度的缓解X锁和S锁争用

    3.从库可配置myisam引擎,提升查询性能以及节约系统开销

    4.从库同步主库的数据和主库直接写还是有区别的,通过主库发送来的binlog恢复数据,但是,最重要区别在于主库向从库发送binlog是异步的,从库恢复数据也是异步的

    5.读写分离适用与读远大于写的场景,如果只有一台服务器,当select很多时,update和delete会被这些select访问中的数据堵塞,等待select结束,并发性能不高。 对于写和读比例相近的应用,应该部署双主相互复制

     

    6.可以在从库启动是增加一些参数来提高其读的性能,例如--skip-innodb、--skip-bdb、--low-priority-updates以及--delay-key-write=ALL。当然这些设置也是需要根据具体业务需求来定得,不一定能用上

     

    7.分摊读取。假如我们有1主3从,不考虑上述1中提到的从库单方面设置,假设现在1分钟内有10条写入,150条读取。那么,1主3从相当于共计40条写入,而读取总数没变,因此平均下来每台服务器承担了10条写入和50条读取(主库不承担读取操作)。因此,虽然写入没变,但是读取大大分摊了,提高了系统性能。另外,当读取被分摊后,又间接提高了写入的性能。所以,总体性能提高了,说白了就是拿机器和带宽换性能。MySQL官方文档中有相关演算公式:官方文档 见6.9FAQ之“MySQL复制能够何时和多大程度提高系统性能”

     

    8.MySQL复制另外一大功能是增加冗余,提高可用性,当一台数据库服务器宕机后能通过调整另外一台从库来以最快的速度恢复服务,因此不能光看性能,也就是说1主1从也是可以的。

     

    23 varchar与char的区别;varchar(50)中50的涵义;int(20)中20的涵义;

    char是定长变量,varchar是变长变量。 varchar(50)表示这一行的变量最大的存储字节是50个字节,int(20)同理。

    【评析】假设有一行是name char(8),如果有一个数据是叫 AAA,那么它仅仅只有三个字节被存储进去,但是依旧存储了8个字节,多余的5个字节空着也就空着了。而是name varchar(8),同样是AAA,由于是变长,所以只保存了3个字节,剩下5个字节是弹性的,有就用,没有就不用。

    在读取方面,char的读取速度要比varchar快,也就是常说的“用读取换容量”,但是还是多用varchar,当数据库内容成万上亿的时候,节省的容量是非常非常可观的。

    24 计划,mysqldump以及xtranbackup的实现原理;备份恢复时间;备份恢复失败如何处理。

    mysqldump是采用sql级别的备份机制,将数据表导成sql脚本文件,在不用的mysql版本之间升级时相对比较合适。

    xtranbackup是innodb的hotbackup工具,xtrbackup在启动的时候会复制所有的数据文件,同时会启动一个后台进程,用于监视事务日志,并且从事务日志复制最新的修改。所以xtrbackup在启动的开始,就不懂的将事务日志的每个数据文件的修改都记录下来。

    mysqldump的备份和恢复时间都很慢,任何数据的更新和变化都会被挂起。

    xtrabackup的恢复时间比mysqldump快一点,但是会锁表。

    备份恢复失败的话,其实原因很多,主要可能就是参数设置的不对,检查一下参数。

    【评析】使用mysqldump备份数据表的命令,在shell下执行:

    mysqldump -u用户名 -p密码(可以直接-p) -h主机名 --databases 数据库名 > 要备份的文件路径

    mysqldump -u用户名 -p密码 -h主机名 --all-databases >要备份的文件路径

    mysqldump -u用户名 -p密码 -h主机名 --no-data 数据库名 >要备份的文件路径

    这里并不全,另写文章专门补充。

     

    25 MySQL中InnoDB引擎的行锁是通过加在什么上完成(或称实现)的?为什么是这样子的?

    InnoDB的行锁是通过加在索引上实现的,为什么这么设计,我也不知道,去问mysql的设计公司。

     

    26 MySQL 数据库备份方式

        增量备份、差异备份、完整备份

     

     

    27  MySQL主从复制原理?

    答案:

    分为同步复制和异步复制,实际复制架构中大部分为异步复制。

    复制的基本过程如下:

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

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

    3)、Slave的IO进程接收到信息后,将接收到的日志内容依次添加到Slave端的relay-log文件的最末端,并将读取到的Master端的 bin-log的文件名和位置记录到master-info文件中,以便在下一次读取的时候能够清楚的告诉Master“我需要从某个bin-log的哪个位置开始往后的日志内容,请发给我”;

    4)、Slave的Sql进程检测到relay-log中新增加了内容后,会马上解析relay-log的内容成为在Master端真实执行时候的那些可执行的内容,并在自身执行。

    Mysql为了解决这个风险并提高复制的性能,将Slave端的复制改为两个进程来完成。提出这个改进方案的人是Yahoo!的一位工程师“Jeremy Zawodny”。这样既解决了性能问题,又缩短了异步的延时时间,同时也减少了可能存在的数据丢失量。当然,即使是换成了现在这样两个线程处理以后,同样也还是存在slave数据延时以及数据丢失的可能性的,毕竟这个复制是异步的。只要数据的更改不是在一个事物中,这些问题都是会存在的。如果要完全避免这些问题,就只能用mysql的cluster来解决了。不过mysql的cluster是内存数据库的解决方案,需要将所有数据都load到内存中,这样就对内存的要求就非常大了,对于一般的应用来说可实施性不是太大。

    复制常用架构

    Mysql复制环境90%以上都是一个Master带一个或者多个Slave的架构模式,主要用于读压力比较大的应用的数据库端廉价扩展解决方案。因为只要master和slave的压力不是太大(尤其是slave端压力)的话,异步复制的延时一般都很少很少。尤其是自slave端的复制方式改成两个进程处理之后,更是减小了slave端的延时。而带来的效益是,对于数据实时性要求不是特别的敏感度的应用,只需要通过廉价的pc server来扩展slave的数量,将读压力分散到多台slave的机器上面,即可解决数据库端的读压力瓶颈。这在很大程度上解决了目前很多中小型网站的数据库压力瓶颈问题,甚至有些大型网站也在使用类似方案解决数据库瓶颈。

     

     

     

    OPERATION

     

    1 简述Squid的优缺点有哪些

    参考答案

    优势:

    通过缓存增加访问速度;

    提高网络的安全性;

    Squid历史悠久,技术积淀深厚,同时无需支付任何费用。

    缺点:

    性能不足,借助于windows、linux等通用操作系统才能实现上网加速等功能。

    2 简述常见Web服务器软件有哪些

    参考答案

    Apache、 Nginx、 Lighttpd 、Tomcat、 IBM WebSphere、IIS。

    3 简述什么是LNMP

    参考答案

    LNMP是网站运行平台。

    L:操作系统(Linux)

    N:网站服务软件(Nginx)

    M:数据库服务软件(MySQL)

    P:网站开发语言(PHP、perl、python)

    4 地址重写的好处

    参考答案

    缩短URL,隐藏实际路径提高安全性;

    易于用户记忆和键入;

    易于被搜索引擎收录。

     

    5 简述什么是memcached

    参考答案

    memcached是高性能的分布式缓存服务器,是一个跨平台的、开源的实现分布式缓存服务的软件

    用来集中缓存数据库查询结果,减少数据库访问次数,以提高动态Web应用的响应速度

    memcached支持许多平台:Linux、FreeBSD、Solaris (memcached 1.2.5以上版本)、Mac OS X、Windows

    2 简述memcached什么情况下会删除缓存数据

     

    参考答案

    当分配的存储空间存满时,有新数据需要存储时,删除最近最少使用的数据。腾出空间存储新数据;

    重新启动memcached服务会删除缓存数据;

    运行memcached服务的操作系统重启后会删除缓存数据。

     

    6 部署实施CDN的优势是什么

    参考答案

    本地Cache加速,提升访问速度和稳定性

    网站镜像,消除不同地区、运营商网络互连的问题

    智能DNS解析,自动选择最快的Cache服务器

    负载优化,减轻后端源Web服务器的压力负载

    集群抗攻击,有效降低DDOS攻击的影响

     

    6,Nginx 的优点?

    答案:

    1. 它可以高并发连接:官方测试连接数(5万)实际生产环境中可支撑(2~4万)
    2. 内存消耗少
    3. 成本低廉
    4. 其他理由(配置文件非常简单,支持Rewrite重写规则)
    5. 内置的健康检查功能
    6. 节省宽带(支持GZIP压缩,可以添加浏览器本地缓存的 Header 头)
    7. 稳定性高
    8. 支持热部署

     

    7 Nginx和Apache的综合对比?

     

    Web服务器

    Nginx

    Apache

    反向代理

    非常好

    Rewrite规则

    非常好

    FastCGI

    热部署

    支持

    不支持

    系统压力比较

    很小

    稳定性

    非常好

    安全性

    一般

    技术资料

    很少

    非常多

    静态文件处理

    非常好

    一般

    虚拟主机

    支持

    支持

    内存消耗

    非常小

    很大

     

    8,什么是CDN?

    答案:CDN的全称是内容分发网络。其目的是通过在现有的Internet中增加一层新的网络架构,将网站的内容发布到最接近用户的网络“边缘”,使用户可以就近取得所需的内容,提高用户访问网站的响应速度。 CDN有别于镜像,因为它比镜像更智能,或者可以做这样一个比喻:CDN=更智能的镜像+缓存+流量导流。因而,CDN可以明显提高Internet网络中信息流动的效率。从技术上全面解决由于网络带宽小、用户访问量大、网点分布不均等问题,提高用户访问网站的响应速度。

    9,CDN的类型特点?

     

    答案:CDN的实现分为三类:镜像、高速缓存、专线。

     

    (1)镜像站点(Mirror Site):是最常见的,它让内容直接发布,适用于静态和准动态的数据同步。但是购买和维护新服务器的费用较高还必须在各个地区设置镜像服务器,配备专业技术人员进行管理与维护。对于大型网站来说,更新所用的带宽成本也大大提高了。

    (2)高速缓存:成本较低,适用于静态内容。Internet的统计表明,超过80%的用户经常访问的是20%的网站的内容,在这个规律下, 缓存服务器可以处理大部分客户的静态请求,而原始的服务器只需处理约20%左右的非缓存请求和动态请求,于是大大加快了客户请求的响应时间,并降低了原始服务器的负载。

    (3)专线:让用户直接访问数据源,可以实现数据的动态同步。

     

    10 CDN的工作原理?

     

    答案:

     

    若是忽略各种缓存,传统的网站访问过程为:
    1. 用户在浏览器中输入要访问的域名;
    2. 浏览器向域名解析服务器发出解析请求,获得此域名对应的IP地址;
    3. 浏览器利用所得到的IP地址,向该IP对应的服务器发出访问请求;
    4. 服务器对此响应,将数据回传至用户浏览器端显示出来。

      与传统访问方式不同,CDN网络则是在用户和服务器之间增加Cache层,将用户的访问请求引导到Cache节点而不是服务器源站点,要实现这一方式,主要是通过接管DNS实现。

     

     

     使用CDN缓存后的网站访问过程演变为:

    1.  用户在浏览器中输入要访问的域名;

    2.  浏览器向域名解析服务器发出解析请求,由于CDN对域名解析过程进行了调整,所以用户端一般得到的是该域名对应的CNAME记录,此时浏览器需要再次对获得的CNAME域名进行解析才能得到缓存服务器实际的IP地址。在此过程中,全局负载均衡DNS解析服务器会根据用户端的源IP地址,如地理位置(深圳还是上海)、接入网类型(电信还是网通)将用户的访问请求定位到离用户路由最短、位置最近、负载最轻的Cache节点(缓存服务器)上,实现就近定位。定位优先原则可按位置、可按路由、也可按负载等等;
    3.  再次解析后浏览器得到该域名CDN缓存服务器的实际IP地址,向缓存服务器发出访问请求;
    4.  缓存服务器根据浏览器提供的域名,通过Cache内部专用DNS解析得到此域名源服务器的真实IP地址,再由缓存服务器向此真实IP地址提交访问请求;
    5.  缓存服务器从真实IP地址得到内容后,一方面在本地进行保存,以备以后使用,同时把得到的数据发送到客户端浏览器,完成访问的响应过程;
    6.  用户端得到由缓存服务器传回的数据后显示出来,至此完成整个域名访问过程;

    不论是否使用CDN网络,用户客户端设置不需做任何改变,直接使用被加速网站原有域名访问即可。对于要加速的网站,只需修改整个访问过程中的域名解析部分,便能实现透明的网络加速服务。

     

     

     

     

    SECURITY

     

     

    1 简述信息安全防护的目标和一般原则。

    参考答案

    信息安全防护的目标:

    保密性,Confidentiality

    完整性,Integrity

    可用性,Usability

    可控制性,Controlability

    不可否认性,Non-repudiation

    信息安全防护的一般原则:

    权限最小化:受保护的敏感信息只应在一个有限的可控的小范围内被分享。

    分权制衡:所有权限应该适当划分给多个授权主体,达到既相互协作又相互制约、相互监督的效果,避免出现权限垄断

    安全隔离:将信息主体与客体分离,通过安全通道对双方之间的访问进行控制

    2 根据攻击/防护的对象不同,安全工作一般区分为哪些类别?

    参考答案

    物理安全:各种设备/主机、机房环境

    系统安全:主机或设备的操作系统

    应用安全:各种网络服务、应用程序

    网络安全:对网络访问的控制、防火墙规则

    数据安全:信息的备份与恢复、加密解密

    管理安全:各种保障性的规范、流程、方法

    3 简述实现SSH密钥对验证的基本过程。

    参考答案

    1)用户在客户端生成密钥对;

    2)用户将公钥上传至目标服务器;

    3)在服务器上将用户上传的公钥导入到指定用户的~/.ssh/authorized_keys中;

    4)客户端连接验证。

    4 简述RHEL6系统中SELinux机制的三种运行模式。

    参考答案

    三种运行模式:

    ENFORCING,强制模式:发生操作违规会禁止

    PERMISSIVE,警告模式:发生操作违规仍然可以继续,但是会写入日志

    DISABLED,禁用模式:即关闭,不使用SELinux机制

    切换规律:

    强制模式切换到禁用模式需要重启系统,反之亦然

    而强制和警告模式间的切换会立即生效

    5 简述向证书颁发机构(CA)申请数字证书的过程。

    参考答案

    1)在应用服务器上生成私钥

    2)利用私钥生成证书请求文件,CSR文件

    3)将CSR文件提交至CA

    4)CA核实CSR 请求

    5)CA签署数字证书

    6)CA将签署的数字证书颁发给请求者

    7)在应用服务器上部署数字证书

    6 简述基于Apache HTTP Server实现HTTPS安全通信的部署过程。

    参考答案

    1)在Web服务器上生成私钥

    2)利用私钥生成证书请求文件CSR

    3)将CSR文件提交给CA申请证书文件CRT

    4)在WEB服务器上将私钥和CRT文件拷贝至指定目录

    5)安装mod_ssl并修改配置文件

    7 加密的邮件通信协议及端口分别有哪些?

    参考答案

    SMTP(25)+ TLS/SSL

    POP3(110)、POP3S(995)

    IMAP(143)、IMAPS(993)

    8 在网络安全工作中,扫描技术可以达成哪些目标?

    参考答案

    检测潜在的风险

    查找可攻击目标

    收集设备/主机/系统/软件信息

    发现可利用的安全漏洞

    9 iptables默认的规则链有哪些,各自的作用是什么?

    参考答案

    INPUT:处理入站数据包

    OUTPUT:处理出站数据包

    FORWARD:处理转发的数据包

    POSTROUTING:路由选择之后处理

    PREROUTING:路由选择之前处理

    10 iptables处理数据包的基本目标操作有哪些,各自的作用是什么?

    参考答案

    ACCEPT:允许通过/放行

    DROP:直接丢弃,不给出任何回应

    REJECT:拒绝通过,必要时会给出提示

    LOG:记录日志,然后传给下一条规则

    11 iptables的filter过滤表包括的默认规则链是哪几个?

    参考答案

    INPUT:主要与想要进入 Linux 本机的数据包有关

    OUTPUT:主要与Linux  本机所要送初的数据包有关

    FORWARD:与 Linux 本机没有关系,它可以传递数据包到后端的计算机中,与NAT 的table 相关性较高

    12 简述iptables状态跟踪机制所处理的几种数据包类型。

    参考答案

    NEW,请求建立连接的包、完全陌生的包

    ESTABLISHED,将要或已经建立连接的包

    RELATED,与已知某个连接相关联的包

    INVALID,无对应连接,以及连接无效的包

    UNTRACKED,未跟踪状态的包

    13 简述基于DNAT策略发布私网服务器的工作原理。

    参考答案

    为只有私网IP地址的服务器在网关上建立DNAT端口映射;当互联网中的客户机访问网关的映射端口时,由网关修改数据包的目标IP地址和端口,改为私网服务器的真实IP地址和端口(从网关可达);私网服务器提供的响应包根据映射关系原路返回,从而实现了私网服务器的公开化访问。

     

     

     

    MONITOR

     

     

    1 监控描述Nagios与Cacti的区别

    参考答案

    Cacti:在监控方面绘图比较不错,在流量与图型展现比较存在优势;

    Nagios:在故障分析比较不错,报警机制相对来说比较好,报警机制:邮箱、短信等,而且也比Cacti灵活;同时适用监控大量服务器以及服务器上面大批服务状态是否正常,重点不在图形化,而在状态故障的监控。

    2 简单描述Zabbix具有哪些监控功能

    参考答案

    具备常见的商业监控软件所具备的功能

    主机性能监控、网络设备监控、数据库监控等

    支持多种报警机制

    支持自动发现网络设备和服务器

    可以通过配置自动发现服务器规则来实现

    支持分布式,能集中展示、管理分布式的监控点

    编写插件容易,可以自定义监控项

    具有实时绘图功能

     

    3 Nagios的系统特点?

    答案:

    1. 监控主机资源和网络服务
    2. 允许用户通过设计实现简单的插件来监控自己特定的服务
    3. 当被监控对象出现问题时,会及时通知管理人员
    4. 事先定义时间处理程序,当对象出现问题时自动调用对应用的处理程序
    5. 通过Web 页面来监视对象状态,警告提示和日志文件。

     

     

    CLUSTER

     

    1 服务器创建存储技术有哪些?

    参考答案

    DAS

    NAS

    SAN

    2 集群有哪些类别?

    参考答案

    高性能计算集群HPC:通过以集群开发的并行应用程序,解决复杂的科学问题。

    负载均衡(LB)集群:客户端访问负载可以在计算机集群中尽可能平均地分摊处理。

    高可用(HA)集群:当集群中的一个系统发生故障时,集群软件迅速做出反应,将该系统的任务分配到集群中其它正在工作的系统上执行。

    3  LVS的负载平衡方式有哪些?

    参考答案

    VS/NAT:通过网络地址转换实现的虚拟服务器。Director将用户请求报文的目的地址改成选定的Real Server地址后,转发给Real Server。大并发访问时,调度器的性能成为瓶颈。

    VS/DR:直接使用路由技术实现虚拟服务器。通过改写请求报文的MAC地址,将请求发至Real Server,Real Server直接响应客户端。

    VS/TUN:通过隧道方式实现虚拟服务器。Director采用隧道技术将请求发至Real Server后,Real Server直接响应客户端。

    4 写出至少四种LVS负载平衡的调度算法

    参考答案

    轮询(Round Robin)

    加权轮询(Weighted Round Robin)

    最少连接(Least Connections)

    加权最少连接( Weighted Least Connections )

    基于局部性的最少链接(Locality-Based Least Connections)

    带复制的基于局部性最少链接(Locality-Based Least Connections with Replication)

    目标地址散列(Destination Hashing)

    源地址散列(Source Hashing)

    最短的期望的延迟(Shortest Expected Delay Scheduling SED)

    最少队列调度(Never Queue Scheduling NQ)

    5 HAProxy工作模式有哪些?

    参考答案

    mode http:客户端请求被深度分析后再发往服务器。

    mode tcp:在客户端与服务器这间建立全双工会话,不检查第七层信息。

    mode health:仅做健康状态检查,已经不建议使用。

    2 HTTP Keep-alive事务模型的特点是什么?

     

    参考答案

    一次连接可以传输多个请求;

    客户端需要知道传输内容的长度,以避免无限期的等待传输结束;

    降低两个HTTP事务间的延迟;

    需要相对较少的服务器资源。

    6 HAProxy配置文件有哪些组成部分?

    参考答案

    default:为后续的其他部分设置缺省参数,缺省参数可以被后续部分重置;

    frontend:描述集群接收客户端请求的信息集合;

    backend:描述转发链接的后端服务器集合;

    listen:把frontend和backend结合到一起的完整声明。

    7 写出RHCS的核心组件名称?

    参考答案

    cman(cluster manager):集群管理器;

    rgmanger(Cluster resource group manager):集群资源管理器;

    corosync:集群间通信软件;

    rcci:集群远程管理器。

    8 写出RHCS高可用集群配置流程

    参考答案

    配置yum服务器和客户端;

    设置iSCSI共享存储;

    节点上设置iSCSI客户端连接;

    关闭node1~3节点上的NetworkManager服务;

    节点上安装ricci通信工具;

    安装luci Web界面集群管理工具;

    通过luci安装集群;

    配置fence;

    配置apache高可用集群。

     

    9 LVS 三种工作模式原理、以及优缺点比较

    一、NAT模式(VS-NAT)

     

    原理:就是把客户端发来的数据包的IP头的目的地址,在负载均衡器上换成其中一台RS的IP地址,并发至此RS来处理,RS处理完成后把数据交给经过负载均衡器,负载均衡器再把数据包的原IP地址改为自己的IP,将目的地址改为客户端IP地址即可。期间,无论是进来的流量,还是出去的流量,都必须经过负载均衡器。

     

    优点:集群中的物理服务器可以使用任何支持TCP/IP操作系统,只有负载均衡器需要一个合法的IP地址。

     

    缺点:扩展性有限。当服务器节点(普通PC服务器)增长过多时,负载均衡器将成为整个系统的瓶颈,因为所有的请求包和应答包的流向都经过负载均衡器。当服务器节点过多时,大量的数据包都交汇在负载均衡器那,速度就会变慢!

     

    二、IP隧道模式(VS-TUN)

     

    原理:首先要知道,互联网上的大多Internet服务的请求包很短小,而应答包通常很大。那么隧道模式就是,把客户端发来的数据包,封装一个新的IP头标记(仅目的IP)发给RS,RS收到后,先把数据包的头解开,还原数据包,处理后,直接返回给客户端,不需要再经过负载均衡器。注意,由于RS需要对负载均衡器发过来的数据包进行还原,所以说必须支持IPTUNNEL协议。所以,在RS的内核中,必须编译支持IPTUNNEL这个选项

     

    优点:负载均衡器只负责将请求包分发给后端节点服务器,而RS将应答包直接发给用户。所以,减少了负载均衡器的大量数据流动,负载均衡器不再是系统的瓶颈,就能处理很巨大的请求量,这种方式,一台负载均衡器能够为很多RS进行分发。而且跑在公网上就能进行不同地域的分发。

     

    缺点:隧道模式的RS节点需要合法IP,这种方式需要所有的服务器支持”IP Tunneling”(IP Encapsulation)协议,服务器可能只局限在部分Linux系统上。

     

    三、直接路由模式(VS-DR)

     

    原理:负载均衡器和RS都使用同一个IP对外服务。但只有DR对ARP请求进行响应,所有RS对本身这个IP的ARP请求保持静默。也就是说,网关会把对这个服务IP的请求全部定向给DR,而DR收到数据包后根据调度算法,找出对应的RS,把目的MAC地址改为RS的MAC(因为IP一致)并将请求分发给这台RS。这时RS收到这个数据包,处理完成之后,由于IP一致,可以直接将数据返给客户,则等于直接从客户端收到这个数据包无异,处理后直接返回给客户端。由于负载均衡器要对二层包头进行改换,所以负载均衡器和RS之间必须在一个广播域,也可以简单的理解为在同一台交换机上。

     

    优点:和TUN(隧道模式)一样,负载均衡器也只是分发请求,应答包通过单独的路由方法返回给客户端。与VS-TUN相比,VS-DR这种实现方式不需要隧道结构,因此可以使用大多数操作系统做为物理服务器。

     

    缺点:(不能说缺点,只能说是不足)要求负载均衡器的网卡必须与物理网卡在一个物理段上。

     

     

    10  LVS简介?

     

    答案:

    LVS 是 Linux  Virtual Server ,Linux 虚拟服务器;是一个虚拟的服务器集群【多台机器 LB IP】。LVS 集群分为三层结构:

     

    负载调度器(load balancer):它是整个LVS 集群对外的前端机器,负责将client请求发送到一组服务器[多台LB IP]上执行,而client端认为是返回来一个同一个IP【通常把这个IP 称为虚拟IP/VIP】

    服务器池(server pool):一组真正执行client 请求的服务器,一般是我们的web服务器;除了web,还有FTP,MAIL,DNS

    共享存储(shared stored):它为 server pool 提供了一个共享的存储区,很容易让服务器池拥有相同的内容,提供相同的服务[不是很理解]

     

    面试问答题

     

     

    常用服务的端口

     

    HTTP: 80 FTP: 21 DNS: 53  POP3:110 SMTP: 25

    SSH: 22 NGINX: 80 SQUID: 3128 NAGIOS: 5666 MEMCHACHED:11211

    MYSQL: 3360 TOMCAT: 8080 NFS: 2049 TLENET: 23 HTTPS:443

    SAMBA:  UDP 138    TCP 139    POSTFIX:  25     IMAP:  143    zabbix:10051  cacti:

    DHCP:68

     

     

     

     

    常说的1U,2U,3U,4U服务器是什么意思?

     

    这是指的服务器大小规格

    1U=4.45cm

    2U=8.9cm

    3U=4.45cm * 3

    4U=4.45cm * 4

    这指的是服务器的高度

     

    服务器的种类有哪些?

     

    1,机架式服务器

    2,刀片服务器

    3,塔式服务器

    4,机柜式服务器

     

     

     

     

     

    面试题

     

    1,双绞线的两种线序?

    答案:

    T568A:白绿、绿、白橙、蓝、白蓝、橙、白棕、棕

    T568B:白橙、橙、白绿、蓝、白蓝、绿、白棕、棕

     

     

    2,按照从高到低列出OSI七层模型?交换机主要工作在哪一层?路由器工作在哪一层?

    答案:

    物理层,数据链路层,网络层,传输层,会话层,表示层,应用层

     

    交换机:数据链路层

    路由器:网络层

     

    3,下列服务的默认端口是多少?SSH,TELNET,SMTP,POP3,DNS

    答案:  22、23、25、110、53

     

    4,各RAID 级别最少需要的硬盘数量:RAID0=    RAID1=    RAID5=

    答案:

    RAID0= 2   RAID1= 2   RAID5=3

     

    5,windows 服务器远程桌面的默认端口是多少?

    答案:3389

     

    6,在Linux 系统中 ,使用递归方式将 “/usr/src/”目录中的所有子目录及文件设置权限为“rw-r--r--”。

    答案:

    chmod  -R  644  /usr/src

     

    7,标准访问控制列表和扩展访问列表的区别?

    答案:

    标准访问控制列表 :
    根据数据包的源IP地址来允许或拒绝数据包。访问控制列表号是1-99。

    扩展访问控制列表:
    根据数据包的源IP地址、目的IP地址、指定协议、端口和标志来允许或拒绝数据包。访问控制列表号是100-199。

     

    8,机柜1U 是指什么? 数值是多少 ?

    答案: 是指服务器的厚度。  1U等于4.45厘米。

     

    9,一个 42U 标准, 机柜最多能放下几台 3U 服务器?

    答案:13台

     

    10,辨别一个硬盘参数有那些?

    答案:

    一个看 硬盘转速! 转速越高 读写速度越快!
    二个看 硬盘显存  显存大小 都会影响硬盘读写速度! 一般最小为2M 最大可以到32M
    三个看 硬盘的存储量! 更具你自己需要 选择 最小80G 最大到10T  10000G
    三个看 硬盘的接口  IDE  sata 前者俗称并口硬盘 后者为串口  一般来说前者比后者稳定 但是传输速度没有后者快  后者速度很理想  但是 不是很稳定 往往出现坏道的时间 比IDE 的要快

     

    11,简述 More 和less 命令的区别?

    答案:

    More  不能往前翻页,less  可以往前翻页

     

    12,热备硬盘的概念?

    答案:

    热备盘的作用相当于是在raid里面再做一个备份,比如说本来Raid里面是只允许坏一个盘的情况下系统和数据依然正常运行,但是坏两个就不行了,但是加了热备之后就可以同时坏两个盘都没问题,就多了个保险。

     

    原理:

    那个热备盘相当于帮Raid阵列多做多个备份,如果Raid陈列里其中一个盘坏了,这个热备盘就会顶替Raid里的那个坏盘,同时利用异或校验算法,把坏盘上面的数据原样做出来并存储在热备盘中。这样一来就等于Raid没受到损坏,然后你再找个一个同样的盘把坏盘替换掉,Raid和热备盘的状态又正常了!

     

    13,如何在 Linux 中永久设置网络信息, IP:192.168.1.10  ,子网掩码:255.255.255.0  网关:192.168.1.1

    答案:

    vim  /etc/sysconfig/network-scripts/ifcfg-eth0

    IPADDR=192.168.1.10

    NETMASK=255.255.255.0

    GATEWAY=192.168.1.1

     

    14,如何关闭防火墙?

    答案:/etc/init.d/iptables   stop

      永久关闭

      Chkconfig iptables  on

     

    15,查看内存运行状态的命令是什么?

    答案:free  

     

    16,RAID的含义及优势?RAID0、RAID1、RAID5分别指什么、各自的特点?

    参考答案

    1)RAID:廉价冗余磁盘阵列,指通过硬件/软件技术将多个较小/低速的磁盘整合成一个大磁盘使用的一种存储技术,其不仅可存储数据,还可以实现一定程度的冗余保障,具有“速度快、安全性高”的优势。

    2)RAID0、RAID1、RAID5的含义及特点如下:

    RAID0:条带模式,由两个或两个以上的磁盘组成,同一份文档分散在不同的磁盘中,并行写入,提高写效率。

    RAID1:镜像模式,由至少两个磁盘组成,同一份文件被分别写入到不同的磁盘中,每份磁盘数据一样,实现容错,提高读效率。

    RAID5:分布式奇偶校验的独立磁盘模式,结合RAID0和RAID1的好处,同时避免它们的缺点。由至少3块以上大小相同的磁盘组成,实现冗余。

     

     

    17,每天晚上00:00 执行mysql 数据备份,请写出 crontab 配置项

    答案:  0 0 * * * mysqldump -uroot -p123456 --flush-logs 数据库名 >  备份文件名

     

    18,写一个mysql 管理启动停止的脚本,mysql 安装路径 /opt/mysql

    答案:

     

    19, 查看iptables 默认策略的指令是什么?

    答案:  iptables   -L

     

    20,iptables 开放端口 80 端口的语句怎么写?

    答案: iptables -I INPUT -p tcp --dport 80 -j ACCEPT

     

    21,TCP和 UDP  的区别是什么 ?

    答案:

    TCP---传输控制协议,提供的是面向连接、可靠的字节流服务。当客户和服务器彼此交换数据前,必须先在双方之间建立一个TCP连接,之后才能传输数据。TCP提供超时重发,丢弃重复数据,检验数据,流量控制等功能,保证数据能从一端传到另一端。
    UDP---用户数据报协议,是一个简单的面向数据报的运输层协议。UDP不提供可靠性,它只是把应用程序传给IP层的数据报发送出去,但是并不能保证它们能到达目的地。由于UDP在传输数据报前不用在客户和服务器之间建立一个连接,且没有超时重发等机制,故而传输速度很快

    22,Linux主机需要上网,有那几个必须的网络项设置?分别是什么?

    答案:4  个 DNS,IP地址,子网掩码,网关,

     

    23,Apache 配置基于端口的虚拟主机,需要配置那几个项?

    答案:

     

     

    24,简要描述 Linux 的启动过程?

    答案:

    参考答案

    • 加载BIOS,检查硬件信息
    • 读取并执行第一个开机设备内MBR
    • 运行grub引导加载 kernel
    • 内核启动/sbin/init程序
    • init 系统初始化
    • 确定默认的运行级别
    • 触发runlevel事件,运行/etc/rc.d/rc
    • 最后执行/etc/rc.d/rc.local
    • 加载终端或X-Window接口

     

    25,简述你所理解的虚拟化?

    答案:

     

    26,简述TCP 三次握手的过程?

    答案:

    TCP 连接是通过三次握手进行初始化的。三次握手的目的是同步连接双方的序列号和确认号并交换 TCP 窗口大小信息。以下步骤概述了通常情况下客户端计算机联系服务器计算机的过程:

    1. 客户端向服务器发送一个SYN置位的TCP报文,其中包含连接的初始序列号x和一个窗口大小(表示客户端上用来存储从服务器发送来的传入段的缓冲区的大小)。

    2. 服务器收到客户端发送过来的SYN报文后,向客户端发送一个SYN和ACK都置位的TCP报文,其中包含它选择的初始序列号y、对客户端的序列号的确认x+1和一个窗口大小(表示服务器上用来存储从客户端发送来的传入段的缓冲区的大小)。

    3. .客户端接收到服务器端返回的SYN+ACK报文后,向服务器端返回一个确认号y+1和序号x+1的ACK报文,一个标准的TCP连接完成。

    TCP 使用类似的握手过程来结束连接。这可确保两个主机均能完成传输并确保所有的数据均得以接收

     

     

    27,简述 RAID0  RAID1  RAID5 三种工作原理及特点?

    答案:

    RAID 0:连续以位或字节为单位分割数据,并行读/写于多个磁盘上,因此具有很高的数据传输率,但它没有数据冗余,因此并不能算是真正的RAID结构。RAID 0只是单纯地提高性能,并没有为数据的可靠性提供保证,而且其中的一个磁盘失效将影响到所有数据。因此,RAID 0不能应用于数据安全性要求高的场合。

    RAID 1:它是通过磁盘数据镜像实现数据冗余,在成对的独立磁盘上产生互为备份的数据。当原始数据繁忙时,可直接从镜像拷贝中读取数据,因此RAID 1可以提高读取性能。RAID 1是磁盘阵列中单位成本最高的,但提供了很高的数据安全性和可用性。当一个磁盘失效时,系统可以自动切换到镜像磁盘上读写 ,而不需要重组失效的数据。简单来说就是:镜象结构,类似于备份模式,一个数据被复制到两块硬盘上。

    RAID5:分布式奇偶校验的独立磁盘结构,它的奇偶校验码存在于所有磁盘上,任何一个硬盘损坏,都可以根据其它硬盘上的校验位来重建损坏的数据。支持一块盘掉线后仍然正常运行

     

    28,tail 命令输出文件abc 最后 20行

    答案:  tail -20 2bc

     

    29,在 /var/log/  目录下查找文件名以 vmker 开头的文件并打印路径?

    答案:  ls  ar/log/ | grep ^vmker

     

    30,写一个脚本查找最后创建时间是 3天前,后缀是 *.log 的文件并删除。

    答案:    find   /  -name  ".log" -ctime +3 -exec rm -f {} \;

     

    31,写一个脚本将目录下大于 100K 的文件移动至 /tmp 下?

    答案:

    #!/bin/bash
    for file in `ls /root`
    do
           if [ -f $file ]; then
                  if [ `ls -l $file|awk '{print $5}'` -gt 10000 ];  then
                         mv $file /tmp/
                  fi
           fi
    done

     

    32,将本地 80 端口的请求转发到 8080 端口, 当前主机 IP 为 192.168.10.1

    答案:

    Iptables -A PREROUTING  -d 124.42.60.109 -p tcp -m tcp –dport 80 -j DNAT –to-destination 10.0.0.18:9000

    33, 除了 FAT32 和 ext3 ,还有那些文件系统格式 ?

    答案:ext4 ,  xfs  

     

    34,Linux 中每周六的 04点 20 分删除 /tmp/log_* 文件,怎样实现?

    答案:20 04 * * 6 rm -rf /tmp/log_*

     

    35,服务器除了 CPU 负载外, 还可能会在哪方面产生瓶颈?

    答案:  内存,硬盘。宽带。

     

    36,用什么命令可以立即查处服务器在昨天有没有被别人重启过系统?

    答案:

     

    37,怎么查询某 rpm 中包含那些文件?

    答案:rpm  -qpl    

          Rpm  -qpc  

     

    38,Linux 引导加载的先后排序是? 请标序号

    BIOS ( 1 ) Kernel ( 5 ) GRUB (4 ) MBR ( 3 ) RAID ( 2 )

     

    39,在 BASH  shell 中 2>&1 的作用?

    答案:

    是将标准出错重定向到标准输出,这里的标准输出已经重定向到了out.file文件,即将标准出错也输出到out.file文件中。最后一个&, 是让该命令在后台执行。

     

    40,如何在 Linux 中创建 /users 目录 ,并将目录赋予 775 权限?

    答案 :mkdir  -m   755   /users

     

    41,Linux 系统中 /etc/hosts  文件的作用?

    答案 :

    Linux 的/etc/hosts是配置ip地址和其对应主机名的文件,这里可以记录本机的或其他主机的ip及其对应主机名。不同的linux版本,这个配置文件也可能不同。比如Debian的对应文件是/etc/hostname。

     

    42, 每天凌晨 1点在 /data  目录新建当天日期文件夹?

    答案:   0 1 * * *  mkdir  /data/$(date "+%Y%m%d")

     

     

    43,如何查看占用端口 8080 的进程?

    答案 :netstat  -anutp    |  grep  :8080

          lsof -i:8080

     

    44,查看系统启动的服务列表,并新添  mysqld 服务随系统启动、

    答案: chkconfig    --list

        chkconfig   mysql   on

     

     

    45,httpd 有几种工作模式,每种模式的简单区别?

    答案:2中  

    最主要的两种模式是prefork 模式与worker 模式。prefork 每个子进程只有一个线 

    程,效率高但消耗内存大,是unix 下默认的模式;worker 模式每个子进程有多个线程, 内存消耗低,但一个线程崩溃会牵连其它同子进程的线程。 

     

     

    46,MySQL 如何给testuser 用户对 testdb 数据库所有表授权访问,密码为 testpwd,请写出命令?

    答案:   grant all on testdb.* to testuser@"localhost" identified by "testpwd"

     

     

    47、设置数据库管理员从本机登录的密码为999

    答案:mysqladmin  -hlocalhost  -uroot  -p  password  "999"

     

     

    48、授权管理员用户可以在网络中的所有主机登录,对所有库     、表有完全权限且有授权的权限、 登陆密码tarena

    答案:

    mysql  -hlocalhost  -uroot  -p999

    grant  all  on  *.*  to  root@"%"  identified by  "tarena"

    with  grant   option;

     

    49、查看当前登陆数据库服务器的用户是谁?

    答案:   select user();

     

    50、查看当前登陆数据库服务器用户的权限?

    答案: show  grants;

     

    51、查看当前数据库服务器有哪些授权用户。

    答案: select  user,host  from  mysql.user;

     

    52、不允许数据库管理员在数据库服务器本机登录。

    答案:

     delete  from  mysql.user where host in ("127.0.0.1","::1","localhost","svr5.tarena.com");

     flush  privileges;

     

    53、授权userweb用户可以从网络中的任意主机访问数据库服务器,对studb库下的tuser表有查看、更新username字段和age字段的权限   登录密码userweb888。

    答案:

    grant    select,update(username,age) on studb.tuser  to  userweb@"%"  identified by  "userweb888";

    mysql -h192.168.4.5  -uuserweb  -puserweb888

     

    54、授权用户userweb 重置自己的登陆密码为123456,并验证能否使用新密码登陆

    答案: set  password=password("123456");  

     

    1. 数据库管理员修改授权用户userweb的登录密码为654321,让授权用户userweb 使用新密码登陆数据库服务器。

    答案:

    mysql -h192.168.4.5  -uroot  -ptarena

     set  password   for   userweb@"%"=password("654321");

    mysql -h192.168.4.5  -uuserweb  -p654321

     

    56、撤销授权用户userweb 的所有授权并 使其不再能使用此用户连接数据库服务器。

    答案:

    mysql -h192.168.4.5  -uroot  -ptarena

    revoke  all on   studb.tuser    from  userweb@"%";

    delete  from mysql.user  where  user="userweb"  and  host="%";

    flush  privileges;

     

    57、授权webadmin用户可以从网络中的所有主机登录,对bbsdb库拥有完全权限,且有授权权限,登录密码为webadmin

    答案:

    grant     all     on  bbsdb.*     to    webadmin@"%"   identified by "webadmin"   with  grant  option;

    grant    insert     on  mysql.*     to    webadmin@"%" ;

     

    1. 在客户端使用授权用户webadmin登录,把自己的权限授权给userone 用户  登录密码是  userone。

    答案:

    mysql  -h192.168.4.5  -uwebadmin  -pwebadmin

    grant     all     on  bbsdb.*     to  userone@"%"   identified by  "userone";

     

    1. 撤销webadmin用户的授权权限。

    答案:

    mysql -h192.168.4.5  -uroot  -ptarena

     revoke   grant  option   on  bbsdb.*     to  webadmin@"%" ;

     

    1. 让所有授权用户连接数据库服务器后,对test库无任何权限

    答案:

    delete  from  mysql.db  where  user="";

    flush privileges;

     

    1. 只允许数据库管理员从数据库服务器本机登录且有授权的权限 , 登录的密码123plj456。

    答案:

    mysql -h192.168.4.5  -uroot  -ptarena

    grant   all  on *.*  to  root@"localhost"  identified by  "123plj456"  with  grant option;

    quit

    mysql  -hlocalhost  -uroot -p123plj456

    delete from mysql.user where host!="localhost";

     flush privileges;

     


    62,简述Linux文件系统通过i节点把文件的逻辑结构和物理结构转换的工作过程。
    参考答案:
    Linux通过i节点表将文件的逻辑结构和物理结构进行转换。
    i 节点是一个64字节长的表,表中包含了文件的相关信息,其中有文件的大小、文件所有者、文件的存取许可方式以及文件的类型等重要信息。在i节点表中最重要 的内容是磁盘地址表。在磁盘地址表中有13个块号,文件将以块号在磁盘地址表中出现的顺序依次读取相应的块。Linux文件系统通过把i节点和文件名进行 连接,当需要读取该文件时,文件系统在当前目录表中查找该文件名对应的项,由此得到该文件相对应的i节点号,通过该i节点的磁盘地址表把分散存放的文件物 理块连接成文件的逻辑结构。

    63.简述进程的启动、终止的方式以及如何进行进程的查看。
    参考答案:
    在Linux中启动一个进程有手工启动和调度启动两种方式:
    (1)手工启动
    用户在输入端发出命令,直接启动一个进程的启动方式。可以分为:
    ①前台启动:直接在SHELL中输入命令进行启动。
    ②后台启动:启动一个目前并不紧急的进程,如打印进程。
    (2)调度启动
    系统管理员根据系统资源和进程占用资源的情况,事先进行调度安排,指定任务运行的时间和场合,到时候系统会自动完成该任务。
    经常使用的进程调度命令为:at、batch、crontab。
    64. 简述DNS进行域名解析的过程。
    参考答案:
    首先,客户端发出DNS请求翻译IP地址或主机名。DNS服务器在收到客户机的请求后:
    (1)检查DNS服务器的缓存,若查到请求的地址或名字,即向客户机发出应答信息;
    (2)若没有查到,则在数据库中查找,若查到请求的地址或名字,即向客户机发出应答信息;
    (3)若没有查到,则将请求发给根域DNS服务器,并依序从根域查找顶级域,由顶级查找二级域,二级域查找三级,直至找到要解析的地址或名字,即向客户机所在网络的DNS服务器发出应答信息,DNS服务器收到应答后现在缓存中存储,然后,将解析结果发给客户机。
    (4)若没有找到,则返回错误信息。

    65.系统管理员的职责包括那些?管理的对象是什么?
    参考答案:
    系统管理员的职责是进行系统资源管理、设备管理、系统性能管理、安全管理和系统性能监测。管理的对象是服务器、用户、服务器的进程及系统的各种资源等。
    66.简述安装Slackware Linux系统的过程。
    参考答案:
    (1)对硬盘重新分区。 (2)启动Linux系统(用光盘、软盘等)。
    (3)建立Linux主分区和交换分区。(4)用setup命令安装Linux系统。
    (5)格式化Linux主分区和交换分区(6)安装Linux软件包
    (7)安装完毕,建立从硬盘启动Linux系统的LILO启动程序,或者制作一张启动Linux系统的软盘。重新启动Linux系统。
    67.什么是静态路由,其特点是什么?什么是动态路由,其特点是什么?
    参考答案:
    静态路由是由系统管理员设计与构建的路由表规定的路由。适用于网关数量有限的场合,且网络拓朴结构不经常变化的网络。其缺点是不能动态地适用网络状况的变化,当网络状况变化后必须由网络管理员修改路由表。
    动态路由是由路由选择协议而动态构建的,路由协议之间通过交换各自所拥有的路由信息实时更新路由表的内容。动态路由可以自动学习网络的拓朴结构,并更新路由表。其缺点是路由广播更新信息将占据大量的网络带宽。
    68.进程的查看和调度分别使用什么命令?
    参考答案:
    进程查看的命令是ps和top。
    进程调度的命令有at,crontab,batch,kill。
    69.当文件系统受到破坏时,如何检查和修复系统?
    参考答案:
    成功修复文件系统的前提是要有两个以上的主文件系统,并保证在修复之前首先卸载将被修复的文件系统。
    使用命令fsck对受到破坏的文件系统进行修复。fsck检查文件系统分为5步,每一步检查系统不同部分的连接特性并对上一步进行验证和修改。在执行 fsck命令时,检查首先从超级块开始,然后是分配的磁盘块、路径名、目录的连接性、链接数目以及空闲块链表、i-node。
    70.解释i节点在文件系统中的作用。
    参考答案:
    在linux文件系统中,是以块为单位存储信息的,为了找到某一个文件在存储空间中存放的位置,用i节点对一个文件进行索引。I节点包含了描述一个文件所必须的全部信息。所以i节点是文件系统管理的一个数据结构。
    71.什么是符号链接,什么是硬链接?符号链接与硬链接的区别是什么?
    参考答案:
    链接分硬链接和符号链接。
    符号链接可以建立对于文件和目录的链接。符号链接可以跨文件系统,即可以跨磁盘分区。符号链接的文件类型位是l,链接文件具有新的i节点。
    硬链接不可以跨文件系统。它只能建立对文件的链接,硬链接的文件类型位是-,且硬链接文件的i节点同被链接文件的i节点相同。
    72.在对linux系统分区进行格式化时需要对磁盘簇(或i节点密度)的大小进行选择,请说明选择的原则。
    参考答案:
    磁盘簇(或i节点密度)是文件系统调度文件的基本单元。磁盘簇的大小,直接影响系统调度磁盘空间效率。当磁盘分区较大时,磁盘簇也应选得大些;当分区较小时,磁盘簇应选得小些。通常使用经验值。
    73.简述网络文件系统NFS,并说明其作用。
    参考答案:
    网络文件系统是应用层的一种应用服务,它主要应用于Linux和Linux系统、Linux和Unix系统之间的文件或目录的共享。对于用户而言可以通过 NFS方便的访问远地的文件系统,使之成为本地文件系统的一部分。采用NFS之后省去了登录的过程,方便了用户访问系统资源。

    74.某/etc/fstab文件中的某行如下:
    /dev/had5 /mnt/dosdata msdos defaults,usrquota 1 2
    请解释其含义。
    参考答案:
    (1)第一列:将被加载的文件系统名;(2)第二列:该文件系统的安装点;
    (3)第三列:文件系统的类型;(4)第四列:设置参数;
    (5)第五列:供备份程序确定上次备份距现在的天数;
    (6)第六列:在系统引导时检测文件系统的顺序。
    75.Apache服务器的配置文件httpd.conf中有很多内容,请解释如下配置项:
    (1)MaxKeepAliveRequests 200 (2)UserDir public_html
    (3)DefaultType text/plain (4)AddLanguare en.en
    (5)DocumentRoot“/usr/local/httpd/htdocs”
    (6)AddType application/x-httpd-php.php.php.php4
    参考答案:
    (1)允许每次连接的最大请求数目,此为200;(2)设定用户放置网页的目录;
    (3)设置服务器对于不认识的文件类型的预设格式;
    (4)设置可传送语言的文件给浏览器;(5)该目录为Apache放置网页的地方;
    (6)服务器选择使用php4。
    76.某Linux主机的/etc/rc.d/rc.inet1文件中有如下语句,请修正错误,并解释其内容。
    /etc/rc.d/rc.inet1:
    ……
    ROUTE add –net default gw 192.168.0.101 netmask 255.255.0.0 metric 1
    ROUTE add –net 192.168.1.0 gw 192.168.0.250 netmask 255.255.0.0 metric 1
    参考答案:
    修正错误:
    (1)ROUTE应改为小写:route;(2)netmask 255.255.0.0应改为:netmask 255.255.255.0;
    (3)缺省路由的子网掩码应改为:netmask 0.0.0.0;
    (4)缺省路由必须在最后设定,否则其后的路由将无效。
    解释内容:
    (1)route:建立静态路由表的命令;(2)add:增加一条新路由;
    (3)-net 192.168.1.0:到达一个目标网络的网络地址;
    (4)default:建立一条缺省路由;(5)gw 192.168.0.101:网关地址;
    (6)metric 1:到达目标网络经过的路由器数(跳数)。

    77.试解释apache服务器以下配置的含义: 
    (1)port 1080 (2)UserDir userdoc
    (3)DocumentRoot “/home/htdocs”
    (4)<Directory /home/htdocs/inside>;
    Options Indexes FollowSymLinks
    AllowOverride None
    Order deny,allow
    deny from all
    allow from 192.168.1.5
    </Directory>;
    (5)Server Type Standlone
    参考答案:
    Apache服务器配置行含义如下:
    (1)将apache服务器的端口号设定为1080;
    (2)设定用户网页目录为userdoc;
    (3)设定apache服务器的网页根目录:/home/htdocs;
    (4)在此apache服务器上设定一个目录/home/htdocs/inside,且此目录只允许IP地址为192.168.1.5的主机访问;
    (5)定义apache服务器以独立进程的方式运行。
    78.简述使用ftp进行文件传输时的两种登录方式?它们的区别是什么?常用的ftp文件传输命令是什么?
    参考答案:
    (1)ftp有两种登录方式:匿名登录和授权登录。使用匿名登录时,用户名为:anonymous,密码为:任何合法email地址;使用授权登录时,用户名为用户在远程系统中的用户帐号,密码为用户在远程系统中的用户密码。
    区别:使用匿名登录只能访问ftp目录下的资源,默认配置下只能下载;而授权登录访问的权限大于匿名登录,且上载、下载均可。
    (2)ftp文件传输有两种文件传输模式:ASCII模式和binary模式。ASCII模式用来传输文本文件,其他文件的传输使用binary模式。
    (3)常用的ftp文件传输命令为:bin、asc、put、get、mput、mget、prompt、bye

    79.编写shell程序,实现自动删除50个账号的功能。账号名为stud1至stud50。

        参考程序:

        #!/bin/sh

        i=1

        while [ $i -le 50 ]

        do

        userdel -r stud${i}

        i=$(($i+1 ))

    Done

     

    80、查询file1里面空行的所在行号

    awk ‘{if($0~/^$/)print NR}’ file
    or
    grep -n ^$ file |awk ‘BEGIN{FS=”:”}{print $1}’

    81、查询file1以abc结尾的行
    grep abc$ file1


    82、打印出file1文件第1到第3行
    sed -n ’1,3p’ file1
    head -3 file1

     

    83、你对现在运维工程师的理解和以及对其工作的认识

    运维工程师在公司当中责任重大,需要保证时刻为公司及客户提供最高、最快、最稳定、最安全的服务。运维工程师的一个小小的失误,很有可能会对公司及客户造成重大损失,因此运维工程师的工作需要严谨及富有创新精神。

     

    84、linux下常用的DNS服务软件是什么,举出几种常用的DNS记录,如果域名abc.com配置好了一台邮件服务器,IP地址为202.106.0.20,我该如何做相关的解析?是否了解bind的智能解析,如果了解请简述一下其原理

    答案:

    1)常用的DNS软件是bind

    2)A记录 地址记录

    MX记录 邮件交换记录

    CNAME记录 别名域记录

    3)修改abc.com域名的配置文件,增加以下记录

       IN      MX      10      mail.abc.com.

    mail  IN   A        202.106.0.20

    4)bind根据请求解析客户端的IP地址,做出不同的解析,其原理是在配置文件中,设定了view,在每个view都有客户端的IP地址段,bind服务器根据请求解析客户端的IP地址,匹配不同的view,再根据该view的配置,到相应的配置文件进行查询,将结果返回给请求的客户端。

     

    85、通过apache访问日志access.log统计IP和每个地址访问的次数,按访问量列出前10名。

    日志格式样例如下

    192.168.1.247 – - [02/Jul/2010:23:44:59 +0800] “GET / HTTP/1.1″ 200 19

    答案:

    cat access_log | awk ‘{print $1}’ | uniq -c|sort -rn|head -10

    //这个别的方法也能统计,但有些命令是必要的 awk , sort,uniq ,主要看是否这些命令都使用了。

     

    86,在11 月份内,每天的早上6 点到12 点中,每隔2 小时执行一次/usr/bin/httpd.sh 怎么实现

    答案:  06-12/2 * 11 * /usr/bin/httpd.sh 

     

    87,oracle 数据库备份方式 

    答案:

    物理备份:开启网络监听,备份数据库文件。 

    RMAN 备份:通过表空间文件在RMAN 模式对ORACLE 数据备份。

     

    88,写出常见的服务对应端口的对照表至少10个。如:FTP 21

    答案:

    HTTP: 80 FTP: 21 DNS: 53  POP3:110 SMTP: 25

    SSH: 22 NGINX: 80 SQUID: 3128 NAGIOS: 5666 MEMCHACHED:11211

    MYSQL: 3360 TOMCAT: 8080 NFS: 2049 TLENET: 23 HTTPS:443

    SAMBA:  UDP 138    TCP 139    POSTFIX:  25     IMAP:  143    zabbix:10051  

     

    89.简述安装Linux至少需要哪两个分区?还有哪些常用分区?Windows与linux的主要区别是 什么?

    答案:  / 跟  、swap  、/boot、   /home      主要区别是Linux主要是在服务器领域,Windows主要是用在客户端。

     

     

    97.试解释apache服务器以下配置的含义

    (1)  port 1080

    (2)  UserDir userdoc

    (3)  DocumentRoot  /home/htdocs

    (4)<Directory /home/htdocs/inside>;

          Options Indexes FollowSymLinks

          AllowOverride None

          Order deny,allow

          deny from all

          allow from 192.168.1.5

    </Directory>;

    (5)Server Type Standlone

    答案:

    Apache 服务器配置行含义如下:

    (1)将apache 服务器的端口号设定为1080;

    (2)设定用户网页目录为userdoc;  

    (3)设定apache 服务器的网页根目录:/home/htdocs;  

    (4)在此apache 服务器上设定一个目录/home/htdocs/inside,且此目录只允许IP 地 址为192.168.1.5 的主机访问;  

    (5)定义apache 服务器以独立进程的方式运行

     

    98,列出你常用的10个linux命令

    答案:  cd 、ls 、pwd、du 、free、less、mkdir、touch、vim 、useradd

     

    99,linux下面有关查找的命令有哪些

    答案:  grep  find  which

     

    100,linux下面压缩的命令有哪些

    答案: tar  gzip  bzip2  zip air

     

    101,Linux下格式化/dev/sdc1为ext3文件系统,并挂载到/tmp下。

    答案: mkfs.ext3   /dev/sdc1

           Mount   /dev/sc1  /tpm

     

    102,在LINUX系统下,要删除某一个目录下的所有目录,用什么命令来执行

    答案: rm -rf  目录/*

     

    103,Linux中权限最大的帐户是什么

    答案: root  

     

    104,在linux系统中如何重新启动网络服务

    答案: /etc/init.d/network   restart

        service  network   restart

     

    105,在VI编辑器中,末行模式下保存修改并退出的命令是什么

    答案:  x  、 wq

     

    106,说明下列Raid技术至少需要几块树盘

    答案:

    Raid 0 2块

    Raid 1 2块

    Raid 5 3块

    Raid 0+1 4块

    Raid 1+0 4块

     

    ---------------------------------------------------------------------------------------------------

     

    Linux运维工程师面试题第一套

     

    1)Linux启动大致过程?

    加载BIOS–>读取MBR–>Boot Loader–>加载内核–>用户层init依据inittab文件来设定系统运行的等级(一般3或者5,3是多用户命令行,5是界面)–>init进程执行rc.syninit–>启动内核模块–>执行不同级别运行的脚本程序–>执行/etc/rc.d/rc.local(本地运行服务)–>执行/bin/login,就可以登录了。

     

    【评析】基本看过《鸟哥私房菜》的目录就能知道,这是第五章管理员的第一个内容。这道题可以扩展一下:init系统运行等级一共有几种,每一种都是什么?

     

    0:关机,只要是0就不能开机   

    1:单用户模式,不能被远程登陆

    2:多用户不能上网模式    

    3:多用户可以上网模式    

    4:未使用   

    5:有图形的linux  

    6:重启,只要是6就会不断的重启,子子孙孙无穷匮焉的重启

     

    2)Linux系统是由那些部分组成?

    Linux系统内核,shell,文件系统和应用程序四部分组成。

     

    3)apache有几种工作模式,分别简述两种工作模式及其优缺点?

    apache主要有两种工作模式:prefork(apache的默认安装模式)和worker(可以在编译的时候添加--with-mpm=worker选项)

    prefork的特点是:(预派生)

    1.这种模式可以不必在请求到来时再产生新的进程,从而减小了系统开销

    2.可以防止意外的内存泄漏

    3.在服务器负载下降的时候会自动减少子进程数

    worker的特点是:支持混合的多线程多进程的多路处理模块

    如果对于一个高流量的HTTP服务器,worker MPM是一个比较好的选择,因为worker MPM占用的内存要比prefork要小。

    【评析】我没有怎么深入的接触apache,我是半路出家,接触的是nignx,于是这道题就那么回事吧。

     

    4)LVS三种模式的工作过程?

    NAT (Network Address Translation)模式。LB收到用户请求包后,LB将请求包中虚拟服务器的IP地址转换为某个选定RS的IP地址,转发给RS;RS将应答包发给 LB,LB将应答包中RS的IP转为虚拟服务器的IP地址,回送给用户。

    IP隧道 (IP Tunneling)模式。LB收到用户请求包后,根据IP隧道协议封装该包,然后传给某个选定的RS;RS解出请求信息,直接将应答内容传给用户。此时要求RS和LB都要支持IP隧道协议。

    DR(Direct Routing)模式。LB收到请求包后,将请求包中目标MAC地址转换为某个选定RS的MAC地址后将包转发出去,RS收到请求包后 ,可直接将应答内容传给用户。此时要求LB和所有RS都必须在一个物理段内,且LB与RS群共享一个虚拟IP。

    【评析】LVS就是Linux Virtual Server,linux虚拟服务器,这道题要是不明白就记下来,详细内容可以看看http://www.it165.net/admin/html/201401/2248.html  和 http://edu.51cto.com/course/course_id-5787.html?edu_recommend_adid=99

     

    5)列出linux常见打包工具并写相应解压缩参数(至少三种)?

    这个没啥说的,tar命令就是打包工具,对应的解压缩参数 tar -cvf、 tar -zcvf、 tar -jcvf是对应拆包解压什么文件的要对应记住,不要记混。

     

    6)一个EXT3的文件分区,当用touch新建文件时报错,错误信息是磁盘已满,但是使用df -H查看分区信息时只使用了50%,请分析具体原因?

    答:两种情况,一种是磁盘配额问题,另外一种就是EXT3文件系统的设计不适合很多小文件跟大文件的一种文件格式,出现很多小文件时,容易导致inode耗尽了。

     

    7)请使用Linux系统命令统计出establish状态的连接数有多少?

    netstat -an |grep ESTABLISHED |wc -l

    【评析】netstat命令-a参数是“显示所有链接”(all),-n是不要域名解析,即都是以数字IP的显示。这俩是高频参数。

    这里要用大写的ESTABLISHED,因为小写的established显示出来的东西是不对的,可以自己动手试试,所以这里的大小写是一个隐藏点。

    然后再用wc -l来统计数。如果这道题要再多补充“查80端口的establish”,那么就是netstat -an|grep 80 |grep ESTABLISHED |wc -l

    补充一句,现实生产的时候,如果服务器维持的链接是成千上万的话,少用netstat,多用ss。不过ss命令面试的时候考的不多,有个大概了解即可。

     

    8)统计出一台web server上的各个状态(ESTABLISHED/SYN_SENT/SYN_RECV等)的个数?

    netstat -antl|grep ESTABLISTHED|wc -l

    netstat -antl|grep SYN_SENT|wc -l

    netstat -antl|grep SYN_RECV|wc -l

    【评析】这道题跟上一道题的相似度很高,netstat命令的-t参数是查询tcp协议的链接,-l参数是查询listen状态下的链接。netstat -an的话会出现大概三个部分的内容,一部分是tcp协议内容,一部分是udp协议的内容,还有一部分是unix socket方面的链接,Active UNIX domain sockets (servers and established)。unix那部分内容很多,如果用了-t /-u的参数,那么后面的unix内容就会不显示。

     

    9)查找/usr/local/apache/logs目录最后修改时间大于30天的文件并删除

    find /usr/local/apache/logs -type f -mtime +30 -ok rm {} \;

    【评析】find命令以及相关搭配命令是笔试中的重点,因为在现实中运用的情况最多,所以必考必考必考!!!

    使用mtime +30来描述“修改时间大于30天”,使用-type -f来描述“文件”,然后使用-ok命令将所有满足的文件都执行下一步操作。这里是删除文件,所以比较人性化的用ok,删之前询问一下,如果简单暴力就可以直接-exec,直接枪毙掉。用了-exec 的话是不用-f的,多此一举。

     

    10)编写个shell脚本将/usr/local/test 目录下大于100K的文件转移到/tmp目录

    touch AAA.sh

    #!/bin/bash

    find /usr/local/test/ -size +100K -exec mv {} /tmp \;

     

    【评析】-exec and -ok后面的花括号里面的内容就是使用find命令查找出来的文件名。

     

    11)添加一条到192.168.3.0/24的路由,网关为192.168.1.254?

    route add  -net 192.168.3.0 netmask 255.255.255.0 gw 192.168.1.254  或者  route add -net 192.168.3.0/24 gw 192.168.1.254

    【评析】route命令是临时性的增加路由,如果需要永久性的添加路由,方法一,#vim etc/rc.local,在文件里加上 route add -net 192.168.3.0/24 gw 192.168.1.254。方法二,#vim etc/sysconfig/network 在后面加上GATEWAY=192.168.1.254,用这个方法来增加网关。然后# route -n检查一下。

     

     

    12)在每周6的凌晨3:15执行/home/shell/collect.pl,并将标准输出和标准错误输出到/dev/null设备,请写出crontab中的语句?

    15 3 * * 6 sh /home/shell/collect.pl  > /dev/null  2>&1  

    【评析】每一个命令的执行肯定都会有“成功”or“失败”,系统默认1是“stdout标准输出”,2是“stderr标准错误”,&的含义是“等同”,2>&1的意思就是“将错误的信息重定向输出的地方跟1一样,都是去空设备文件”。

     

    13)在11月份内,每天的早上6点到12点中,每隔2小时执行一次/usr/bin/httpd.sh 怎么实现 ?

    crontab -e

    1 6-12/2 * 11 *  bash /usr/bin/httpd.sh

    【评析】crontab、at这种计划任务命令也是面试高频题目,crontab一共有5个*,分别表示“分钟”、“小时”,“日期”、“月份”、“星期几”。基本的结构要明白,而且“当大数有条件,小数任意”的情况下,小数不要用*,用0or 1,如果这道题写成“* 6-12/2 * 11 * bash /usr/bin/httpd.sh”,你的apache会很爽,它会在满足条件的情况下每一分钟都启动一下。

     

    14)匹配AAA文本中的key并打印出该行及下面的5行?

    grep -A 5 key AAA

    【评析】-A是查找关键词下面的行,-B是查找关键词上面的行,-C是上下的行,注意这里是grep,而不是find。

     

    15)查询AAA文件里以abc结尾的行?

    grep "abc$" AAA

    【评析】这里不是grep "abc$" | AAA!,这里没有“|”的,要注意。

     

    16)打印出AAA文件第1到第3行?

    head -3 AAA

    【评析】没啥说的,太基础了。用sed -n '1,3p' AAA更稍微的有一点技术含量。但是用sed命令,要注意搭配-n,要是不搭配-n,你可以试试。

     

    17)查询AAA里面空行的所在行号?

    grep -n "^$" AAA

    【评析】同样这是基础中的基础,送分中的送分。但是要注意grep -n和cat -n这两个输出结果的区别。

     

    18)利用sed命令将test.txt中所有的回车替换成空格?

    sed -e "s/\n/ /g" test.txt

    【评析】sed的-e参数是指多重编辑,也就是说可以sed -e ... -e .... -e....一次性完成三个动作。

     

    19)使用ab命令进行100000次请求,同时每秒40次并发的频率访问http://www.123.com/AAA.txt

    ab -n 100000 -c 40 http://www.123.com/AAA.txt

    【评析】ab命令好像是apache自带的,同一个IP地址并发的访问网站的同一个内容其实是一个隐患,但是现在用路由器上网的情况满地走,所以优化网页的内容是码农的责任,但是适当的缩小准许并发范围是运维人员应该掌握的。

     

     

    20)按照以下要求配置一个防火墙规则

    1.对所有地址开放本服务器的80端口、22端口、10~21端口。

    2.其他机器可以用ping命令来探测本服务器的链接情况

    3.其他没有被准许的端口将禁止访问

    iptables -I INPUT -p tcp -dport 80 -j ACCEPT

    iptables -I INPUT -p tcp -dport 22 -j ACCEPT

    iptables -I INPUT -P tcp -dport 10:21 -i ACCEPT

    iptables -I INPUT -p icmp -j ACCEPT

    iptables -I INPUT -j REJECT

    【评析】iptables也是面试考察的一个重点内容。iptables的内容主要包括“四表+五链”,不过具体问道哪四表哪五链的可能性很小,倒是这种结合实际情况直接让写一连串的规则考题蛮常见的。这道题很基础,写iptables有点在CCNP里写acl 控制访问列表的意思。

     

     

    Linux运维工程师面试题第二套

    python

    1、python是强类型还是弱类型的语言?

    强类型

    【评析】这种问题其实面试出来很没意思,因为太过理论,而且业界对于这个东西的定义没有一个统一的说法。所以这个题问出来挺无语的。记住,目前阳光面的说法:python是动态强类型语言。其中动态静态是针对变量的绑定方式,静态是指在编译的时候绑定变量,而动态是指在运行的时候可以绑定变量。

    强弱类型是指变量的类型一旦一个变量被指定了某个数据类型,如果不经过强制转换,那么它就永远是这个数据类型了。而弱类型语言,一个数字类型的变量即可以是字符串也可以是数字类型,可以容忍隐式类型转换。 python是一个比较严谨的语言,所以它是强类型语言,而不是弱类型语言。

    弱类型语言的话,“1”+2=12,而强类型的话,“1”+2=“大哥,你输入的语法有毛病,你知道不?”

    补充一下,perl和php是弱类型动态语言,c和c++是弱类型静态语言。

     

    2、python的动态性体现在哪?

    动态性体现在:python在运行的时候可以改变原来的函数定义,也可以引进新的代码和对象。

    【评析】首先C和C++不是动态语言。然后,python是可以动态的给实例绑定属性,比如

    class undead:    #先class一个“不死族”

    def __init_(self,name=None,attitude=None):  

     #设定一个类,这个类就是不死族的类.init是初始属性、默认属性

    name=name               #这里设定名字是名字,态度是态度

    attitude=attitude

    P=undead("食尸鬼","hostile")      #将类实例化,食尸鬼是不死族的一员,他的态度是敌对的

     

    但是这个时候已知设定了name和attitude这两个属性,但是我们可以后补新的属性。

    P.attack="爪击"      #设定食尸鬼的攻击方式

    然后我们就可以访问attack这个属性了,虽然它并没有在最原始的时候被设定。

    P.attack回车一下就可以看到结果。这就是可以动态的补充变量的属性,即一次没有整明白,可以后续补齐。

    在实际生产的时候注意一下,在上面的例子里P.name回车的结果和print (P.name)的结果是有那么一点不同的,可以自己动手试试。

     

    3、python的namespace:四种;len()等函数的命名空间

    【评析】命名空间就是名字和对象的映射。也就是可以把一个namespace理解为一个字典,实际上很多当前的Python实现namespace就是用的字典。那么哪些可以是一个namespace呢,比如Python的built-in names(包括内置函数,内置常量,内置类型);一个模块的global names(这个模块定义的函数,类,变量);一个函数的所有local names;还有一个类对象的所有属性(数据成员,成员函数)都组成一个命名空间。

    len()等函数的命名空间这玩意自己查一下就好。

     

    4、range和xrange的区别

    【评析】我找的这个面试题挺新的,2015年10月份左右的试题,但是不得不说搞python就是这一点不好:版本之间不兼容。3.5的版本里xrange已经被枪毙了,range的功能就是xrange。所以在面试的时候大家要注意python2.7和3.5的差别,一旦面试官问你没听过的语句或者是命令,第一反应别说不知道,而是要说“这丫是2.7的吧”。

    继续说,在python 2.7版本里:xrange能用就多用,这玩意比range更好,因为在生成一个大数字序列的时候,xrange的性能更优秀。虽然他俩在for in语句里的输出效果是一样的,但是主要区别是xrange会返回一个整体,这个比较类似于人类的思维,而range返回的是list。比如:

    a=range(10)

    type a 回车的结果是“list”,print a回车的结果是一个list,(1,2,3。。。9,10)。

    a=xrange(10)

    type (a)回车的结果是"xrange",print(a)回车的结果是一个xrange(10)

    而且xrange的效率比range更快,用timeit一下效果更加明显,本机是3.5,range就是xrange,使用timeit.timeit('for i in range(100000000):pass',number=1),看一下查一亿个数用xrange消耗时间仅仅是5秒左右。如果在2.7的环境下,用真实的range试一下上面的命令,估计要20多分钟。

     

    5、于是问怎么实现迭代器,然后又问了生成器,yield语句

    迭代器是一种访问集合元素的方式,从第一个元素开始访问直至到最后一个元素访问完毕,迭代器的访问只能前进不能后退。迭代器主要用于数学里面不断地“后项加前项”的场合里。

    定义__init__()对象就可以使用迭代器访问。

    带有yield的函数在python里就被叫做生成器,或者(n for n in aaa if n >0)这种类型的列表生成式也是生成器。它准许停止函数并且立即返回结果。

    【评析】这里又是一个python 2.7与python 3.5的不同,py2.7里是可以调用.next函数的,但是在py3.5里调用的是next()函数,举个例子,在py2.7里:

    AAA="秦时明月汉时关"      

    AAA.next  回车的话,会把上面的诗句每个字都显示一遍

    也可以next(AAA),效果同样。但是在python 3.5里只能使用next(AAA),用.next的话,会报错。

    而且在实际生产中,宁可有大量可迭代的简单参数,也不要有一个超大量的最后返回一个值的函数。

     

    6、将list的中的一万条字符串合成一条字符串的方法

    可以使用string里的join函数,举个例子

    AAA=["zabbix","ngnix","python","Apache","nocchi"]

    BBB="".join(AAA)

    print (BBB)

    【评析】刚才的例子显示出来的结果是无缝连接AAA里的元素。如果BBB="¥¥¥".join(AAA),这时候再print一下,效果就是"zabbix¥¥¥ngnix¥¥¥python¥¥¥Apache¥¥¥nocchi"

     

    7、python的三目运算符有吗? 怎么用一行代码实现三目运算?

    三目运算符是c的东西,python里是没有的,但是可以用判断语句来模拟达到这个效果。

    【评析】and前后如果有一个值是假,那么返回第一个假值,如果都是真,那么返回最后一个真值。or只要接一个真值,就返回真值,否则返回最后一个假值。

     

    result = XX if True/False else result = YY   当True的时候是XX,如果是False的时候是YY。

     

    -------------------------------------------------------------------------------------------

    linux

    1、top和ps在进程占有资源率的统计方式有什么不同?

    ps是显示在执行ps这个命令时刻所有进程的情况,而top是动态的监控进程的情况(windows的任务管理器)。

     

    top显示系统总的统计信息,比如时间,CPU情况,内存状态和分区信息等等。ps没有这么个功能。

    【评析】ps -ef这个是一个比较常见的搭配方式,-e是“所有进程”,-f是文件之间的关系;ps -aux也是很常用的,意思是“显示包含其他使用者的进程”。ps命令也可以搭配 -more和管道符使用,也可以搭配输出重定向。

    top -n 2指的是更新两次之后就停;top -d 3指的是更新周期是三秒;top -p 574 指的是显示pid为574的进程。top状态下按b是显示高亮。

     

    2、谈谈/proc目录

    Linux 内核提供了一种通过 /proc 文件系统,在运行时访问内核内部数据结构、改变内核设置的机制。proc文件系统是一个伪文件系统,它只存在内存当中,而不占用外存空间。它以文件系统的方式为访问系统内核数据的操作提供接口。

    【评析】更多信息在http://blog.csdn.net/zdwzzu2006/article/details/7747977

     

    3、/proc存在哪里?

    上面已经说了,存在内存里。

     

    4、谈谈页表,内存管理,TLB

    【评析】这道题蛮难的,几句话很难说明白,估计面试官主要想看看你的语言组织能力和沟通能力。答案的话,可以看一下:http://blog.chinaunix.net/uid-26009500-id-3089718.html

     

    5、inode存储了哪些东西?目录名,文件名存在哪里?

    inode存储了文件大小、user id、group id、文件的读写执行权限、软连接硬链接被引用的次数、时间戳、block的位置。唯独没有文件名!!!

     

    目录名、文件名存在“目录项”里。

    【评析】ls -i这个是显示inode号码的查询方法,我个人比较喜欢用ll -hi这个命令。

    stat这个可以查询inode信息,使用方法stat AAA 即可。

    这道题是可以扩展的,“如果出现了系统使用df-h发现/data分区有空余内存,但是却无法建立新文件,这是什么原因,如何解决?”

    答:这个基本就是inode号码已经用完了,所以不能建立新文件。删除掉/ data/cache/目录中的部分文件来释放一部分/data分区的inode,或者把其他分区的inode引进到/data 分区里,操作如下:

    ln -s /AAA/cache/ /data/cache         #这样就达到了使用AAA分区的inode为data分区所用的效果

     

     

    Linux运维工程师面试题第三套

    1、linux如何挂在windows下的共享目录?

    mount -t cifs -o username=windows登陆账号,password="windows账号对应的密码"//16.187.190.50/test /mnt/linux目标文件夹

    或者  muout.cifs  //本机IP地址/test /mut/linux目标文件夹 -o username="windows登陆账号",password="windows账号对应的密码"

    【评析】这套题其实是蛮有难度,从第一题就能看出来,有点下马威的意思。挂载本身不难,但是挂载到windows共享目录在实际中应用到场合不多,所以这道题有条件可以自己试试,没条件就背下来。注意空格,注意逗号。

     

    2、查看http的并发请求数与其TCP连接状态

    netstat -n | awk '/^tcp/ {++b[$NF]} END {for(a in b) print a, b[a]}'

     

    3、用tcpdump嗅探80端口的访问看看谁最高

    tcpdump -i eth0 -tnn dst port 80 -c 1000 | awk -F"." '{print $1"."$2"."$3"."$4}' | sort | uniq -c | sort -nr |head -10

     

    4、查看当前系统每个IP的连接数

    netstat -n | awk '/^tcp/ {print $5}'| awk -F: '{print $1}' | sort | uniq -c | sort -rn

     

    5、shell下32位随机密码生成并且保存到/mima.txt文件里

    cat /dev/urandom|head -1|md5sum|head -c 32 >/mima.txt

     

    【评析】/dev/urandom这个文件可以尝试cat一下,里面的东西我是看不懂,即使后面加上head -1我依旧看不懂,但是加上md5sum我就能看懂了。其实第一个head后面-1也行,-2也行,-100也行,只要别是太大的数字都可以。head -c 32的意思就是从头到第32个字节,如果是head -c 100就是从头到第100个字节,也是“100位密码”的意思

    /dev/urandom这个东西要比/dev/random好用,因为后者会有堵塞的问题,前者一样安全而且速度还很快。

     

    6、统计出apache的access.log中访问量最多的5个IP

    cat access_log | awk  '{print $1}' | sort | uniq -c | sort -n -r | head -5

     

    7、CentOS查看/监测网卡流量的命令

    watch more /proc/net/dev

     

    【评析】现在有的面试官自觉不自觉的就把“网络工程师”的任务跟“运维工程师”的任务混为一谈,如果面试官顺便问cisco机器如何监察网络流量,步骤如下:

    执行命令:configure terminal 回车进入全局配置模式;

    执行命令:interface fastEthernet 0/1 回车进入端口0/1;

    执行命令:ip accounting 回车;

    exit:退出全局配置模式;

    执行:show ip accouting , 回车就可以查看了。

     

    8、ps aux 中的VSZ代表什么意思?RSS代表什么意思?

    VSZ:虚拟内存集,进程所占用的虚拟内存的大小

    RSS:实际内存集,进程所占用的实际内存的大小

     

    9、符号链接与硬链接的区别

    硬链接是复制,享用同一个inode,不能跨分区,不能连目录,a变b也变,但是a删b不删。

    符号链接就是-s,不享用同一个inode,可以跨分区可以连目录,等于“快捷方式”。

     

    10、保存当前磁盘分区的分区表

     

    11、如何在文本里面进行复制、粘贴,删除行,删除全部,按行查找和按字母查找。

    在vim的命令状态下,先用:set nu显示每一行对应的行号,然后使用"5G"这种格式对应到第五行,若要删除该行就是dd;如果复制4行,那就是“4yy”,然后再需要复制的地方按p。如果需要在1~20行里把“AAA”替换成“BBB”那么命令就是:/1,20s/AAA/BBB/gc

    【评析】如果遇到的是比较有板有眼的块型文档,可以使用awk命令直接切块,也可以在vim状态下使用ctrl+v切块,然后y一下确定所切块的范围,最后在需要粘贴的地方p一下。

     

    12、手动安装grub

    grub-install /dev/sda/

     

    13、检测并修复/dev/hda5

    e2fsck -p /dev/hda5

    【评析】如果要求是“检查 /dev/hda5 是否正常,如果有异常便自动修复,并且设定若有问答,均回答[是] ”,那么语句就是e2fsck -a -y /dev/hda5

     

    14、在1-39内取随机数

    echo $[$RANDOM%39]

     

    【评析】echo $RANDOM就是随机在0~32767出数。这个知识点和上面那个随机出32位密码的还是蛮常考的。

     

    15、限制apache每秒新建连接数为1,峰值为3

    iptables -A INPUT -d 172.16.100.1 -p tcp --dport 80 -m limit --limit 1/second  -j ACCEPT

     

    16、FTP的主动模式和被动模式

    主动模式:客户机向服务器的21端口主动发送请求,账户密码验证成功之后,客户机打开一个随机端口(应该是大于1024的口)然后用port命令通知服务器端,“我已经摆好姿势,一个大于1024的口在等待你”,然后服务器端的20口跟客户端的口建立连接,开始数据的传输。在主动模式里,是服务器端主动把数据给客户端。

     

    被动模式:客户机向服务器的21端口主动发送请求,账户密码验证成功之后,服务器端开启一个随机端口,然后用pasv命令告诉给客户端,“我已经摆好姿势,一个随机口在等待你”,然后服务器端也开启一个随机的端口,然后两个随机的端口连接起来用来互通数据。在被动模式里,是客户端把数据从服务器端拉取到自己的电脑内。

    【评析】无论是主动模式还是被动模式都是针对服务器而言的,画个图来解释一下主动模式:

    被动模式的图如下:

     

    补充一下,如果服务器端的iptables只开启了20端口和21端口,其他的全部都reject的话,是无法启动被动模式的,因为没有一个随机端口去用来发送数据,而且被动模式能用就用,主动模式能不用就不用。

    17、显示/etc/inittab中以#开头,且后面跟了一个或者多个空白字符,而后又跟了任意非空白字符的行

    grep '^# \{1,\}[^ ]' /etc/inittab

     

    18、显示/etc/inittab中包含了:一个数字:(即两个冒号中间一个数字)的行

    grep '\:[1-9]\{1\}\:' /etc/inittab

     

    19、统计/data/mysql目录里的普通文件个数

    find /data/mysql/ -type f|wc -l

     

    【评析】是-type f不是type -f,这个细节上别犯错。

     

    20、用33m的颜色打出“天下英雄唯使君与操耳”这句话。

    echo -e "\E[1;33m 天下英雄唯使君与操耳 \E[1;31m"

    或者 echo -e "\E[1;33m" "天下英雄唯使君与操耳" $(tput sgr0)

     

    21、怎么把脚本添加到系统服务里,即用service来调用

     

    #!/bin/bash

    chkconfig: - 90 10

    description: just a test

    echo "Hello,$1"

    mv test /etc/init.d/

    chmod +x /etc/init.d/test

    chkconfig --add test

    service test start        //可以看到Hello,start表示成功

     

    22、写一个脚本,实现批量添加20个用户,用户名为user1-20,密码为user后面跟5个随机字符

    Shell

    #!/bin/bash

    #description: useradd

    for i in `seq -f"%02g" 1 20`;do

        useradd user$i

        echo "user$i-`echo $RANDOM|md5sum|cut -c 1-5`"|passwd –stdinuser$i >/dev/null 2>&1

    done

     

    23、写一个脚本,实现判断192.168.1.0/24网络里,当前在线的IP有哪些

    #!/bin/bash

    for ip in `seq 1 255`

      do

        {

         ping -c 1 192.168.1.$ip > /dev/null 2>&1

         if [ $? -eq 0 ]; then

              echo 192.168.1.$ip UP

         else

              echo 192.168.1.$ip DOWN

         fi

       }&                    #多进程启动

    done

     

     

    24、写一个脚本,判断一个指定的脚本是否是语法错误;如果有错误,则提醒用户键入Q或者q无视错误并退出其它任何键可以通过vim打开这个指定的脚本

    #!/bin/bash

    read -p "please input check script->" file

    if [ -f $file ]; then

        sh -n $file > /dev/null 2>&1

    if [ $? -ne 0 ]; then

        read -p “You input $file syntax error,[Type q to exit or Type vim toedit]” answer

        case $answer in

            q | Q)

                exit 0;;

            *)

                vim $file;;

        esac

     

     

     

    25、数据中有10000个数,其中某个数重复率达到50%以上,求快速找出这数的方法的思路

    10000个数分成两两一组,然后比较不相同去掉,相同的留下,如果一次不能得到结果,再做一次,最终会得到结果。

    【评析】上面这个方法好像很屌,但是说实话,在python里是没有最屌只有更屌!这种找出现次数最多的元素有一个模块可以直接抓取,不用这么费劲。

    假设aaa就是这个多达10000个数的list。(如果数据不是list就转成list。)

    >>> from collections import Counter

    >>> word_counts=Counter(aaa)

    >>> top_one=word_counts.most_common(1)

    >>> print(top_one)

     

     

    Linux运维工程师面试题第四套

    Python

    1、假设 AAA=[1,1,1,3,5,2,6,1,7,3,45],请问使用python如何在将list里重复的数字过滤掉?

     

    1 >>>list(set(AAA))

     

    【评析】注意,虽然set(list(AAA))的结果好像也是一样的,但是注意set是{},list是[]。而且如果AAA里是中括号套中括号的话,那么不可以使用set(list()),因为没法比。不是哈希。

     

    2、简述一下list和tuple的不同

    list是动态的,设定完了可以删减元素,而tuple是静态的,不能删减元素。

    【评析】tuple的调用速度更快,如果是一个需要反复调用的数组,用tuple效果更好。

    tuple不能索引也不能删减元素,但是其实是可以增加元素的,举个例子:

    123 >>>AAA=(1,2,4,5)

    >>>AAA=AAA[:2]+(3,)+AAA[2:]

    >>>print(AAA)              #看看结果。

     

    3、简述一下search()和match()的区别

    match()函数只检测RE是不是在string的开始位置匹配,search()会扫描整个string查找匹配, 也就是说match()只有在0位置匹配成功的话才有返回,如果不是开始位置匹配成功的话,match()就返回none

     

    4、如何在生成一个随机数?

    12 >>>import random

    >>>random.random()

     

    【评析】这样会生成一个在0~1之间的浮点数。如果要生成一个1~10的整数,那么就是print(random,randint(1,10))。

    如果要是在固定的几个元素中随机抽取一个值,比如aaa=["林志玲","贾静雯","刘涛","关咏荷","高圆圆"],要从这几个女性中随机抽取一个值,同样先import random,然后random.choice(aaa)。

     

     

    5、假设 AAA=["梅西","内马尔","苏亚雷斯","皮克","布斯克茨","伊涅斯塔"],BBB=["皮克","德赫亚","拉莫斯","伊涅斯塔","法布雷加斯","布斯克茨"],如何求出两个list之间的交集和差集?

    交集:CCC=[val for val in AAA if val in BBB]

    差集:DDD=[val for val in AAA if val not in BBB]

    【评析】DDD这个差集是AAA这个list里有但是BBB里没有的,如果要显示出BBB有而AAA没有的元素,那么就调换一下 DDD=[val for val in BBB if val not in AAA]

    本题里AAA和BBB都是list,所以要用“列表生成式”;如果这里AAA和BBB都是set,即AAA={"梅西","内马尔","苏亚雷斯","皮克","布斯克茨","伊涅斯塔"},BBB={"皮克","德赫亚","拉莫斯","伊涅斯塔","法布雷加斯","布斯克茨"},那么这样求交集就是AAA&BBB,而差集就是AAA|BBB。

     

    6、反转由单词和不定个数空格组成的字符串,要求单词中的字母顺序不变。如:"I love    this      game!"反转成“game!      this    love I”。

    1234 >>> import re

    >>> AAA = "I love    this      game!"

    >>> BBB= ''.join(re.split(r'(\s+)',AAA)[::-1])

    >>> print(BBB)

     

    【评析】这道题虽然寥寥几个字,但是真心有难度。

     

    7、deepcopy和copy的区别?

    copy:只拷贝父对象,不去深入挖掘里面的子对象

    deepcopy:父对象子对象都拷贝,有点坚守原样的意思。

    【评析】

    1234567 >>>import copy

    >>>a=[1,2,3,4,["a","b"]]

    >>>b=a    #与a同进共退

    >>>c=copy.copy(a)    #浅拷贝

    >>>d=copy.deepcopy(a)    #深拷贝

    >>>a.append(5)

    >>>a[4].append("c")    # 此时分别输出一下a,b,c,d看一下结果。

     

    Mysql

    1、MySQL中myisam与innodb的区别,至少5点

    【评析】将Mysql常见的存储引擎的特点归纳表格如下

     

    2、varchar与char的区别;varchar(50)中50的涵义;int(20)中20的涵义;

    char是定长变量,varchar是变长变量。 varchar(50)表示这一行的变量最大的存储字节是50个字节,int(20)同理。

    【评析】假设有一行是name char(8),如果有一个数据是叫 AAA,那么它仅仅只有三个字节被存储进去,但是依旧存储了8个字节,多余的5个字节空着也就空着了。而是name varchar(8),同样是AAA,由于是变长,所以只保存了3个字节,剩下5个字节是弹性的,有就用,没有就不用。

    在读取方面,char的读取速度要比varchar快,也就是常说的“用读取换容量”,但是还是多用varchar,当数据库内容成万上亿的时候,节省的容量是非常非常可观的。

    3、问了下MySQL数据库cpu飙升到500%的话他怎么处理?

    4、explain出来的各种item的意义;profile的意义以及使用场景;explain中的索引问题。

    5、备份计划,mysqldump以及xtranbackup的实现原理;备份恢复时间;备份恢复失败如何处理。

    mysqldump是采用sql级别的备份机制,将数据表导成sql脚本文件,在不用的mysql版本之间升级时相对比较合适。

    xtranbackup是innodb的hotbackup工具,xtrbackup在启动的时候会复制所有的数据文件,同时会启动一个后台进程,用于监视事务日志,并且从事务日志复制最新的修改。所以xtrbackup在启动的开始,就不懂的将事务日志的每个数据文件的修改都记录下来。

    mysqldump的备份和恢复时间都很慢,任何数据的更新和变化都会被挂起。

    xtrabackup的恢复时间比mysqldump快一点,但是会锁表。

    备份恢复失败的话,其实原因很多,主要可能就是参数设置的不对,检查一下参数。

     

    【评析】使用mysqldump备份数据表的命令,在shell下执行:

    mysqldump -u用户名 -p密码(可以直接-p) -h主机名 --databases 数据库名 > 要备份的文件路径

    mysqldump -u用户名 -p密码 -h主机名 --all-databases >要备份的文件路径

    mysqldump -u用户名 -p密码 -h主机名 --no-data 数据库名 >要备份的文件路径

    这里并不全,另写文章专门补充。

     

    6、MySQL中InnoDB引擎的行锁是通过加在什么上完成(或称实现)的?为什么是这样子的?

    InnoDB的行锁是通过加在索引上实现的,为什么这么设计,我也不知道,去问mysql的设计公司。

     

     

    Linux运维工程师面试题第五套

    1、编写个shell脚本将当前目录下大于10K的文件转移到/tmp目录下。

    1234567891011 #Author:Name

    #E-mail:E-mail Address

    #Description:Move some files        #写程序的时候加上姓名,联系方式和描述是一个好习惯。

    #!/bin/bash

    ls -l|awk '$5>10240 {print $9}' >name.txt    #先把大于10K的文件名都保存到name.txt的文件

    for filename in $(cat name.txt)    #for循环,注意$()

        do

            mv $filename /tmp

            echo $filename "is ok."

        done

    ls /tmp

     

    【评析】第一套里的第十题跟这道题是一样的,bash是可以使用find语句的,那样写比较省事。而且要注意像答案那么写的话,文件夹也是有可能被选中,但是不用担心,文件夹不会被mv,会提示“略过目录”。

    2、编写shell脚本获取本机的网络地址。

    12345678 #Auther:ChrisChan

    #E-mail:chenx1242@163.com

    #Description:Check IP address and Netmask

    #!/bin/bash

    IP=$( ifconfig eth0|grep inet|head -1|cut -d : -f 2|sed 's/Bcast//g' )

    echo "这台机器的IP地址是"$IP

    NETMASK=$( ifconfig eth0|grep inet|head -1|cut -d : -f 3|sed 's/Mask//g' )

    echo "这台机器的网关是"$NETMASK

     

    【评析】一条命令,用三个方法去不断的缩小范围,直到最后确定那几个数字。

     

    3、用Shell编程,判断一文件是不是字符设备文件,如果是将其拷贝到 /dev 目录下。

     

    123456789101112 #Auther:ChrisChan

    #E-mail:chenx1242@163.com

    #Description:Jurde a file is a c-file or not

    #!/bin/bash

    read -t 10 -p "请输入一个文件名:" Fname

    if [ -c $Fname ]

        then

        cp $Fname /dev

       else

           echo "WRONG!"

           exit 88

    fi

     

     

     

    【评析】给一个变量赋值有两种方法,一种就是上面列出的read -p的形式,还有一种是这样的

     

    4.请为下列shell程序添加注释,并说明程序的功能和调用方法:

    1234567891011121314151617181920212223 #!/bin/sh    #这是一个bash语言

    # /etc/rc.d/rc.httpd    #启动Apache

    # Start/stop/restart the Apache web server.    #启动/停止/重启Apache

    # To make Apache start automatically at boot, make thisfile executable: chmod 755 /etc/rc.d/rc.httpd    #若要apache开机自启动,就要让rc.httpd这个文件有755

    case "$1" in

    'start')  #若第一个变量是start  

    /usr/sbin/apachectl start ;;    #apache就启动   

    'stop')    #若第一个变量是stop  

    /usr/sbin/apachectl stop ;;    #apache就停止   

    'restart')    #若第一个变量是restart    

    /usr/sbin/apachectl restart ;;    #apache就重启  

    *)    #若第一个变量不是上面的任意一个

    echo "usage $0 start|stop|restart" ;;    #提示操作人员    

    esac    #结构结束,这是case的反写

     

    功能就是控制apache程序的,调用方法就是启动/停止/关闭

    5、设计一个shell程序,添加一个新组为class1,然后添加属于这个组的30个用户,用户名的形式为stdxx,其中xx从01到30。

    开头略

    1234567891011121314151617 !#/bin/sh    #解释器是sh

    groupadd class1    #建立一个群组

    i=1

    while [ i -le 30 ]

        do

        if [i -le 9 ]

        then

            Username=std0$i

        else

            Username=std$i

        fi

        Useradd $Username

        mkdir /home/$Username

        chown -R $Username /home/$Username    #-R是改变用户和群组

        chgrp -R class1 /home/$Username

        let i =i+1    #我喜欢用这个叠加,简单粗暴还好用但是要注意格式。

    done

     

    6、编写shell程序,实现自动删除50个账号的功能。账号名为stud1至stud50。

    #开头省略

    1234567 #!/bin/bash

    i=1

    while [ $i -le 50 ]

        do

        userdel -r stud$i    #这里使用stud${i}

        let i=i+1

        done

     

    7.某系统管理员需每天做一定的重复工作,请按照下列要求,编制一个解决方案:

    (1)在下午4 :50删除/abc目录下的全部子目录和全部文件;

    (2)从早8:00~下午6:00每小时读取/xyz目录下x1文件中每行第一个域的全部数据加入到/backup目录下的bak01.txt文件内;

    (3)每逢星期一下午5:50将/data目录下的所有目录和文件归档并压缩为文件:backup.tar.gz;

    (4)在下午5:55将IDE接口的CD-ROM卸载(假设:CD-ROM的设备名为hdc);

    (5)在早晨8:00前开机后启动。

    #crontab -e先

    (1)50 16 * * * rm -rf /abc/*

    (2)1 8-18/1 * * * cut /xyz/x1 -f 1 >>/backup/bak01.txt

    (3)50 17 * * 1 tar zcvf backup.tar.gz /data

    (4)55 17 * * * umount /dev/hdc

    (5)这个需要在root用户登录的前提下操作, 而且这题出的有问题,不知道要启动什么。

    【评析】每个用户都会生成一个自己的crontab文件,这个文件一般位于/var/spool/cron,这个文件里的计划任务是专门针对于root这个用户的,如果使用#crontab -r那就会删除掉当前用户的crontab的文件。

     

    8、有一普通用户想在每周日凌晨零点零分定期备份/user/backup到/tmp目录下,该用户应如何做?

     

    crontab -e

     

    0 0 * * 0 cp /user/backup /tmp

    【评析】五个*里最后一个*的取值范围是0~7,其中0和7都是代表星期天,可以写成sun,/etc/crontab的文档原话是这么写的:day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat

     

    9、设计一个Shell程序,在/userdata目录下建立50个目录,即user1~user50,并设置每个目录的权限,其中其他用户的权限为:读;文件所有者的权限为:读、写、执行;文件所有者所在组的权限为:读、执行。

    123456789 #开头略

    #!/bin/bash  

    i=1

    while [ i -le 50 ]

        do

            mkdir -p -m 764 /userdata/user$i

            echo"第"$i"个目录已经生成,权限是764."

            let i=i+1

        done

     

    【评析】mkdir -p是递归生成目录,再加上-m 就是在生成目录的时候直接赋予权限。

    如果要是使用mkdir下生成一个树形的目录,mkdir -vp BBB/{CCC/,EEE/{FFF/,GGG/},KKK/,III/{OOO/,PPP/}},这样生成了一个树形文件。

    如果只是在/userdata/下生成user1~user50的文件,其实不用那么费劲,#cd /userdata/ && touch user{1..50}即可。

     

    10、设计一个shell程序,在每月第一天备份并压缩/etc目录的所有内容,存放在/root/bak目录里,且文件名为如下形式yymmdd_etc,yy为年,mm为月,dd为日。Shell程序fileback存放在/usr/bin目录下。

    做一个脚本先

     

    #cd /usr/bin

    #vim fileback.sh

    12345 #!/bin/bash

    YY=$( date + %y )

    MM=$( date + %m )

    DD=$( date + %d )    #注意格式,注意格式~

    tar -zcvf /root/bak/$YY$MM$DD /etc/*    #将/etc目录下的所有文件都打包压缩成etc.bak文件

     

     

    Linux运维工程师面试题第六套

    1、有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?

    【思路】设定a是range(1,5)的一个,b和c也是。互不相同且不重复,那就是a不等于b也不等于c,同时b也不等于c。

    >>> for a in range (1,5):

    for b in range (1,5):

    for c in range(1,5):

    if (a!=b)and(b!=c)and(c!=a):

    print (a,b,c)

     

    2、输入某年某月某日,判断这一天是这一年的第几天?

    【思路】YY=int(input("请输入一个年份"))    #硬性语言要求要加上int

        MM=int(input("请输入一个月份"))

        DD=int(input("请输入一个日期"))

        上来先读取三个数字,然后先判断 YY %4==0 还是 !=0,如果是等于0,那么2月份就是29天,不然就是28天。

     

        YY除以4是否有余数作为第一个判断,然后再将每一个月的天数累计相加对应每一个月,比如当YY %4=0的时候,MM=1,天数的起始值是31,MM=2,天数的起始值是60,以此类推,手动把12个月的天数先算出来,然后在加上DD的天数,就能得到总的天数。

     

    3、输入三个整数x,y,z,请把这三个数由小到大输出。

    【思路】列表的功能是可以排列的,.sort()是从小到大排列,.reverse()是从大到小排列。于是乎,先设定一个空列表,然后不断地往里面添加元素,最用.sort()一下即可。

     

    AAA=[]

    a=int(input("sign a number:"))

    AAA.append(a)

    b=int(input("sign the second number:"))

    AAA.append(b)

    c=int(input("sign the third number:"))

    AAA.append(c)

    AAA.sort()

    print(AAA)【注意】这个如果打算用笨招---用if把一种情况一种情况纷纷写出来的话是可以的,但是要注意,print(abc)是会出错误的,因为abc是一个新的变量了。

     

    4、输出9*9乘法口诀表。

    【思路】这个跟第一个题很相似。

    for i in range(10):

      for j in range(10):

        AAA=i*j

        print(str(i)+"乘以"+str(j)+"等于"+str(AAA))这里的难点就是如何把“数字”和“字符串”整合在一起输出。

     

    5、显示当前时间,然后暂停10秒输出下10秒时间。

    【思路】Python time.strftime() 函数是一个挺难记的函数,不过这个就是实用性的考题,不会有哪个公司蛋疼的拿出来当真考试用。

    import time

    AAA=(time.strftime('%Y-%m-%d %H:%M:%S',time.localtime(time.time())))

    time.sleep(10)    # 中间休息10秒

    BBB=(time.strftime('%Y-%m-%d %H:%M:%S',time.localtime(time.time())))

    print(AAA)

    print(BBB)

     

    6、输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。

    【思路】不用傻乎乎的if x in [1,2,3,4,5,6,7,8,9],然后判断是否是数字等等。用.isalpha()来判断是不是字母,用.isspace()来判断是不是空格,用.isdigit()来判断是不是数字。当然这个可以用正则来做,然后len一下就搞定,这里用的方法是.isdigit()。

    AAA=input("请输入一行字符")

    x=0

    y=0

    z=0

    for i in AAA:

        if i.isalpha():

        x=x+1

        if i.isspace():

        y=y+1

        if i.isdigit():

        z=z+1

        print("字母的个数是"+str(x))

        print("空格的个数是"+str(y))

        print("数字的个数是"+str(z))

     

    7、一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在第10次落地时,共经过多少米?第10次反弹多高?

    【思路】若H=100,第一次弹起的高度L=H/2,第二次就是L=H/4,第三次L=H/8,分母是2的幂关系,同时共经过的距离就是H不断的加上这些L,这是一个无脑重复性任务,所以可以用for in语句。

    H=100

    L=H/2

    for i in range (2,11):

        H=H+L/2

        L=L/2

        print("第"+str(i)+"次总共经过了"+str(H)+"米")

        print("第"+str(i)+"次的球反弹了"+str(L)+"米")

     

    8 、给一个不多于5位的正整数,要求:一、求它是几位数,二、逆序打印出各位数字。

    【思路】对于列表来说,.sort()是正序,而.reverse()是逆序

     

    I=[]

    i=0

    AAA=input("请输入一个正整数:")

    for x in AAA:

        i=i+1

        I.append(x)

        

    print("这是一个"+str(i)+"位数")    #注意这个print的位置,如果不是顶头的话,会是什么呢?

    I.sort()      

    I.reverse()

    print(I)

     

    9、按相反的顺序输出列表的值。

    【思路】先设定一个空列表,然后一个一个的.append进去,然后使用[::-1]就是相反顺序输出。

    AA=[]

    JJC=input("come:")

    for i in JJC:

        AA.append(i)

    print(AA[::-1])

     

    10、以下函数的输出结果是什么呢?

     

    def hello_world():

        print ('hello world')

     

     

    def three_hellos():

        for i in range(3):

            hello_world()

    if __name__ == '__main__':

        three_hellos()

    【思路】hello_world这个函数的效果就是输出"hello,world",但是在three_hellos套用了这个hello_world这个函数,而且在for in语句里,这里没有i,于是就是重复三次hello_world函数

     

    Linux运维工程师面试题第七套

    1、解释top命令和vmstat命令

    top命令是实时监控当前系统的总体进程状态以及各个程序的进程状态,vmstat可以展现给定时间间隔的服务器的状态值,包括服务器的CPU使用率,内存使用,虚拟内存交换情况,IO读写情况。其中它主要用途是查看虚拟内存情况。

    【评析】vmstat若是直接使用的话,就是现在当前那一刻的服务器状态值,一般来说vmstat都是搭配时间和采集次数使用,比如#vmstat 2 5,就是每两秒采集一下服务器状态,一共采集5下。如果是#vmstat 2,那就是一直在采集。

     

    2、VPN的常见端口是多少?Mysql的缺省端口是多少?ORACLE的缺省端口是多少?NFS的常见端口是多少?FTP的常见端口是多少?SVN服务器的缺省端口是多少?

    LLTP的vpn端口一般是1723;Mysql的缺省端口是3306;ORACLE的缺省端口是1521;NFS的常见端口是123(UDP);FTP的常见端口是21和20端口,SVN服务器的缺省端口是3690。

     

    【评析】这些都要记,比较难记的是vpn和oracle,用一点历史联系法:

    1723年,雍正实行摊丁入亩-----VPN。

    1521年,朱厚照挂了,嘉靖上来了-----oracle。

     

    3、Linux怎么查看用户登录日志

    less /var/log/secure

    【评析】检查系统的各管理员登陆情况的命令有很多,比如last,last -x这个显示的更全一点,或者使用who /var/log/wtmp,但是who /var/log/wtmp没有last看着舒服,/var/log/mtmp是一个乱码文件,用cat命令打开是看不懂的。

     

    4、服务器间怎么实现无密码登录?列举操作步骤。

    假设存在服务器A和服务器B,其中服务器A的服务器名称就是A,对应IP地址是192.168.1.10,同理服务器B的名称是B,其IP地址是192.168.1.20。

     

    1)先在两台机器上#yum install -y openssh-clients

    2)然后在各自服务器上的/etc/sysconfig/network上把HOSTNAME对应填好A和B,再在各自服务器上把/etc/hosts里,把A和B的服务器名和IP地址都添加到文件的末尾,如下

    A 192.168.1.10

    B 192.168.1.20

    3)在A服务器上,#ssh-keygen,然后一路回车。在B服务器也是如此操作。

    4)在A服务器上,#ssh-copy-id -i .ssh/id_rsa.pub root@B,中途输入一次B服务器的root密码。B也是照葫芦画瓢,ssh-copy-id -i .ssh/id_rsa.pub root@A,中途也输入一次A服务器的root密码。

    5)搞定,现在AB之间的互相登陆已经不再需要密码了。

     

    5、简单描述OSI参考模型的七个层次

    物理层:网线、光缆、铜线这些肉眼能看得见的东西

    数据链路层:帧,mac地址

    网络层:数据包,IP地址

    传输层:TCP协议,UDP协议

    会话层:建立会话、维护会话

    表示层:完成数据转换、格式化和文本压缩。

    应用层:具体服务

     

    6、设计一个PV为2千万的网站架构

    http://blog.liuts.com/post/234/

     

    7、简单叙述tcp协议的三次握手过程

    第一次握手:客户机向服务器发送一个syn的数据包,进入SYN_SEND状态;

    第二次握手:服务器收到包,确认之后,向客户机返回一个ack(和一个syn,此时的服务器处于SYN_RECV状态;

    第三次握手:客户端收到了服务器返回的syn+ack之后,再向服务器发送一个ack,这时候服务器和客户机的链接状态是ESTABLISHED

     

    8、如何将本地80端口的请求转发到8080端口,当前主机IP为192.168.2.1。

    iptables -t nat -A PREROUTING -d LOCALIP -p tcp -m tcp --dport 80 -j DNAT --to-destination 192.168.2.1:8080

    iptables -t nat -A POSTROUTING -d 192.168.2.1 -p tcp -m tcp --dport 8080 -j SNAT --to-source LOCALIP:80

     

    9、简述RAID 0,RAID 1,RAID 5,RAID 01,RAID 10的含义

    RAID 0:把两个以上的硬盘整合成一个逻辑的硬盘,每个硬盘自己存储自己的数据,但是合起来就是一个完整的文件。这样带宽加倍,读写能力也加倍,但是要注意,这种方法是没有数据保护功能的,一个硬盘down掉,另外一个也可以“比翼双飞”的扔了。所以,RAID 0这个方法是不可以应用于主要数据的存储区域。

     

    RAID 1:两个硬盘,当一个读写的时候,另一个作为镜像,同时也在读写,也就是说两个盘的内容其实是一模一样的,这样的话数据有个备份。A盘坏了但是B盘还能直接操作,方法比较原始。

    RAID 5:RAID 5跟RAID 0的读取速度差不多,写入速度要慢一点点,并且多了一个奇偶校验信息。数据用块的形式保存到硬盘上,RAID 5不做数据备份,把数据和对应的奇偶校验信息对应存储到硬盘上,用奇偶校验信息来代替“镜像”的功能,这样数据损坏或者丢失,那么可以利用奇偶校验信息修复。

    RAID 0+1:就是RAID 0和RAID 1的合体,多个硬盘互相补充互相做彼此的镜(天)像(使),不但读写更快速,而且更加安全。“0+1”是先0(条带化),然后再1(镜像)。

    RAID 10:这个就是RAID 1+0的意思,先1(镜像),再0(条带化),只要不是两个盘同时坏掉,就可以恢复,而且数据恢复速度要比RAID 0+1恢复的快得多。

     

    10、使用正则表达式匹配电子邮箱或者电子邮件地址

    /^[a-z]([a-z0-9]*[-_]?[a-z0-9]+)*@([a-z0-9]*[-_]?[a-z0-9]+)+[\.][a-z]{2,3}([\.][a-z]{2})?$/i

     

    【评析】

    ①/内容/i 构成一个不区分大小写的正则表达式;^ 匹配开始;$ 匹配结束。

    ②[a-z] E-Mail前缀必需是一个英文字母开头

     

     

    ③([a-z0-9]*[-_]?[a-z0-9]+)* 和_a_2、aaa11、_1_a_2匹配,和a1_、aaff_33a_、a__aa不匹配,如果是空字符,也是匹配的,*表示0个或者多个。

    ④*表示0个或多个前面的字符.

    ⑤[a-z0-9]* 匹配0个或多个英文字母或者数字;[-_]? 匹配0个或1“-”,因为“-”不能连续出现。

    ⑥[a-z0-9]+ 匹配1个或多个英文字母或者数字,因为“-”不能做为结尾

    ⑦@ 必需有个有@

    ⑧([a-z0-9]*[-_]?[a-z0-9]+)+ 见上面([a-z0-9]*[-_]?[a-z0-9]+)*解释,但是不能为空,+表示一个或者为多个。

    ⑨[\.] 将特殊字符(.)当成普通字符;[a-z]{2,3} 匹配2个至3个英文字母,一般为com或者net等。

    ⑩([\.][a-z]{2})? 匹配0个或者1个[\.][a-z]{2}(比如.cn等) 我不知道一般.com.cn最后部份是不是都是两位的,如果不是请修改{2}为{起始字数,结束字数}

     

     

    Linux运维工程师面试题第八套

     

    1、从AAA.log文件中提取“james”或者“curry”,同时不包含“kobe”的行,然后提取“:”分割的第五个字段

    #cat AAA.log|grep -E "james|curry"|grep -v "kobe"|awk -F ":" '{print $5}'

    【评析】搜寻"A or B"的方法就是grep -E "A|B"的方法,-E必须写。不包含某某的方法是grep -v。分割有两个方法,一个是cut,一个是awk。注意cut和awk命令参数的不同。

    上面的命令用cut写是 cat AAA.log|grep -E "james|curry"|grep -v "kobe"|cut -d : -f 2

     

    2、请用shell查询文件AAA.log里面空格开始的所在行号

    #grep -n ^$ AAA.log |cut -d : -f 1

     

    【评析】为什么cat -n AAA.log|grep ^$得不到这个效果呢?思考一下

     

    3、Linux如何在shell环境得知远程计算机的运行时间

    比较有逼格的方法是这样的:

    #cat /proc/uptime| awk -F. '{run_days=$1 / 86400;run_hour=($1 % 86400)/3600;run_minute=($1 % 3600)/60;run_second=$1 % 60;printf("系统 已运行:%d天%d时%d分%d秒",run_days,run_hour,run_minute,run_second)}'

    【评析】其实linux有很多方法可以查看远程计算机的运行时间,#uptime也可以,#top也可以,#w也可以。而且这三种方法直接显示小时,不像/proc/uptime,用秒显示,还要换算一下。

     

    4、如何查看当前Linux系统状态,如cpu,内存,负载,版本

    前三个用top直接就看了,版本用#uname -a

    【评析】如果想了解更多服务器的硬件信息。使用 cat /proc/cpuinfo

     

    5、用一条命令查看目前系统已启动服务所监听的端口

    #netstat -antp|grep LISTEN

     

    【评析】netstat -antl的结果和上面的不一样,#diff -y一下,就发现 -antl会有 ESTABLISHED的项。

     

    6、sed将文件test中第50行中的“haiwao”改为“haiwai”

    #sed -e '50s/haiwao/haiwai/g' test

    【评析】 如果是在vim状态下,需要替换当前行的nba改成NBA,那么就是:s/nba/NBA/gc,如果不加c就是直接替换,加c就是确认一下的意思,c是confirm。若是要替换所有的nba成NBA,语句是:%s/nba/NBA/gc。

     

    7、在每个月的第一天备份并压缩/etc目录下面的所以内容,存放在/root/backup目录下,文件名为yymmdd_etc,并且发邮件通知维护工程师,shell程序filebach存放在/usr/bin目录下

    先写一个filebach.sh

    #vim /usr/bin/filebach.sh    #进入脚本编辑界面

    Author:管理员名称

    E-mail:XXX@163.com    #sh前写好名称和邮件地址是一个好习惯

    #!/bin/bash

    YY=$(date +%y)

    MM=$(date +%m)

    DD=$(date +%d)

    filename=$YY$MM$DD

    tar -zcvf /data/filename 888.log 999.log NBA.txt

    echo "今天的文件已经打包保存完毕,请放心"|mutt -s "主人,OK" XXX@163.com

    echo "程序已运行成功"

    exit 27

     

    :wq保存完毕之后,#crontab -e

    1 0 1 */1 * sh /usr/bin/filebach.sh    #在每个月的第一天0点1分的时候启动计划任务

     

    8、用awk命令在NBA.txt文件里不显示4的倍数行

    #awk 'NR%4' NBA.txt

    【评析】如果说是“显示4的倍数行” #cat -n NBA.txt|awk 'NR%4==0'

    NR表示执行awk命令之后系统读取的数据行数,如果读取多个文件,行数会叠加。

    FNR表示执行awk命令之后系统读取的数据行数,如果读取多个文件,行数不会叠加,每个文件都新起头。

    如果题目没有写明非要用awk的话,可以使用sed命令,#sed 'n;n;n;d' NBA.txt

    假如说“查看NBA.txt文件的前三行”,#awk 'NR<4 {print $0}' NBA.txt

     

    9、在NBA.txt文件里匹配式样“JORDAN”的行之后插入一空行

    #sed 's/JORDAN/JORDAN \n/g' NBA.txt

     

    【评析】sed中的整行更改的参数是c,匹配单个词的更改是g,shell里的替换用的是gc,注意区别。

     

     

    10、只保留Fifa.log文件里重复行中的一行,其他都删除

    #sort Fifa.log|sed '$!N;/\(.*\)\n\1$/!{x;//P;x};h;D' > 新的文件路径

    【评析】这道题比较难,一道题考验了sed几乎全面的知识,而且上面的那个语句的前提就是一定要先 sort,把重复的行放在相邻的位置上。

    删除重复行就比较简单,sort Fifa.log|uniq > 新的文件路径,或者使用 awk '!a[$0]++' NBA.txt 也能达到一样的效果。

     

    11、同一端口可否同时被两个应用监听?

    别说两个,一百个都可以。但是不可以有两个以上的动态进程监听,也就是说,可以一个动态进程+若干个静态进程。

     

    12、假设有如下内容的name.txt和team.txt,然后对应球员和所属球队进行整合

    [root@ChrisChan mysql]# cat name.txt

    1 curry

    2 harden

    3 kobe

    4 durant

     

     

    [root@ChrisChan mysql]# cat team.txt

    4 thunders

    1 warriors

    2 rockets

    3 lakers

    #!/bin/bash

    for ((i=1;i<=4;i=i+1))

            do

                    a=$(grep $i employee.txt)

                    b=$(grep $i team.txt|awk '{printf $2}')

                    echo $a $b

            done

     

     

    Linux运维工程师面试题第九套

     

    本次全部都是mysql的题,非常的基础,enjoy it~

    1、SELECT id,name FROM test1; 和 SELECT id name FROM test1;这两个语句有什么区别?

     

    第一个语句会出现两个列,第二个只有一个列,列的内容是id的内容,但是列的名称是name,也就是说第二句话其实就是"SELECT id AS name FROM test1"。

     

     

     

    2、如果想把test1表格里满足age大于等于30的username都迁移到test2表格里的username列,需要什么命令?

    INSERT test2(username) SELECT username FROM test1 WHERE age >=30;

    【评析】这种方法注意,新表/旧表有更新的时候,旧表/新表不随之更新。因为没有链接,仅仅是一个一次性的复制而已。

     

    3、列举出A表里满足价格(price)大于A表里所有货品平均价格的id,name,age。

    SELECT id,name,age FROM A WHERE > (SELECT AVG(price) FROM A)

    【评析】 其实可以先求出来AVG(price),然后直接大于那么值就好,但是要注意SELECT ,SELECT的结果才是一个数。

    如果需要把平均值四舍五入,并且保留小数点后两位,那就ROUND(AVG(price),2)

     

    4、test1表里有一个叫"country"的列,现在需要做一个test2,专门放这些"country",并且实现这两个表的多表连接。

    1)CREATE一个TABLE叫test2,里面有一列叫id,另一列叫country。

    2)INSERT test2(country) SELECT country FROM test1 GROUP BY country;

    3)UPDATE test1 AS OLD INNER JOIN test2 AS NEW ON test1.country = test2.country

    ->SET old.country = new.id

    【评析】“增删改查”,mysql难就难在这个“查”上。

     

    5、Mysql自增长的关键字

    AUTO_INCREMENT

     

    6、mysql备份实例,自动备份mysql,并删除30天前的备份文件

     

    #!/bin/bash

    #Description:Auto backup mysql

    MYSQLDB=Test1

    MYSQLUSR=Username

    MYSQLPASSWORD=PASSWORD    #定义账号、密码和需要备份的数据库名

    BACKUPDIR=backupDIR=/data/backup/mysql/$(date +%Y-%m-%d)   

    if[ $UID -ne 0 ];then    #UID是USERID的意思,0是ROOT的ID号

        echo This script must use administrator or root user ,please exit!    

    #提示当前账户不是ROOT,需要切换成ROOT用户

        sleep 2  

    exit 0  

    fi  

      

    if[ ! -d $BAKDIR ];then  

    mkdir -p $BAKDIR  

    else  

    echo This is $BAKDIR exists ,please exit ….  

    sleep 2  

    exit  

    fi

     

    /usr/bin/mysqldump -u$MYSQLUSR -p$MYSQLPW -d $MYSQLDB >/data/backup/mysql/`date +%Y-%m-%d`/www_db.sql  

    cd $BAKDIR ; tar -czf  www_mysql_db.tar.gz *.sql  

    cd $BAKDIR ;find  . -name “*.sql” |xargs rm -rf[ $? -eq 0 ]&&echo “This `date +%Y-%m-%d` RESIN BACKUP is SUCCESS”  

    cd /data/backup/mysql/ ;find . -mtime +30 |xargs rm -rf  

     

     

    7、讲述一下cookie和session的区别。

     

    cookie机制采用的是在客户端保持状态的方案,而session机制采用的是在服务器端保持状态的方案。

    cookie不是很安全,别人可以分析存放在本地的cookie并进行cookie欺骗,考虑到安全应当使用session。

    session会在一定时间内保存在服务器上。当访问增多,会比较占用你服务器的性能,考虑到减轻服务器性能方面,应当使用COOKIE。

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

    【评析】cookie如果没有设置生存时间,那么关闭浏览器的瞬间,cookie就会消失,下一次登陆依旧要输入账号密码,cookie默认是存储在硬盘里而不是内存里,如果是设置了生存时间,那么就会保存在内存里,下一次继续使用。

    session有一个session id,要是服务器能查询的到id,就会按这个id号的内容体现数据,如果查询不到就会新建一个id,session id是可以用cookie的形式保存的。

     

    8、讲述一下服务器缓存的原理。

     

     

     

     

    9、如何查看系统资源占用状态。

    top      uptime    vmstat    free   很多命令都可以

     

    10、如果一个网站平时业务不是很多,但是有时候业务会急剧增长,例如淘宝之类电商网站,遇到特价的时候,流量会特别大,遇到这种情况,在尽量低的成本下,应该如何做。

    rsync命令去同步数据,然后dns轮询。

    【评析】sync的远距离版本就是rsync,r在这里是remote的缩写。

    它可以当cp这个功能用,rsync -a /A /B   将B的内容拷贝到A文件夹下。或者rsync main.c machineB:/home/userB,把main.c拷贝到B机器的userB里,他拷贝速度很快,因为他发现有不同的内容就会拷贝,相同的就跳过。

     

    Linux运维工程师笔试题第十套

    1、Nginx是如何实现高并发的?

     

    service nginx start之后,然后输入#ps -ef|grep nginx,会发现Nginx有一个master进程和若干个worker进程,这些worker进程是平等的,都是被master fork过来的。在master里面,先建立需要listen的socket(listenfd),然后再fork出多个worker进程。当用户进入nginx服务的时候,每个worker的listenfd变的可读,并且这些worker会抢一个叫accept_mutex的东西,accept_mutex是互斥的,一个worker得到了,其他的worker就歇菜了。而抢到这个accept_mutex的worker就开始“读取请求--解析请求--处理请求”,数据彻底返回客户端之后(目标网页出现在电脑屏幕上),这个事件就算彻底结束。

     

    nginx用这个方法是底下的worker进程抢注用户的要求,同时搭配“异步非阻塞”的方式,实现高并发量。

     

    【评析】在nginx.conf里第二行就是work_process,有默认是4的,也可以更改成auto,这个值不是越大越好,要可实际服务器CPU的情况而定,一般是CPU有几个,工作进程就有几个。

     

    2、编写一个Nginx的access模块,要求准许192.168.3.29/24的机器访问,准许10.1.20.6/16这个网段的所有机器访问,准许34.26.157.0/24这个网段访问,除此之外的机器不准许访问。

     

    location/{

    access 192.168.3.29/24;

    access 10.1.20.6/16;

    access 34.26.157.0/24;

    deny all;

    }【评析】防火墙是层层深入的,可以从硬件上用acl(访问控制列表)实现,如果没有钱买一个防火墙,那么还可以在linux上设置iptables,如果iptables不设置,还可以在nginx上设置。

     

    nginx本身工作很少,内部的各个模块是实际的参与工作的,模块英文信息:http://nginx.org/en/docs/

     

    3、给favicon.ico和robots.txt设置过期时间; 这里为favicon.ico为99天,robots.txt为7天并不记录404错误日志

     

     

    location ~(favicon.ico) {

        log_not_found off;

        expires 99d;

        break;

    }

    location ~(robots.txt) {

        log_not_found off;

        expires 7d;

        break;

    }

    4、设定某个文件的浏览器缓存过期时间;这里为600秒,并不记录访问日志

     

    location ^~ /html/scripts/loadhead_1.js {

        access_log off;

        expires 600;

        break;

    }

    5、只充许固定ip访问网站,并加上密码,设定账号是james,密码是123456

    printf "james:$(openssl passwd -crypt 123456)\n" >>/usr/local/nginx/conf/passwd

    location \ {

        allow 22.27.164.25; #允许的ipd

        deny all;

        auth_basic “KEY”; #登陆该网页的时候,会有这个“KEY”的提示,提示只能是英文,中文不识别。

        auth_basic_user_file /conf/htpasswd;

    }

     

    6、如果访问服务器的ip地址是203.46.97.124的话,给他展现的主页是/123.html,其他人就展现index.html。

    location / {

            if ($remote_addr = 203.46.97.124 ) {

                rewrite ^.*$ /123.html;

                    }

            root /usr/local/nginx/html;

            index index.html;

            }

     

    Linux运维工程师笔试题第十一套

     

    试题

    【试题1】缺省安装的 nginx + php-fpm 环境,假设用户浏览一个耗时的网页,但是却在服务端渲染页面的中途关闭了浏览器,那么请问服务端的 php 脚本是继续执行还是退出执行?

    【解答】正常情况下,如果客户端client异常退出了,服务端的程序还是会继续执行,直到与IO进行了两次交互操作。服务端发现客户端已经断开连接,这个时候会触发一个user_abort,如果这个没有设置ignore_user_abort,那么这个php-fpm的程序才会被中断。

    拓展阅读:http://www.cnblogs.com/yjf512/p/5362025.html?foxhandler=RssReadRenderProcessHandler

     

    【试题2】首先,Nginx 日志格式中的 $time_local 表示的是什么时间?请求开始的时间?请求结束的时间?其次,当我们从前到后观察日志中的 $time_local 时间时,有时候会发现时间顺序前后错乱的现象,请说明原因。

    【解答】$time_local:在服务器里请求开始写入本地的时间,因为请求发生时间有前有后,所以会时间顺序前后错乱。

     

    【试题3】在Nginx+PHP环境中,Web错误日志里偶尔会出现如下错误信息:「recv() failed (104: Connection reset by peer) while reading response header from upstream」,请分析可能的原因是什么。

    【解答】遇到这种情况,第一解决方法是重启php服务,service php5-fpm restart,但是这个治标不治本,相对治本的方法是把php的pm.max_requests值改大一点,比如500;第二个方法,修改php-fpm的request_terminate_timeout,把值改成=0。

     

    这个情况要看后端的php,要么是链接不上,要么是php服务挂了,要么就是链接超时。

    worker数不够挂掉就会504,worker处理超时就会502。

    拓展阅读:http://serverfault.com/questions/543999/nginx-errors-recv-failed-104-connection-reset-by-peer-while-reading-respon

     

     

    【试题4】已知Nginx和PHP-FPM安装在同一台服务器上,Nginx连接PHP-FPM有两种方式:一种是类似127.0.0.1:9000的TCP socket;另一种是类似/tmp/php-fpm.sock的Unix domain socket。请问如何选择,需要注意什么。

    【解答】Unix domain socket的流程不会走到TCP 那层,直接以文件形式,以stream socket通讯。如果是TCP socket,则需要走到IP层。说的通俗一点,追求可靠性就是tcp(需要占用一个端口,更稳),追求高性能就是Unix Socket(不需要占用端口,更快)。有图有真相:

     

    上面的是tcp/ip模式,每秒钟解决不到140个请求。

     

    这个是socket模式,一秒钟解决5700+个请求,高下立判!

    拓展阅读:https://blog.linuxeye.com/364.html

     

    http://www.cnxct.com/default-configuration-and-performance-of-nginx-phpfpm-and-tcp-socket-or-unix-domain-socket/ (这篇文章强烈推荐,写得特别好!)

     

     

    【试题5】在Nginx中,请说明Rewrite模块里break和last的区别。

    【解答】官方文档的定义如下:

    last:停止执行当前这一轮的ngx_http_rewrite_module指令集,然后查找匹配改变后URI的新location;

    break:停止执行当前这一轮的ngx_http_rewrite_module指令集;

    千言万语举个例子:

    location /test1.txt/ {

     

            rewrite /test1.txt/  /test2.txt break;

     

    }

     

            location ~ test2.txt {

            return 508;

    }

     

     

    使用break会匹配两次URL,如果没有满足项,就会停止匹配下面的location,直接发起请求www.xxx.com/test2.txt,由于不存在文件test2.txt,则会直接显示404。

    使用last的话,会继续搜索下面是否有符合条件(符合重写后的/test2.txt请求)的location,匹配十次,如果十次没有得到的结果,那么就跟break一样了。返回上面的例子,/test2.txt刚好与面location的条件对应上了,进入花括号{}里面的代码执行,这里会返回508。(这里的508是我自己随便设定的)

     

    拓展阅读:http://nigelzeng.iteye.com/blog/1731317

     

    【试题6】有时候nginx运行很正常,但是会发现错误日志中依旧有报错connect() failed (111: Connection refused) while connecting to upstream.请问肿么办?

    【解答】一般情况下我们的upstream都是fastcgi://127.0.0.1:9000. 造成这个问题的原因大致有两个:1)php-fpm没有运行:执行#netstat -ant | grep 9000命令查看是否启动了php-fpm,如果没有则启动你的php-fpm即可,2)php-fpm队列满了:php-fpm.conf配置文件pm.max_children修改大一点,重启php-fpm并观察日志情况。

     

     

    【试题7】简单描述一下nginx里root和alias的区别。

    【解答】root与alias主要区别在于nginx如何解释location后面的uri,这会使两者分别以不同的方式将请求映射到服务器文件上。root是全路径定位,alias是当前路径定位。

    举个例子

    location ~ ^/weblogs/

    {

     root /data/nginx/html;

     autoindex on;

    }

    这里匹配是分大小以/weblogs的路径,当在浏览器地址栏申请/weblogs/a/b/c/123.txt的时候,服务器查找的是/data/nginx/html/weblogs/a/b/c/123.txt文件,并把它重现给web服务器,这就是全路径定位,即完整的URI映射。

    location ^~ /binapp/ {  

     internal;  

     alias /data/nginx/conf/html/;

    }

    这时候浏览器地址栏申请/binapp/a/456.jpg的时候,服务器查找的是/data/nginx/conf/html/a/456.jpg,看到了吗!没有location后面的直连的/binapp/了,也就是说alias会把location后面配置的路径丢弃掉,把当前匹配到的目录指向到指定的目录。

     

    注意!使用alias时,目录名后面一定要加"/",否则会找不到文件,而root不一定。

     

     

    Linux运维工程师笔试题第十二套

    本套都是shell的命令,enjoy it~

    1)假设某变量aaa="史蒂芬周星驰",现在只想要输出后面的"周星驰",应该怎么办?

    aaa="史蒂芬周星驰"

    echo ${aaa:3:3}【评析】已知变量总字符数和要切的起始字符数,就可以用这种方法切变量了。这种方法比较常见的应用于变量是长路径的情况下。

     

    2)使用curl获取www.163.net的响应头信息

     

    curl -I http://www.163.net【评析】curl -i 网址除了有网站的响应头信息之外,还有网站的全部内容。如果要获得http status code的内容:curl -sL -w "%{http_code}\\n" www.163.net -o /dev/null。

     

    3)执行历史纪录里的第505条命令

    !505

    【评析】打印历史纪录里最后一次cat的命令是!cat:p,如果是执行历史记录里最后一次cat的命令是!cat。执行之前操作最后一次的命令是!!。

     

    4)已知当前时间是2016年5月16日,想要以年月日的形式输出当前时间后十天的日期。

    date +%y%m%d -d 10day

    【评析】如果是前十天,那就是# date +%y%m%d -d -10day

     

    5)重复的执行"ps -ef",观察实时情况。

    watch ps -ef  (默认时间是2秒一次)

     

    6)显示剩余内存

    free -m |grep cache|awk '/[0-9]/{print $4"MB"}'

     

    7)打开/a/wow.txt,同时要跳到文件末端

    vim + /a/wow.txt

    【评析】如果是要把文章里的tab转换成空格的话,命令是# expand wow.txt wow2.txt。

     

    8)grep的精确查找命令

    grep -w

     

    【评析】grep在默认情况下是包含查找,比如111.txt有单词"james",#grep "me" 111.txt,是可以查到james的,但是要精确查找,只查找me这个单词,那么就要用#grep -w "me" 111.txt。

     

     

    9)扫描203.90.146.0/24网络里所有开放8081端口的ip

    nmap -p 8081 203.90.146/24

    【评析】nmap命令不是linux自带的,需要#yum install -y nmap安装一下。 8081端口什么都不是,仅仅是一个用来测试时候的端口,而tomcat默认是8080端口,这个不要记混。

     

    10)并排显示1.txt和2.txt

    paste 1.txt 2.txt

    【评析】这个方法其实用的非常少,因为排版效果很差,说是并排,其实两段文件都粘乎在一起了,非常不容易分辨,如果想要更好的排版方式,推荐#diff -y 1.txt 2.txt。

     

    11)拆分大体积的tar.gz文件,每个是100MB,然后再合并。

    split -b 100m

    /path/to/large/archive

    /path/to/output/filescat files*>archive

     

    12)获取wow.txt文件的owner

    stat -c %U wow.txt

    【评析】这玩意是不是比cut awk等切来切去的更有逼格?

     

    13)找出文件名结尾有空格的文件

    find . -type f -exec egrep -l "+$" {} \;

     

    14)输入多行文字

    cat >test.txt (ctrl+d保存退出)

     

    【评析】如果想清空一个文件,最无脑的方法就是# >test.txt,或者是#echo /dev/null > test.txt。而用#echo > test.txt的话,其实还是有一个空格行的,这个方法并不太严谨。

     

    15)将/A/B下的当前文件夹(不包括子文件夹)所有.sh文件都转移到/C/D里去,然后把.sh后缀全部改成.log。

    #!/bin/bash

    @written by ChrisChan

    cd /A/B && find ./ -maxdepth 1 -name "*.sh" -exec mv {} /C/D \;

    cd /C/D

    files=$(find ./ -name "*.sh")

    for i in files:

        do

            mv $i ${i%sh}log

        done【评析】更改文件名的后缀最简单的方法就是{变量%要换的内容}换后的内容。但是要注意这里要用for in循环,不然的话,files是那一大串的文件名,改的也只会是最后一个文件的后缀。

     

     

    16)假设name.txt的内容如下,请做一个脚本能够统计所搜索的单词出现的次数。

    [root@ChrisChan mysql]cat name.txt

     

    james

    james

    james

    wade

    wade

    bosh

    curry

    curry

    curry

    curry

     

    #!/bin/bash

    read -p "plwase enter a word: " word

    a=0

    for i in $(cat name.txt)

            do

                    if [ $i == $word ]

                            then

                                    let a=a+1

                    fi

            done

    echo $word出现了$a次。

     

     

     

     

     

    2  选择题:

     

    (以下均为单选题)

    1. cron 后台常驻程序 (daemon) 用于:
      A. 负责文件在网络中的共享
      B. 管理打印子系统
      C. 跟踪管理系统信息和错误
      D. 管理系统日常任务的调度
    2. 在大多数Linux发行版本中,以下哪个属于块设备 (block devices) ?
      A. 串行口
      B. 硬盘
      C. 虚拟终端
      D. 打印机
    3. 下面哪个Linux命令可以一次显示一页内容?
      A. pause
      B. cat
      C. more 
      D. grep
    4. 怎样了解您在当前目录下还有多大空间?
      A. Use df
      B. Use du /
      C. Use du .
      D. Use df .
    5. 怎样更改一个文件的权限设置?
      A. attrib
      B. chmod
      C. change
      D. file
    6. 假如您需要找出 /etc/my.conf 文件属于哪个包 (package) ,您可以执行:
      A. rpm -q /etc/my.conf
      B. rpm -requires /etc/my.conf
      C. rpm -qf /etc/my.conf
      D. rpm -q | grep /etc/my.conf
    7. 假如当前系统是在 level 3 运行,怎样不重启系统就可转换到 level 5 运行?
      A. Set level = 5
      B. telinit 5
      C. run 5
      D. ALT-F7-5
    8. 那个命令用于改变 IDE 硬盘的设置?
      A. hdparam
      B. ideconfig
      C. hdparm
      D. hddparm
    9. 下面哪个命令可以列出定义在以后特定时间运行一次的所有任务?
      A. atq
      B. cron
      C. batch
      D. at
    10. 下面命令的作用是:set PS1="[\u\w\t]\\$" ; export PS1
      A. 改变错误信息提示
      B. 改变命令提示符
      C. 改变一些终端参数
      D. 改变辅助命令提示符
    11. 作为一个管理员,你希望在每一个新用户的目录下放一个文件 .bashrc ,那么你应该在哪个目录下放这个文件,以便于新用户创建主目录时自动将这个文件复制到自己的目录下。
      A. /etc/skel/
      B. /etc/default/
      C. /etc/defaults/
      D. /etc/profile.d/
    12. 在bash中,export命令的作用是:
      A. 在子shell中运行命令
      B. 使在子shell中可以使用命令历史记录
      C. 为其它应用程序设置环境变量
      D. 提供NFS分区给网络中的其它系统使用
    13. 在使用了shadow口令的系统中,/etc/passwd和/etc/shadow两个文件的权限正确的是:
      A. -rw-r----- , -r--------
      B. -rw-r--r-- , -r--r--r--
      C. -rw-r--r-- , -r--------
      D. -rw-r--rw- , -r-----r--

    14.下面哪个参数可以删除一个用户并同时删除用户的主目录?
    A. rmuser -r
    B. deluser -r
    C. userdel -r
    D. usermgr -r

    1. 有一个备份程序mybackup,需要在周一至周五下午1点和晚上8点各运行一次,下面哪条crontab的项可以完成这项工作?
      A. 0 13,20 * * 1,5 mybackup
      B. 0 13,20 * * 1,2,3,4,5 mybackup
      C. * 13,20 * * 1,2,3,4,5 mybackup
      D. 0 13,20 1,5 * *  mybackup
    2. 如何从当前系统中卸载一个已装载的文件系统
      A. umount
      B. dismount
      C. mount -u
      D. 从 /etc/fstab 中删除这个文件系统项
    3. 如果你的umask设置为022,缺省的你创建的文件的权限为:
      A. ----w--w-
      B. -w--w----
      C. r-xr-x---
      D. rw-r--r--
    4. 在一条命令中如何查找一个二进制命令 Xconfigurator 的路径?
      A. apropos Xconfigurator
      B. find Xconfigurator
      C. where Xconfigurator
      D. which Xconfigurator
    5. 哪一条命令用来装载所有在 /etc/fstab 中定义的文件系统?
      A. amount
      B. mount -a
      C. fmount
      D. mount -f
    6. 运行一个脚本,用户不需要什么样的权限?
      A. read
      B. write
      C. execute
      D. browse on the directory
    7. 在Linux中,如何标识接在IDE0上的slave硬盘的第2个扩展分区?
      A. /dev/hdb2
      B. /dev/hd1b2
      C. /dev/hdb6
      D. /dev/hd1b6
    8. 在应用程序起动时,如何设置进程的优先级?
      A. priority
      B. nice
      C. renice
      D. setpri
    9. 在 bash 中, 在一条命令后加入 "1>&2" 意味着:
      A. 标准错误输出重定向到标准输入
      B. 标准输入重定向到标准错误输出
      C. 标准输出重定向到标准错误输出
      D. 标准输出重定向到标准输入
    10. 下面哪条命令可以把f1.txt复制为f2.txt?
      A. cp f1.txt | f2.txt
      B. cat f1.txt | f2.txt
      C. cat f1.txt > f2.txt
      D. copy f1.txt | f2.txt
    11. 显示一个文件最后几行的命令是:
      A. tac
      B. tail
      C. rear
      D. last

    26.如何快速切换到用户John的主目录下?
    A. cd @John
    B. cd #John
    C. cd &John
    D. cd ~John

    27.把一个流中所有字符转换成大写字符,可以使用下面哪个命令?
    A. tr a-z A-Z
    B. tac a-z A-Z
    C. sed /a-z/A-Z
    D. sed --toupper

    28.使用什么命令可以查看Linux的启动信息?
    A. mesg -d
    B. dmesg
    C. cat /etc/mesg
    D. cat /var/mesg

    29.运行级定义在:
    A. in the kernel
    B. in /etc/inittab
    C. in /etc/runlevels
    D. using the rl command

    30.如何装载(mount)上在 /etc/fstab 文件中定义的所有文件系统?
    A. mount -a
    B. mount /mnt/*
    C. mount
    D. mount /etc/fstab

    31.使用ln命令将生成了一个指向文件old的符号链接new,如果你将文件old删除,是否还能够访问文件中的数据?
    A. 不可能再访问
    B. 仍然可以访问
    C. 能否访问取决于文件的所有者
    D. 能否访问取决于文件的权限

    32.xt2fs文件系统中,缺省的为root用户保留多大的空间?
    A. 3%
    B. 5%
    C. 10%
    D. 15%

    33.哪个命令用来显示系统中各个分区中inode的使用情况?
    A. df -i
    B. df -H
    C. free -b
    D. du -a -c /

    34.多数Linux发行版本中,图形方式的运行级定义为?
    A. 1
    B. 2
    C. 3
    D. 5

    35.在系统文档中找到关于print这个单词的所有说明?
    A. man print
    B. which print
    C. locate print
    D. apropos print

    36.man 5 passwd 含义是?
    A. 显示 passwd 命令的使用方法
    B. 显示 passwd 文件的结构
    C. 显示 passwd 命令的说明的前五行
    D. 显示关于passwd的前五处说明文档。

    37.如何在文件中查找显示所有以"*"打头的行?
    A. find \* file
    B. wc -l * < file
    C. grep -n * file
    D. grep ‘^\*’ file

    38.在ps命令中什么参数是用来显示所有用户的进程的?
    A. a
    B. b
    C. u
    D. x

    39.显示二进制文件的命令是?
    A. od
    B. vil
    C. view
    D. binview

    40.如何显示Linux系统中注册的用户数(包含系统用户)?
    A. account -l
    B. nl /etc/passwd |head
    C. wc --users /etc/passwd
    D. wc --lines /etc/passwd

    41.在一行结束位置加上什么符号,表示未结束,下一行继续?
    A. /
    B. \
    C. ;
    D. |

    42.命令 kill 9 的含义是:
    A. kills the process whose PID is 9.
    B. kills all processes belonging to UID 9.
    C. sends SIGKILL to the process whose PID is 9.
    D. sends SIGTERM to the process whose PID IS 9.

    43.如何删除一个非空子目录/tmp?
    A. del /tmp/*
    B. rm -rf /tmp
    C. rm -Ra /tmp/*
    D. rm -rf /tmp/*

    44.使用什么命令可以在今天午夜运行命令 cmd1 ?
    A. at midnight cmd1
    B. cron -at "00:00" cmd1
    C. batch -t "00:00" < cmd1
    D. echo "cmd1" | at midnight

    45.你的系统使用增量备份策略,当需要恢复系统时,你需要按什么顺序恢复备份数据?
    A. 最后一次全备份,然后从最早到最近的增量备份
    B. 最后一次全备份,然后从最近到最早的增量备份
    C. 最早到最近的增量备份,然后最后一次全备份
    D. 最近到最早的增量备份,然后最后一次全备份

    46.对所有用户的变量设置,应当放在哪个文件下?
    A. /etc/bashrc
    B. /etc/profile
    C. ~/.bash_profile
    D. /etc/skel/.bashrc

    47.Linux系统中,一般把命令 ls 定义为 ls --color 的别名,以便以不同颜色来标识不同类型的文件。但是,如何能够使用原先的ls命令?
    A. \ls
    B. ;ls
    C. ls $$
    D. ls --noalias

    48.在Linux系统中的脚本文件一般以什么开头?
    A. $/bin/sh
    B. #!/bin/sh
    C. use /bin/sh
    D. set shell=/bin/sh

    49.下面哪种写法表示如果cmd1成功执行,则执行cmd2命令?
    A. cmd1&&cmd2
    B. cmd1|cmd2
    C. cmd1;cmd2
    D. cmd1||cmd2

    50.在哪个文件中定义网卡的I/O地址?
    A. cat /proc/modules
    B. cat /proc/devices
    C. cat /proc/ioports
    D. cat /io/dma

    51.Linux中,提供TCP/IP包过滤功能的软件叫什么?
    A. rarp
    B. route
    C. iptables
    D. filter

    52.如何暂停一个打印队列?
    A. lpr
    B. lpq
    C. lpc
    D. lpd

    53.在vi中退出不保存的命令是?
    A. :q
    B. :w
    C. :wq
    D. :q!

    54.在 XFree86 3.x 中, 缺省的字体服务器为:
    A. xfs
    B. xfserv
    C. fonts
    D. xfstt

    55.使用什么命令检测基本网络连接?
    A. ping
    B. route
    C. netstat
    D. ifconfig

    56.下面哪个协议使用了二个以上的端口?
    A. telnet
    B. FTP
    C. rsh
    D. HTTP

    57.在PPP协议中,哪个认证协议不以明文传递密码?
    A. PAM
    B. PAP
    C. PGP
    D. CHAP

    58.下面哪个文件系统应该分配最大的空间?
    A. /usr
    B. /lib
    C. /root
    D. /bin

    59.如何在Debian系统中安装rpm包?
    A. alien pkgname.rpm
    B. dpkg --rpm pkgname.rpm
    C. dpkg --alien pkgname.rpm
    D. alien pkganme.rpm ; dpkg -i pkganme.deb

    60.在安装软件时下面哪一步需要root权限?
    A. make
    B. make deps
    C. make config
    D. make install

    61.什么命令用来只更新已经安装过的rpm软件包?
    A. rpm -U *.rpm
    B. rpm -F *.rpm
    C. rpm -e *.rpm
    D. rpm -q *.rpm

    62.在 windows 与 Linux 双起动的系统中,如果要让 LILO 管理引导,则 LILO 应该放在:
    A. MBR
    B. /
    C. root分区的首扇区
    D. /LILO

    63.ldconfig的配置文件是
    A. /lib/ld.so
    B. /etc/ld.so.conf
    C. /etc/ld.so.cache
    D. /etc/modules.conf

    64.下面哪个命令可以压缩部分文件:
    A. tar -dzvf filename.tgz *
    B. tar -tzvf filename.tgz *
    C. tar -czvf filename.tgz *
    D. tar -xzvf filename.tgz *

    65.网络服务的daemon是:
    A. lpd
    B. netd
    C. httpd
    D. inetd

    66.Linux与windows 的网上领居互联,需要提供什么daemon?
    A. bind
    B. smbd
    C. nmbd
    D. shard

    67.对于Apache服务器,提供的子进程的缺省的用户是:
    A. root
    B. apached
    C. httpd
    D. nobody

    68.sendmail中缺省的未发出信件的存放位置是:
    A. /var/mail/
    B. /var/spool/mail/
    C. /var/spool/mqueue/
    D. /var/mail/deliver/

    69.apache的主配置文件是:
    A. httpd.conf
    B. httpd.cfg
    C. access.cfg
    D. apache.conf

    70.关于可装载的模块,装载时的参数,如I/O地址等的存放位置是:
    A. /etc/conf.modules
    B. /etc/lilo.conf
    C. /boot/System.map
    D. /etc/sysconfig

    71.在 Linux 中,如何关闭邮件提示?
    A. biff n
    B. mesg n
    C. notify off
    D. set notify=off

    72.在 bash shell 环境下,当一命令正在执行时,按下 control-Z 会:
    A. 中止前台任务
    B. 给当前文件加上 EOF.
    C. 将前台任务转入后台
    D. 注销当前用户

    73.定义bash环境的用户文件是:
    A. bash & .bashrc
    B. bashrc & .bash_conf
    C. bashrc & bash_profile
    D. .bashrc & .bash_profile

    74.下面哪条命令用来显示一个程序所使用的库文件?
    A. ldd
    B. ld so
    C. modprobe
    D. ldconfig

    75.如何查看一个RPM软件的配置文件的存放位置?
    A. rpm -qc rpm1
    B. rpm -Vc rpm1
    C. rpm --config rpm1
    D. rpm -qa --config rpm1

    76.如何查看一个RPM软件的修改记录?
    A. rpm -Vc postfix
    B. rpm -qpil postfix
    C. rpm --changelog postfix
    D. rpm -q --changelog postfix

    77.通过Makefile来安装已编译过的代码的命令是:
    A. make
    B. install
    C. make depend
    D. make install

    78.什么命令解压缩tar文件?
    A. tar -czvf filename.tgz
    B. tar -xzvf filename.tgz
    C. tar -tzvf filename.tgz
    D. tar -dzvf filename.tgz

    79.在 XF86Config 配置文件中,哪个段用来设置字体文件?
    A. The Fonts section.
    B. The Files section.
    C. The xfsCodes section.
    D. The Graphics section.

    80.8 bit color 指的是:
    A. 64K colors
    B. 16K colors
    C. 256 colors
    D. 16M colors

    81.下面哪个文件用来设置 X window 的显示分辨率?
    A. xinit
    B. xinitrc
    C. XF86Setup
    D. XF86Config

    82.哪个变量用来指定一个远程X应用程序将输出放到哪个X server上?
    A. DISPLAY
    B. TERM
    C. ECHO
    D. OUTPUT

    83.在xdm的配置目录中,哪个文件用来设置在用户通过xdm登录后自动起动的应用程序?
    A. The Xsession file
    B. The Xsetup_0 file
    C. The Xstart_up file
    D. The GiveConsole file

    84.命令 netstat -a 停了很长时间没有响应,这可能是哪里的问题?
    A. NFS.
    B. DNS.
    C. NIS.
    D. routing.

    85.ping使用的协议是:
    A. TCP
    B. UDP
    C. SMB
    D. ICMP

    86.下面哪个命令不是用来查看网络故障的?
    A. ping
    B. init
    C. telnet
    D. netstat

    87.拨号上网使用的协议通常是:
    A. PPP
    B. UUCP
    C. SLIP
    D. Ethernet

    88.TCP/IP中,哪个协议是用来进行IP自动分配的?
    A. ARP
    B. NFS
    C. DHCP
    D. DNS

    89.下面哪个文件定义了网络服务的端口?
    A. /etc/netport
    B. /etc/services
    C. /etc/server
    D. /etc/netconf

    90.下面哪个功能用来生成一个文件的校验码?
    A. md5
    B. tar
    C. crypt
    D. md5sum

    91.缺省的,用户邮件放在:
    A. ~/mail/
    B. /var/mail/
    C. /var/mail/spool/
    D. /var/spool/mail/

    92.下面哪个文件包含了供 NFS daemon 使用的目录列表?
    A. /etc/nfs
    B. /etc/nfs.conf
    C. /etc/exports
    D. /etc/netdir

    93.如何停止一台机器的telnet服务?
    A. Put NONE in /etc/telnet.allow
    B. Put a line 'ALL:ALL' in /etc/hosts.deny
    C. Comment the telnet entry in /etc/inittab
    D. Comment the telnet entry in /etc/xinetd.conf

    94.在哪个文件中保存了sendmail的别名?
    A. /etc/aliases
    B. /etc/mailaliases
    C. /etc/sendmail.aliases
    D. /etc/sendmail/aliases

    95.smbd and nmbd daemons 的配置文件是:
    A. /etc/exports
    B. /etc/smb.conf
    C. /etc/samba/config
    D. /usr/local/samba.cfg

    96.下面哪个命令用来卸载一个内核模块?
    A. rmmod
    B. unmod
    C. delmod
    D. modprobe

    97.什么情况下必须运行lilo
    A. once a day from cron
    B. once a week from cron
    C. after installing a new kernel
    D. after installing a new module

    98.什么命令显示所有装载的模块?
    A. lsmod
    B. dirmod
    C. modules
    D. modlist

    99.下面哪个命令刷新打印机队列?
    A. lpflush
    B. lprm -
    C. lpclear
    D. lprm all

    100.下面哪个命令可以查看网卡的中断?
    A. cat /proc/ioports
    B. cat /proc/interrupts
    C. cat /proc/memoryinfo
    D. which interrupts

    专业:移动通信 科目:M y S Q L 数据库

    一、单项选择题

    1.以下聚合函数求数据总和的是 ( )

    A.M A X

    B.S U M

    C.C O U N T

    D.A V G

    答案:B

    2.可以用 ( )来声明游标

    A.C R E A T E C U R S O R

    B.A L T E R C U R S O R

    C.S E T C U R S O R

    D.D E C L A R E C U R S O R

    答案:D

    3.S E L E C T 语句的完整语法较复杂,但至少包括的部分是 ( )

    A.仅 S E L E C T

    B.S E L E C T ,F R O M

    C.S E L E C T ,G R O U P

    D.S E L E C T ,I N T O

    答案:B

    4.S Q L 语句中的条件用以下哪一项来表达 ( )

    A.T H E N

    B.W H I L E

    C.W H E R E

    D.I F

    答案:C

    5.使用 C R E A T E T A B L E 语句的( )子句,在创建基本表时可以启用全文本搜索

    A.F U L L T E X T

    B.E N G I N E

    C.F R O M

    D.W H R E R

    答案:A

    6.以下能够删除一列的是 ( )

    A.a l t e r t a b l e e m p r e m o v e a d d c o l u m n

    B.a l t e r t a b l e e m p d r o p c o l u m n a d d c o l u m n

    C.a l t e r t a b l e e m p d e l e t e c o l u m n a d d c o l u m n

    D.a l t e r t a b l e e m p d e l e t e a d d c o l u m n

    答案:B

    7.若要撤销数据库中已经存在的表 S,可用()。

    A.D E L E T E T A B L E S

    B.D E L E T E S

    C.D R O P S

    D.D R O P T A B L E S

    答案:D

    8.查找表结构用以下哪一项 ( )

    A.F I N D

    B.S E L E T E

    C.A L T E R

    D.D E S C

    答案:D

    9.要得到最后一句 S E L E C T 查询到的总行数,可以使用的函数是 ( )

    A.F O U N D _ R O W S

    B.L A S T _ R O W S

    C.R O W _ C O U N T

    D.L A S T _ I N S E R T _ I D

    答案:A

    1 0 .在视图上不能完成的操作是 ( )

    A.查询

    B.在视图上定义新的视图

    C.更新视图

    D.在视图上定义新的表

    答案:D

    1 1 .U N I Q U E 惟一索引的作用是 ( )

    A.保证各行在该索引上的值都不得重复

    B.保证各行在该索引上的值不得为 N U L L

    C.保证参加惟一索引的各列,不得再参加其他的索引

    D.保证惟一索引不能被删除

    答案:A

    1 2 .用于将事务处理写到数据库的命令是 ( )

    A.i n s e r t

    B.r o l l b a c k

    C.c o m m i t

    D.s a v e p o i n t

    答案:C

    1 3 .查找条件为:姓名不是 N U L L 的记录 ( )

    A.W H E R E N A M E ! N U L L

    B.W H E R E N A M E N O T N U L L

    C.W H E R E N A M E I S N O T N U L L

    D.W H E R E N A M E ! = N U L L

    答案:C

    1 4 .主键的建立有 ( )种方法

    A.一

    B.四

    C.二

    D.三

    答案:D

    1 5 .在视图上不能完成的操作是 ( )

    A.更新视图数据

    B.在视图上定义新的基本表

    C.在视图上定义新的视图

    D.查询

    答案:B

    1 6 .在 S Q L 语言中,子查询是()。

    A.选取单表中字段子集的查询语句

    B.选取多表中字段子集的查询语句

    C.返回单表中数据子集的查询语言

    D.嵌入到另一个查询语句之中的查询语句

    答案:D

    1 7 .向数据表中插入一条记录用以下哪一项 ( )

    A.C R E A T E

    B.I N S E R T

    C.S A V E

    D.U P D A T E

    答案:B

    1 8 .在 s e l e c t 语句的 w h e r e 子句中,使用正则表达式过滤数据的关键字是 ( )

    A.l i k e

    B.a g a i n s t

    C.m a t c h

    D.r e g e x p

    答案:D

    1 9 .S Q L 语言的数据操纵语句包括 S E L E C T 、I N S E R T 、U P D A T E 、D E L E T E 等。其中最重要的,

    也是使用最频繁的语句是 ( )。

    A.U P D A T E

    B.S E L E C T

    C.D E L E T E

    D.I N S E R T

    答案:B

    2 0 .以下哪种操作能够实现实体完整性 ( )

    A.设置唯一键

    B.设置外键

    C.减少数据冗余

    D.设置主键

    答案:B

    2 1 .S Q L 语言中,删除一个视图的命令是 ( )

    A.R E M O V E

    B.C L E A R

    C.D E L E T E

    D.D R O P

    答案:D

    2 2 .修改数据库表结构用以下哪一项 ( )

    A.U P D A T E

    B.C R E A T E

    C.U P D A T E D

    D.A L T E R

    答案:D

    2 3 .在全文本搜索的函数中,用于指定被搜索的列的是 ( )

    A.M A T C H ( )

    B.A G A I N S T ( )

    C.F U L L T E X T ( )

    D.R E G E X P ( )

    答案:A

    2 4 .以下语句错误的是 ( )

    A.s e l e c t s a l + 1 f r o m e m p ;

    B.s e l e c t s a l * 1 0 , s a l * d e p t n o f r o m e m p ;

    C.不能使用运算符号

    D.s e l e c t s a l * 1 0 , d e p t n o * 1 0 f r o m e m p ;

    答案:C

    2 5 .下列( )不属于连接种类

    A.左外连接

    B.内连接

    C.中间连接

    D.交叉连接

    答案:C

    2 6 .若用如下的 S Q L 语句创建了一个表 S C :( )

    C R E A T E T A B L E S C  (S # C H A R (6) N O T N U L L ,C # C H A R (3) N O T N U L L ,S C O R E I N T E G E R ,

    N O T E C H A R (2 0 ));向 S C表插入如下行时,()行可以被插入。

    A.(N U L L ,’1 0 3 ’,8 0 ,’选修’)

    B.(’2 0 0 8 2 3 ’,’1 0 1 ’,N U L L ,N U L L )

    C.(’2 0 1 1 3 2 ’,N U L L ,8 6 ,’’)

    D.(’2 0 1 0 0 9 ’,’1 1 1 ’,6 0 ,必修)

    答案:B

    2 7 .删除用户账号命令是 ( )

    A.D R O P U S E R

    B.D R O P T A B L E U S E R

    C.D E L E T E U S E R

    D.D E L E T E F R O M U S E R

    答案:A

    2 8 .以下语句错误的是 ( )

    A. a l t e r t a b l e e m p d e l e t e c o l u m n a d d c o l u m n ;

    B. a l t e r t a b l e e m p m o d i f y c o l u m n a d d c o l u m n c h a r ( 1 0 ) ;

    C.a l t e r t a b l e e m p c h a n g e a d d c o l u m n  a d d c o l u m n i n t ;

    D. a l t e r t a b l e e m p a d d c o l u m n a d d c o l u m n i n t ;

    答案:A

    2 9 .组合多条 S Q L 查询语句形成组合查询的操作符是 ( )

    A.S E L E C T

    B.A L L

    C.L I N K

    D.U N I O N

    答案:D

    3 0 .创建数据库使用以下哪项 ( )

    A.c r e a t e m y t e s t

    B.c r e a t e t a b l e m y t e s t

    C.d a t a b a s e m y t e s t

    D.c r e a t e d a t a b a s e m y t e s t

    答案:D

    3 1 .以下哪项用来分组 ( )

    A.O R D E R B Y

    B.O R D E R E D B Y

    C.G R O U P B Y

    D.G R O U P E D B Y

    答案:D

    3 2 .S Q L 是一种( )语言。

    A.函数型

    B.高级算法

    C.关系数据库

    D.人工智能

    答案:C

    3 3 .删除数据表用以下哪一项 ( )

    A.D R O P

    B.U P D A T E

    C.D E L E T E

    D.D E L E T E D

    答案:A

    3 4 .若要在基本表 S 中增加一列 C N(课程名),可用( )

    A.A D D T A B L E S A L T E R (C N C H A R (8))

    B.A L T E R T A B L E S D D (C N C H A R (8))

    C.A D D T A B L E S (C N C H A R (8))

    D.A L T E R T A B L E S  (A D D C N C H A R (8))

    答案:B

    3 5 .下列的 S Q L 语句中, ( )不是数据定义语句。

    A.C R E A T E T A B L E

    B.G R A N T

    C.C R E A T E V I E W

    D. D R O P V I E W

    答案:B

    3 6 .以下删除记录正确的 ( )

    A.d e l e t e f r o m e m p w h e r e n a m e = ' d o n y ' ;

    B.D e l e t e * f r o m e m p w h e r e n a m e = ' d o n y ' ;

    C.D r o p f r o m e m p w h e r e n a m e = ' d o n y ' ;

    D.D r o p * f r o m e m p w h e r e n a m e = ' d o n y ' ;

    答案:A

    3 7 .删除经销商 1 0 1 8 的数据记录的代码为 ( ) f r o m d i s t r i b u t o r s w h e r e d i s t r i _ n u m = 1 0 1 8

    A.d r o p t a b l e

    B.d e l e t e *

    C.d r o p c o l u m n

    D.d e l e t e

    答案:D

    3 8 .按照姓名降序排列 ( )

    A.O R D E R B Y D E S C N A M E

    B.O R D E R B Y N A M E D E S C

    C.O R D E R B Y N A M E A S C

    D.O R D E R B Y  A S C N A M E

    答案:B

    3 9 .可以在创建表时用 ( )来创建唯一索引,也可以用 ( )来创建唯一索引

    A.C r e a t e t a b l e ,C r e a t e i n d e x

    B.设置主键约束,设置唯一约束

    C.设置主键约束, C r e a t e i n d e x

    D.以上都可以

    答案:C

    4 0 .在 S E L E C T 语句中,使用关键字 ( )可以把重复行屏蔽

    A.T O P

    B.A L L

    C.U N I O N

    D.D I S T I N C T

    答案:D

    4 1 .以下聚合函数求平均数的是 ( )

    A.C O U N T

    B.M A X

    C.A V G

    D.S U M

    答案:C

    4 2 .返回当前日期的函数是 ( )

    A.c u r t i m e ( )

    B.a d d d a t e ( )

    C.c u r n o w ( )

    D.c u r d a t e ( )

    答案:D

    4 3 .用来插入数据的命令是 ( ),用于更新的命令是 ( )

    A.I N S E R T ,U P D A T E

    B.C R E A T E ,I N S E R T I N T O

    C.D E L E T E ,U P D A T E

    D.U P D A T E , I N S E R T

    答案:A

    4 4 .S E L E C T C O U N T ( S A L ) F R O M E M P G R O U P B Y D E P T N O ; 意思是( )

    A.求每个部门中的工资

    B.求每个部门中工资的大小

    C.求每个部门中工资的综合

    D.求每个部门中工资的个数

    答案:D

    4 5 .以下表达降序排序的是 ( )

    A.A S C

    B.E S C

    C.D E S C

    D.D S C

    答案:C

    4 6 .以下哪项不属于数据模型 ( )

    A.关系模型

    B.网状模型

    C.层次模型

    D.网络模型

    答案:A

    4 7 .有三个表,它们的记录行数分别是 1 0行、2 行和 6 行,三个表进行交叉连接后,结果

    集中共有 ( )行数据

    A.1 8

    B.2 6

    C.不确定

    D.1 2 0

    答案:D

    4 8 .从 G R O U P B Y 分组的结果集中再次用条件表达式进行筛选的子句是 ( )

    A.F R O M

    B.O R D E R B Y

    C.H A V I N G

    D.W H E R E

    答案:C

    4 9 .为数据表创建索引的目的是 ( )

    A.提高查询的检索性能

    B.归类

    C.创建唯一索引

    D.创建主键

    答案:A

    5 0 .如果要回滚一个事务,则要使用 ( )语句。

    A.c o m m i  t r a n s a c t i o n

    B. b e g i n  t r a n s a c t i o n

    C. r e v o k e

    D.r o l l b a c k  t r a n s a c t i o n

    答案:D

    5 1 .查找数据表中的记录用以下哪一项 ( )

    A.A L T R E

    B.U P D A T E

    C.S E L E C T

    D.D E L E T E

    答案:C

    5 2 .在 M y S Q L 中,建立数据库用 ( )

    A.C R E A T E T A B L E 命令

    B.C R E A T E T R I G G E R 命令

    C.C R E A T E I N D E X 命令

    D.C R E A T E D A T A B A S E 命令

    答案:D

    5 3 .M y S Q L 中,预设的、拥有最高权限超级用户的用户名为 ( )

    A.t e s t

    B.A d m i n i s t r a t o r

    C.D A

    D.r o o t

    答案:D

    5 4 .以下插入记录正确的 ( )

    A.i n s e r t i n t o e m p ( e n a m e , h i r e d a t e , s a l ) v a l u e s ( v a l u e 1 , v a l u e 2 , v a l u e 3 ) ;

    B.i n s e r t i n t o e m p ( e n a m e , s a l ) v a l u e s ( v a l u e 1 , v a l u e 2 , v a l u e 3 ) ;

    C.i n s e r t i n t o e m p ( e n a m e ) v a l u e s ( v a l u e 1 , v a l u e 2 , v a l u e 3 ) ;

    D.i n s e r t i n t o e m p ( e n a m e , h i r e d a t e , s a l ) v a l u e s ( v a l u e 1 , v a l u e 2 ) ;

    答案:A

    5 5 .在 S Q L 语言中的视图 V I E W 是数据库的 ( )

    A.外模式

    B.存储模式

    C.模式

    D.内模式

    答案:A

    5 6 .以下哪项用来排序 ( )

    A.O R D E R E D B Y

    B.O R D E R B Y

    C.G R O U P B Y

    D.G R O U P E D B Y

    答案:B

    5 7 .以下聚合函数求个数的是 ( )

    A.A V G

    B.S U M

    C.M A X

    D.C O U N T

    答案:D

    5 8 .在 s e l e c t 语句中,实现选择操作的子句是 ( )

    A.s e l e c t

    B.g r o u p b y

    C.w h e r e

    D.f r o m

    答案:C

    5 9 .查找数据库中所有的数据表用以下哪一项 ( )

    A.S H O W D A T A B A S E

    B.S H O W T A B L E S

    C.S H O W D A T A B A S E S

    D.S H O W T A B L E

    答案:B

    6 0 .触发器不是响应以下哪一语句而自动执行的 M y s q l 语句

    A.s e l e c t

    B.i n s e r t

    C.d e l e t e

    D.u p d a t e

    答案:A

    6 1 .( )表示一个新的事务处理块的开始

    A.S T A R T T R A N S A C T I O N

    B.B E G I N T R A N S A C T I O N

    C.B E G I N C O M M I T

    D.S T A R T C O M M I T

    答案:A

    6 2 .以下语句不正确的是 ( )

    A.s e l e c t * f r o m e m p ;

    B.s e l e c t e n a m e , h i r e d a t e , s a l f r o m e m p ;

    C.s e l e c t * f r o m e m p o r d e r d e p t n o ;

    D.s e l e c t * f r o m w h e r e d e p t n o = 1 a n d s a l < 3 0 0 ;

    答案:C

    6 3 .d e l e t e f r o m e m p l o y e e 语句的作用是 ( )

    A.删除当前数据库中整个 e m p l o y e e 表,包括表结构

    B.删除当前数据库中 e m p l o y e e 表内的所有行

    C.由于没有 w h e r e 子句,因此不删除任何数据

    D.删除当前数据库中 e m p l o y e e 表内的当前行

    答案:B

    6 4 .按照班级进行分组 ( )

    A.O R D E R B Y C L A S S E S

    B.D O R D E R C L A S S E S

    C.G R O U P B Y C L A S S E S

    D.G R O U P C L A S S E S

    答案:C

    6 5 .格式化日期的函数是 ( )

    A.D A T E D I F F ( )

    B.D A T E _ F O R M A T ( )

    C.D A Y ( )

    D.C U R D A T E ( )

    答案:B

    6 6 .例如数据库中有 A 表,包括学生,学科,成绩,序号四个字段 , 数据库结构为

    学生学科成绩序号

    张三语文 6 0  1

    张三数学 1 0 0  2

    李四语文 7 0  3

    李四数学 8 0  4

    李四英语 8 0  5

    上述哪一列可作为主键列 ( )

    A.序号

    B.成绩

    C.学科

    D.学生

    答案:A

    6 7 .学生关系模式 S( S#,S n a m e ,S e x ,A g e ),S 的属性分别表示学生的学号、姓名、性

    别、年龄。要在表 S 中删除一个属性“年龄”,可选用的 S Q L 语句是()。

    A. U P D A T E S A g e

    B.D E L E T E A g e f r o m S

    C.A L T E R T A B L E S  ‘A g e ’

    D. A L T E R T A B L E S D R O P A g e

    答案:D

    6 8 .以下哪项用于左连接 ( )

    A.J O I N

    B.R I G H T J O I N

    C.L E F T J O I N

    D.I N N E R J O I N

    答案:C

    6 9 .一张表的主键个数为 ( )

    A.至多 3 个

    B.没有限制

    C.至多 1 个

    D.至多 2 个

    答案:C

    7 0 .S Q L 语言是( )的语言,轻易学习。

    A.导航式

    B.过程化

    C.格式化

    D.非过程化

    答案:D

    7 1 .在正则表达式中,匹配任意一个字符的符号是 ( )

    A..

    B.*

    C.?

    D.-

    答案:A

    6 6 .例如数据库中有 A 表,包括学生,学科,成绩,序号四个字段 , 数据库结构为

    学生学科成绩序号

    张三语文 6 0  1

    张三数学 1 0 0  2

    李四语文 7 0  3

    李四数学 8 0  4

    李四英语 8 0  5

    上述哪一列可作为主键列 ( )

    A.序号

    B.成绩

    C.学科

    D.学生

    答案:A

    6 7 .学生关系模式 S( S#,S n a m e ,S e x ,A g e ),S 的属性分别表示学生的学号、姓名、性

    别、年龄。要在表 S 中删除一个属性“年龄”,可选用的 S Q L 语句是()。

    A. U P D A T E S A g e

    B.D E L E T E A g e f r o m S

    C.A L T E R T A B L E S  ‘A g e ’

    D. A L T E R T A B L E S D R O P A g e

    答案:D

    6 8 .以下哪项用于左连接 ( )

    A.J O I N

    B.R I G H T J O I N

    C.L E F T J O I N

    D.I N N E R J O I N

    答案:C

    6 9 .一张表的主键个数为 ( )

    A.至多 3 个

    B.没有限制

    C.至多 1 个

    D.至多 2 个

    答案:C

    7 0 .S Q L 语言是( )的语言,轻易学习。

    A.导航式

    B.过程化

    C.格式化

    D.非过程化

    答案:D

    7 1 .在正则表达式中,匹配任意一个字符的符号是 ( )

    A..

    B.*

    C.?

    D.-

    答案:A

    B.包括 1 5岁但不包括 3 5岁

    C.包括 1 5岁和 3 5岁

    D.包括 3 5岁但不包括 1 5岁

    答案:C

    8 0 .创建视图的命令是 ( )

    A.a l t e r v i e w

    B.a l t e r t a b l e

    C.c r e a t e t a b l e

    D.c r e a t e v i e w

    答案:D

    8 1 .存储过程是一组预先定义并 ( )的 T r a n s a c t - S Q L 语句

    A.保存

    B.编写

    C.编译

    D.解释

    答案:C

    8 2 .返回字符串长度的函数是 ( )

    A.l e n ( )

    B.l e n g t h ( )

    C.l e f t ( )

    D.l o n g ( )

    答案:B

    8 3 .从数据表中查找记录用以下哪一项 ( )

    A.U P D A T E

    B.F I N D

    C.S E L E C T

    D.C R E A T E

    答案:C

    8 4 .S Q L 语言集数据查询、数据操纵、数据定义和数据控制功能于一体, 其中,C R E A T E 、D R O P 、

    A L T E R 语句是实现哪种功能 ( )

    A.数据操纵

    B.数据控制

    C.数据定义

    D.数据查询

    答案:C

    8 5 .以下哪项不属于 D M L操作( )

    A.i n s e r t

    B.u p d a t e

    C.d e l e t e

    D.c r e a t e

    答案:D

    8 6 .按照姓名升序序排列 ( )

    A.O R D E R B Y N A M E A S C

    B.O R D E R B Y  A S C N A M E

    C.O R D E R B Y N A M E D E S C

    D.O R D E R B Y D E S C N A M E

    答案:A

    8 7 .有关系 S(S#,S N A M E ,S A G E ),C(C#,C N A M E ),S C (S#,C#,G R A D E )。其中 S

    #是学生号,S N A M E 是学生姓名,S A G E 是学生年龄, C#是课程号, C N A M E 是课程名称。

    要查询选修“A C C E S S ”课的年龄不小于 2 0的全体学生姓名的 S Q L 语句是 S E L E C T S N A M E F R O M

    S,C,S C W H E R E 子句。这里的 W H E R E 子句的内容是()。

    A.S A G E > = 2 0 a n d N A M E = ’ A C C E S S ’

    B.S . S # = S C . S # a n d C . C # = S C . C # a n d S A G E i n > = 2 0 a n d C N A M E i n  ‘A C C E S S ’

    C.S A G E i n > = 2 0 a n d C N A M E i n  ‘A C C E S S ’

    D.S . S # = S C . S # a n d C . C # = S C . # a n d S A G E > = 2 0 a n d C N A M E = ‘A C C E S S ’

    答案:D

    8 8 .以下哪项属于 D D L 操作( )

    A.u p d a t e

    B.c r e a t e

    C. i n s e r t

    D.d e l e t e

    答案:B

    8 9 .查找条件为:姓名为 N U L L 的记录( )

    A.W H E R E N A M E N U L L

    B.\ W H E R E N A M E I S N U L L

    C.W H E R E N A M E = N U L L

    D.\ W H E R E N A M E = = N U L L

    答案:B

    9 0 .条件“ I N ( 2 0 , 3 0 , 4 0 ) ”表示( )

    A.年龄在 2 0到 4 0之间

    B.年龄在 2 0到 3 0之间

    C.年龄是 2 0或 3 0或 4 0

    D.年龄在 3 0到 4 0之间

    答案:C

    9 1 .正则表达式的转义符是 ( )

    A.\ \

    B.\

    C.;

    D.$ $

    答案:A

    9 2 .更新数据表中的记录用以下哪一项 ( )

    A.D E L E T E

    B.A L T R E

    C.U P D A T E

    D.S E L E C T

    答案:C

    9 3 .关系数据库中,主键是 ( )

    A.创建唯一的索引,允许空值

    B.只允许以表中第一字段建立

    C.允许有多个主键的

    D.为标识表中唯一的实体

    答案:D

    9 4 .使用 S E L E C T 语句随机地从表中挑出指定数量的行,可以使用的方法是 ( )

    A.在 L I M I T 子句中使用 R A N D ( ) 函数指定行数,并用 O R D E R B Y 子句定义一个排序规则

    B.只要使用 L I M I T 子句定义指定的行数即可,不使用 O R D E R B Y 子句

    C.只要在 O R D E R B Y 子句中使用 R A N D ( ) 函数,不使用 L I M I T 子句

    D.在 O R D E R B Y 子句中使用 R A N D ( ) 函数,并用 L I M I T 子句定义行数

    答案:D

    9 5 .进入要操作的数据库 T E S T 用以下哪一项 ( )

    A.I N T E S T

    B.S H O W T E S T

    C.U S E R T E S T

    D.U S E T E S T

    答案:D

    9 6 .例如数据库中有 A 表,包括学生,学科,成绩三个字段 , 数据库结构为

    学生学科成绩

    张三语文 8 0

    张三数学 1 0 0

    李四语文 7 0

    李四数学 8 0

    李四英语 8 0

    如何统计每个学科的最高分 ( )

    A.s e l e c t  学生, m a x ( 成绩) f r o m A g r o u p b y  学生;

    B.s e l e c t  学生, m a x ( 成绩) f r o m A g r o u p b y 学科;

    C.s e l e c t  学生, m a x ( 成绩) f r o m A o r d e r b y 学生;

    D.s e l e c t  学生, m a x ( 成绩) f r o m A g r o u p b y  成绩;

    答案:B

    9 7 .下列哪些语句对主键的说明正确 ( )

    A.主键可重复

    B.主键不唯一

    C.在数据表中的唯一索引

    D.主键用 f o r e i g n k e y 修饰

    答案:C

    9 8 .数据库服务器、数据库和表的关系,正确的说法是 ( )

    A.一个数据库服务器只能管理一个数据库,一个数据库只能包含一个表

    B.一个数据库服务器可以管理多个数据库,一个数据库可以包含多个表

    C.一个数据库服务器只能管理一个数据库,一个数据库可以包含多个表

    D.一个数据库服务器可以管理多个数据库,一个数据库只能包含一个表

    答案:B

    9 9 .例如数据库中有 A 表,包括学生,学科,成绩三个字段 , 数据库结构为

    学生学科成绩

    张三语文 6 0

    张三数学 1 0 0

    李四语文 7 0

    李四数学 8 0

    李四英语 8 0

    如何统计最高分 > 8 0 的学科( )

    A.S E L E C T M A X ( 成绩) F R O M A G R O U P B Y 学科 H A V I N G M A X ( 成绩) > 8 0 ;

    B.S E L E C T 学科 F R O M A G R O U P B Y 学科 H A V I N G 成绩> 8 0 ;

    C.S E L E C T 学科 F R O M A G R O U P B Y 学科 H A V I N G M A X ( 成绩) > 8 0 ;

    D.S E L E C T 学科 F R O M A G R O U P B Y 学科 W H E R E M A X ( 成绩) > 8 0 ;

    答案:C

    1 0 0 .统计每个部门中人数 ( )

    A.S E L E C T S U M ( I D ) F R O M E M P G R O U P B Y D E P T N O ;

    B.S E L E C T S U M ( I D ) F R O M E M P O R D E R B Y D E P T N O ;

    C.S E L E C T C O U N T ( I D ) F R O M E M P O R D E R B Y D E P T N O ;

    D.S E L E C T C O U N T ( I D ) F R O M E M P G R O U P B Y D E P T N O ;

    答案:D

    1 0 1 .D E C I M A L 是( )数据类型

    A.可变精度浮点值

    B.整数值

    C.双精度浮点值

    D.单精度浮点值

    答案:A

    1 0 2 .视图是一种常用的数据对象,它是提供 ( )和( )数据的另一种途径,可以简

    化数据库操作

    A.插入,更新

    B.查看,检索

    C.查看,存放

    D.检索,插入

    答案:C

    1 0 3 .删除数据表中的一条记录用以下哪一项 ( )

    A.D E L E T E D

    B.D E L E T E

    C.D R O P

    D.U P D A T E

    答案:B

    二、多项选择题

    1.触发器是响应以下任意语句而自动执行的一条或一组 M Y S Q L 语句( )

    A.U P D A T E

    B.I N S E R T

    C.S E L E C T

    D.D E L E T E

    答案:B , A , D

    2.对于删除操作以下说法正确的是()

    A.d r o p d a t a b a s e  数据库名:删除数据库

    B.d e l e t e f r o m  表名;删除表中所有记录条

    C.d e l e t e f r o m  表名 w h e r e  字段名=值;删除符合条件的记录条

    D.d r o p t a b l e  表名;删除表

    答案:B , C , D , A

    3.下面正确的说法是 ( )

    A.关键字只能由单个的属性组成

    B.在一个关系中,关键字的值不能为空

    C.一个关系中的所有候选关键字均可以被指定为主关键字

    D.关键字是关系中能够用来惟一标识元组的属性

    答案:D , B , C

    4.以下说法正确的是 ( )

    A.字符型既可用单引号也可用双引号将串值括起来

    B.字符型的 8 7 3 9 8 1 4 3 不参与计算的

    C.8 7 3 9 8 1 4 3  不能声明为数值型

    D.数值型的 8 7 3 9 8 1 4 3 将参与计算

    答案:A , D , B

    5.关于主键下列说法正确的是()

    A.可以是表中的一个字段,

    B.是确定数据库中的表的记录的唯一标识字段,

    C.该字段不可为空也不可以重复

    D.可以是表中的多个字段组成的。

    答案:B , A , D , C

    6.m y S Q L 支持哪些逻辑运算符

    A.& &

    B.| |

    C.N O T

    D.A N D

    答案:D , C

    7.以下不属于浮点型的是()

    A.s m a l l i n t

    B.m e d i u m i n t

    C.f l o a t

    D.i n t

    答案:A , B , D

    8.下列正确的命令是 ( )

    A.s h o w t a b l e s ;

    B.s h o w c o l u m n s ;

    C.s h o w c o l u m n s f r o m c u s t o m e r s ;

    D.s h o w d a t a b a s e s ;

    答案:D , A , C

    9.正则表达式中,重复元字符“ *”表示( )

    A.无匹配

    B.只匹配 1 个

    C.0 个匹配

    D.多个匹配

    答案:C , D

    1 0 .下面对 u n i o n  的描述正确的是 ( )

    A.u n i o n  只连接结果集完全一样的查询语句

    B.u n i o n  可以连接结果集中数据类型个数相同的多个结果集

    C.u n i o n  是筛选关键词,对结果集再进行操作

    D.任何查询语句都可以用 u n i o n  来连接

    答案:D , A , C

    1 1 .下列哪一个逻辑运算符的优先级排列不正确 ( )

    A.A N D / N O T / O R

    B.N O T / A N D / O R

    C.O R / N O T / A N D

    D.O R / A N D / N O T

    答案:A , C , D

    1 2 .对某个数据库进行筛选后 , (  )。

    A. B)可以选出符合某些条件组合的记录

    B.D)不能选择出符合条件组合的记录

    C.A)可以选出符合某些条件的记录

    D.C)只能选择出符合某一条件的记录

    答案:C , A

    1 3 .下列语句错误的是 ( )

    A.s e l e c t * f r o m o r d e r s w h e r e o r d e r n a m e i s n o t n u l l ;

    B.s e l e c t * f r o m o r d e r s w h e r e o r d e r n a m e < > n u l l ;

    C.s e l e c t * f r o m o r d e r s w h e r e o r d e r n a m e i s n u l l ;

    D.s e l e c t * f r o m o r d e r s w h e r e o r d e r n a m e n o t  i s n u l l ;

    答案:D , B

    1 4 .在下列关于关系的叙述中,正确的是 ( )

    A.C)行在表中的顺序无关紧要

    B. A)表中任意两行的值不能相同

    C. D)列在表中的顺序无关紧要

    D.B)表中任意两列的值不能相同

    答案:B , A , C

    1 5 .下面系统中属于关系数据库管理系统的是 ( )

    A. B)M S _ S Q L S E R V E R

    B.A)O r a c l e

    C. C)I M S

    D. D)D B 2

    答案:B , A , C

    1 6 .下列是 M Y S Q L 比较运算符的是 ( )

    A.! =

    B.< >

    C.= =

    D.> =

    答案:D , B , A

    1 7 .E x c e l  中有关数据库内容 , 描述正确的有 ( )。

    A.每一个 E x c e l  数据库对应一个工作簿文件

    B.一列为一个字段 , 描述实体对象的属性

    C.E x c e l  数据库属于“关系数据模型” , 又称为关系型数据库

    D.一行为一个记录 , 描述某个实体对象

    答案:D , B , C

    1 8 .下面关于使用 U P D A T E 语句,正确的是 ( )

    A.被定义为 N O T N U L L 的列不可以被更新为 N U L L

    B.不能在一个子查询中更新一个表,同时从同一个表中选择

    C.不能把 O R D E R B Y 或 L I M I T 与多表语法的 U P D A T E 语句同时使用

    D.如果把一列设置为其当前含有的值,则该列不会更新

    答案:D , C , B

    1 9 .关于 E x c e l  数据库应用的描述正确的有 ( )。

    A.是一个数据清单

    B.是按一定组织方式存储在一起的相关数据的集合

    C.是一个数组

    D.是程序化的电子表格

    答案:B , A

    2 0 .关于 D E L E T E 和 T R U N C A T E T A B L E 的说法,正确的是 ( )

    A.两者都可以删除指定条目的记录

    B.前者可以删除指定条目的记录,后者不能

    C.两者都反回被删除记录的数目

    D.前者返回被删除记录数目,后者不返回

    答案:B , D

    2 1 .关于游标,下列说法正确的是 ( )

    A.声明后必须打开游标以供使用

    B.结束游标使用时,必须闭游标

    C.使用游标前必须声明它

    D.游标只能用于存储过程和函数

    答案:D , C , A , B

    2 2 .下列说法正确的是 ( )

    A.在 M y S Q L 中,不允许有空表存在,即一张数据表中不允许没有字段。

    B.在 M y S Q L 中,对于存放在服务器上的数据库,用户可以通过任何客户端进行访问。

    C.数据表的结构中包含字段名、类型、长度、记录。

    D.字符型数据其常量标志是单引号和双引号,且两种符号可以混用。

    答案:B , A

    2 3 .下面数据库名称合法的是 ( )

    A.d b 1 / s t u d e n t

    B.d b 1 . s t u d e n t

    C.d b 1 _ s t u d e n t

    D.d b 1 & s t u d e n t

    答案:D , C

    2 4 .下面语句中,表示过虑条件是 v e n d _ i d = 1 0 0 2 或 v e n d _ i d = 1 0 0 3 的是( )

    A.s e l e c t * f r o m p r o d u c t s w h e r e v e n d _ i d = 1 0 0 2 o r v e n d _ i d = 1 0 0 3

    B.s e l e c t * f r o m p r o d u c t s w h e r e v e n d _ i d i n ( 1 0 0 2 , 1 0 0 3 ) ;

    C.s e l e c t * f r o m p r o d u c t s w h e r e v e n d _ i d n o t i n ( 1 0 0 4 , 1 0 0 5 ) ;

    D.s e l e c t * f r o m p r o d u c t s w h e r e v e n d _ i d = 1 0 0 2 a n d v e n d _ i d = 1 0 0 3

    答案:B , A

    2 5 .下列哪些列类型是数值型的数据 ( )。

    A.D O U B L E

    B.I N T

    C.S E T

    D.F L O A T

    答案:B , A , D

    2 6 .以下否定语句搭配正确的是()

    A.n o t i n

    B.i n n o t

    C.n o t b e t w e e n  a n d

    D.i s n o t n u l l

    答案:C , A , D

    2 7 .下面检索结果一定不是一行的命令是 ( )

    A.s e l e c t d i s t i n c t * f r o m o r d e r s ;

    B.s e l e c t * f r o m o r d e r s l i m i t 1 , 2 ;

    C.s e l e c t t o p 1 * f r o m o r d e r s ;

    D.s e l e c t * f r o m o r d e r s l i m i t 1 ;

    答案:C , A , B

    2 8 .以下哪些是 m y S Q L 数据类型()

    A.B I G I N T

    B.T I N Y I N T

    C.I N T E G E R

    D.I N T

    答案:D , C , A , B

    2 9 .关于 g r o u p b y  以下语句正确的是 ( )

    A.S E L E C T s t o r e _ n a m e  F R O M S t o r e _ I n f o r m a t i o n G R O U P B Y s t o r e _ n a m e

    B. S E L E C T  S U M ( s a l e s ) F R O M S t o r e _ I n f o r m a t i o n G R O U P B Y  s a l e s

    C.S E L E C T s t o r e _ n a m e , p r i c e S U M ( s a l e s ) F R O M S t o r e _ I n f o r m a t i o n G R O U P B Y s t o r e _ n a m e ,

    p r i c e

    D.S E L E C T s t o r e _ n a m e , S U M ( s a l e s ) F R O M S t o r e _ I n f o r m a t i o n G R O U P B Y s t o r e _ n a m e

    答案:D , C , B

    3 0 .在数据库系统中,有哪几种数据模型? ( )

    A. D)实体联系模型

    B. C)关系模型

    C. A)网状模型

    D. B)层次模型

    答案:C , D , B

    3 1 .关于 C R E A T E 语句下列说法正确的是()

    A.c r e a e  t a b l e  表名(字段名 1 字段类型 ,字段名 2 字段类型 , . . . . . )

    B. c r e a e  t a b l e s  表名(字段类型 ,字段名 1 字段类型 ,字段名 2 . . . . . )

    C.c r e a e  t a b l e s  表名(字段名 1 字段类型 ,字段名 2 字段类型 , . . . . . )

    D. c r e a t e  t a b l e  表名(字段类型 ,字段名 1 字段类型 ,字段名 2 . . . . . )

    答案:A , D

    3 2 .以下说法正确的是 ( )

    A.一个服务器只能有一个数据库

    B.一个服务器可以有多个数据库

    C.一个数据库只能建立一张数据表

    D.一个数据库可以建立多张数据表

    答案:B , D

    3 3 .下列说法正确的是 ( )

    A.一张数据表一旦建立完成,是不能修改的。

    B.在 M y S Q L 中,用户在单机上操作的数据就存放在单机中。

    C.在 M y S Q L 中,可以建立多个数据库,但也可以通过限定,使用户只能建立一个数据

    库。

    D.要建立一张数据表,必须先建数据表的结构。

    答案:C , B , D

    3 4 .“s h o w d a t a b a s e s l i k e  ‘s t u d e n t % ’”命令可以显示出以下数据库 ( )

    A.s t u d e n t _ m y

    B.s t u d e n t y

    C.m y s t u d e n t

    D.s t u d e n t

    答案:D , A , B

    3 5 .下面的选项是关系数据库基本特征的是() 。

    A.与列的次序无关

    B.不同的列应有不同的数据类型

    C.不同的列应有不同的列名

    D.与行的次序无关

    答案:C , D , A

    3 6 .在 m y s q l 提示符下,输入 _ _ _ _ 命令,可以查看由 m y s q l 自己解释的命令 ( )

    A.\ ?

    B.?

    C.h e l p

    D.\ h

    答案:C , D , B

    3 7 .下列哪些数据是字符型数据。 ( )

    A.中国

    B.“1 + 2 ”

    C.”c a n ’t”

    D.”张三-李四”

    答案:B , D , C

    3 8 .关于语句 l i m i t 5 , 5 ,说法正确的是

    A.表示检索出第 5 行开始的 5 条记录

    B.表示检索出行 6 开始的 5 条记录

    C.表示检索出第 6 行开始的 5 条记录

    D.表示检索出行 5 开始的 5 条记录

    答案:C , D

    3 9 .S Q L 语言集几个功能模块为一体,其中包括()

    A.C . D C L

    B. B . D M L

    C. D . D N L

    D.A . D D L

    答案:D , B , A

    4 0 .下列说法正确的是()

    A.a l t e r t a b l e u s e r d r o p c o l u m n s e x ;

    B.a l t e r t a b l e u s e r a d d s e x v a r c h a r ( 2 0 ) ;

    C.a l t e r t a b l e u s e r d r o p s e x ;

    D.a l t e r t a b l e u s e r m o d i f y i d i n t p r i m a r y k e y ;

    答案:D , B , A , C

    4 1 .视图一般不用于下列哪些语句 ( )

    A.D E L E T E

    B.S E L E C T

    C.I N S E R T

    D.U P D A T E

    答案:C , D , A

    4 2 .在算术运算符、比较运算符、逻辑运算符,这三种符号中,它们的优先级排列不正确的

    是( )

    A.算术 /逻辑/比较

    B.比较/逻辑/算术

    C.比较 /算术/逻辑

    D.算术/比较/逻辑

    答案:A , C , B

    4 3 .对同一存储过程连续两次执行命令 D R O P P R O C E D U R E I F E X I S T S ,将会( )

    A.第一次执行删除存储过程,第二次产生一个错误

    B.第一次执行删除存储过程,第二次无提示

    C.存储过程不能被删除

    D.最终删除存储过程

    答案:B , D

    4 4 .关于检索结果排序,正确的是 ( )

    A.关键字 D E S C 表示降序, A S C 表示升序

    B.如果指定多列排序,只能在最后一列使用升序或降序关键字

    C.如果指定多列排序,可以在任意列使用升序或降序关键字

    D.关键字 A S C 表示降序, D E S C 表示升序

    答案:A , C

    4 5 .以下语句错误的是()

    ;

    S E L E C T r a n k , A V G ( s a l a r y ) F R O M p e o p l e  H A V I N G A V G ( s a l a r y ) > 1 0 0 0 G R O U P B Y r a n k ;

    A.S E L E C T r a n k , A V G ( s a l a r y ) F R O M p e o p l e G R O U P B Y r a n k  H A V I N G A V G ( s a l a r y ) > 1 0 0 0

    B.S E L E C T r a n k , A V G ( s a l a r y ) F R O M p e o p l e  H A V I N G A V G ( s a l a r y ) > 1 0 0 0 G R O U P B Y r a n k ;

    C.S E L E C T  A V G ( s a l a r y ) F R O M p e o p l e R O U P B Y r a n k  H A V I N G A V G ( s a l a r y ) > 1 0 0 0 ;

    D.S E L E C T r a n k , A V G ( s a l a r y ) F R O M p e o p l e G R O U P B Y r a n k  W H E R E A V G ( s a l a r y ) > 1 0 0 0 ;

    答案:D , B

    4 6 .创建数据表时,下列哪些列类型的宽度是可以省略的。 ( )

    A.D A T E

    B.I N T

    C.C H A R

    D.T E X T

    答案:B , D , A

    4 7 .关于主键下列说法正确的是()

    A.主键的值对用户而言是没有什么意义

    B.主键的主要作用是将记录和存放在其他表中的数据进行关联。

    C.一个主键是唯一识别一个表的每一记录,

    D.主键是不同表中各记录之间的简单指针。

    答案:C , B , D , A

    4 8 .您需要显示从 2 0 0 9 年 1 月 1 日到 2 0 0 9 年 1 2月 3 1日雇佣的所有职员的姓名和雇佣日

    期。职员信息表 t b l E m p l o y e e s 包含列 N a m e 和列 H i r e D a t e ,下面哪些语句能完成该功能

    ( )

    A.S E L E C T N a m e , H i r e D a t e F R O M t b l E m p l o y e e s

    B.S E L E C T  N a m e ,  H i r e D a t e  F R O M  t b l E m p l o y e e s  W H E R E  H i r e D a t e  =’2 0 0 9 - 0 1 - 0 1 ’ O R

    ‘2 0 0 9 - 1 2 - 3 1 ’

    C.S E L E C T N a m e , H i r e D a t e F R O M t b l E m p l o y e e s W H E R E H i r e D a t e B E T W E E N  ’2 0 0 8 - 1 2 - 3 1 ’

    A N D  ‘2 0 1 0 - 0 1 - 0 1 ’

    D.S E L E C T N a m e , H i r e D a t e F R O M t b l E m p l o y e e s W H E R E s u b s t r i n g ( H i r e D a t e , 1 , 4 ) = 2 0 0 9 ;

    答案:C , D

    4 9 .以下哪项是事务特性 ( )

    A.独立性

    B.持久性

    C.原子性

    D.一致性

    答案:C,D,A,B

    4 4 .关于检索结果排序,正确的是 ( )

    A.关键字 D E S C 表示降序, A S C 表示升序

    B.如果指定多列排序,只能在最后一列使用升序或降序关键字

    C.如果指定多列排序,可以在任意列使用升序或降序关键字

    D.关键字 A S C 表示降序, D E S C 表示升序

    答案:A , C

    4 5 .以下语句错误的是()

    ;

    S E L E C T r a n k , A V G ( s a l a r y ) F R O M p e o p l e  H A V I N G A V G ( s a l a r y ) > 1 0 0 0 G R O U P B Y r a n k ;

    A.S E L E C T r a n k , A V G ( s a l a r y ) F R O M p e o p l e G R O U P B Y r a n k  H A V I N G A V G ( s a l a r y ) > 1 0 0 0

    B.S E L E C T r a n k , A V G ( s a l a r y ) F R O M p e o p l e  H A V I N G A V G ( s a l a r y ) > 1 0 0 0 G R O U P B Y r a n k ;

    C.S E L E C T  A V G ( s a l a r y ) F R O M p e o p l e R O U P B Y r a n k  H A V I N G A V G ( s a l a r y ) > 1 0 0 0 ;

    D.S E L E C T r a n k , A V G ( s a l a r y ) F R O M p e o p l e G R O U P B Y r a n k  W H E R E A V G ( s a l a r y ) > 1 0 0 0 ;

    答案:D , B

    4 6 .创建数据表时,下列哪些列类型的宽度是可以省略的。 ( )

    A.D A T E

    B.I N T

    C.C H A R

    D.T E X T

    答案:B , D , A

    4 7 .关于主键下列说法正确的是()

    A.主键的值对用户而言是没有什么意义

    B.主键的主要作用是将记录和存放在其他表中的数据进行关联。

    C.一个主键是唯一识别一个表的每一记录,

    D.主键是不同表中各记录之间的简单指针。

    答案:C , B , D , A

    4 8 .您需要显示从 2 0 0 9 年 1 月 1 日到 2 0 0 9 年 1 2月 3 1日雇佣的所有职员的姓名和雇佣日

    期。职员信息表 t b l E m p l o y e e s 包含列 N a m e 和列 H i r e D a t e ,下面哪些语句能完成该功能

    ( )

    A.S E L E C T N a m e , H i r e D a t e F R O M t b l E m p l o y e e s

    B.S E L E C T  N a m e ,  H i r e D a t e  F R O M  t b l E m p l o y e e s  W H E R E  H i r e D a t e  =’2 0 0 9 - 0 1 - 0 1 ’ O R

    ‘2 0 0 9 - 1 2 - 3 1 ’

    C.S E L E C T N a m e , H i r e D a t e F R O M t b l E m p l o y e e s W H E R E H i r e D a t e B E T W E E N  ’2 0 0 8 - 1 2 - 3 1 ’

    A N D  ‘2 0 1 0 - 0 1 - 0 1 ’

    D.S E L E C T N a m e , H i r e D a t e F R O M t b l E m p l o y e e s W H E R E s u b s t r i n g ( H i r e D a t e , 1 , 4 ) = 2 0 0 9 ;

    答案:C , D

    4 4 .关于检索结果排序,正确的是 ( )

    A.关键字 D E S C 表示降序, A S C 表示升序

    B.如果指定多列排序,只能在最后一列使用升序或降序关键字

    C.如果指定多列排序,可以在任意列使用升序或降序关键字

    D.关键字 A S C 表示降序, D E S C 表示升序

    答案:A , C

    4 5 .以下语句错误的是()

    ;

    S E L E C T r a n k , A V G ( s a l a r y ) F R O M p e o p l e  H A V I N G A V G ( s a l a r y ) > 1 0 0 0 G R O U P B Y r a n k ;

    A.S E L E C T r a n k , A V G ( s a l a r y ) F R O M p e o p l e G R O U P B Y r a n k  H A V I N G A V G ( s a l a r y ) > 1 0 0 0

    B.S E L E C T r a n k , A V G ( s a l a r y ) F R O M p e o p l e  H A V I N G A V G ( s a l a r y ) > 1 0 0 0 G R O U P B Y r a n k ;

    C.S E L E C T  A V G ( s a l a r y ) F R O M p e o p l e R O U P B Y r a n k  H A V I N G A V G ( s a l a r y ) > 1 0 0 0 ;

    D.S E L E C T r a n k , A V G ( s a l a r y ) F R O M p e o p l e G R O U P B Y r a n k  W H E R E A V G ( s a l a r y ) > 1 0 0 0 ;

    答案:D , B

    4 6 .创建数据表时,下列哪些列类型的宽度是可以省略的。 ( )

    A.D A T E

    B.I N T

    C.C H A R

    D.T E X T

    答案:B , D , A

    4 7 .关于主键下列说法正确的是()

    A.主键的值对用户而言是没有什么意义

    B.主键的主要作用是将记录和存放在其他表中的数据进行关联。

    C.一个主键是唯一识别一个表的每一记录,

    D.主键是不同表中各记录之间的简单指针。

    答案:C , B , D , A

    Linux系统管理  第一章Linux系统安装及基本操作

     

    1、写出Linux的主要版本(      ) (选三项)     

    A、RedHat Enterprise Linux B、Novell-SUSE Server 10.1 C、Debian Linux D、Vista

    2、写出存放着Linux系统配置文件存放主目录 (      )(选一项)     

    A、/tmp B、/root C、/etc D、/var

    3、选出代表分区概念中第二块SCSI硬盘中第三个逻辑分区的表示方式 (        )(选一项)     

    A、/dev/hdb3 B、/dev/sda3 C、/dev/sdb3 D、/dev/sdb7

    4、对于以下四句话,选择一个正确的 (        )(选一项)     

    A、Grub的作用是管理系统硬件信息的程序 B、是一个极好的Linux系统引导的管理器

    C、Grub是Linux的一种下载程序 D、Grub是只允许红帽系统使用的系统引导器

    5、写出#shutdown -h now和#halt -p 命令的区别 (      )(选一项)     

    A、没区别 B、一个一关机命令,一个是重启命令

    C、一个是马上就关机,一个是10分钟后关机 D、两者没可比性

    6、Linux的内核具有开发版和稳定版两种,下面(       )版本的Linux内核属于稳定版。(选择二项)     

    A、2.2.11 B、2.6.18 C、2.5.2 D、2.1.129

    7、在RHEL5中系统中.默认使用(       )作为缺省的文件系统类型。(选择一项)     

    A、FAT32 B、NTFS C、EXT3 D、Reiserfs

    8、在RHEL5系统中,以下关于系统中的常用目录及其作用的说法正确的是(      )。 (选择一项)

    A、/boot目录是Linux文件系统的起点,其他所有目录都位于/boot目录下

    B、root用户的宿主目录位于/home下

    C、/root目录用来存放系统启动所必须的文件

    D、/etc目录用于存放系统和各种程序的配置文件

    9、在RHEL5系统中,root用户的宿主目是(      )。(选择一项)     

    A、/boot B、/root C、/ D、/home/root

     

    Linux系统管理 第二章 管理文件和目录

     

    1、在RHEL5中系统中,以下(     )可正确表示grub.conf文件在系统的绝对路径(选择一项)     

    A、./grub.conf B、~/grub.conf C、..grub/grub.conf D、/boot/grub/grub.conf

    2、在RHEL5系统中,文件file1在目录/tmp下,若需要将file1复制到当前目录,并且改名为file2,可以执行(     )

    命令。(选择一项)

    A、cp file1 file2 B、cp /tmp/file1 file2 C、mv file1 file2 D、mv /tmp/file1 file2

    3、在RHEL5系统中,已知cd是Bash的一个内部命令,则当执行“which cd”查询cd命令所在的路径时,其输出结果为(     )。(选择一项)     

    A、/bin/cd B、/usr/bin/cd C、/sbin/cd D、no cd in(/usr/Kerberos/bin:…)

    4、在RHEL5系统中使用vim编辑器,若不需要保存对文件进行的修改,应使用(    )命令强制退出vi编辑器。 (选择一项)      

    A、:q B、:wq C、:q! D、:!q

    5、在RHEL5中,当执行“ll”命令时会看到和执行“ls -l”命令同样的输出结果,这是因为(     )。(选择一项)     

    A、ll是以长格式显示文件或目录的一个特殊命令 B、ll是指向ls命令的一个特殊符号链接

    C、ll是通过alias命令设置的简化ls –l操作的命令别名 D、ll是Linux系统内核中的一个特殊函数

    6、在RHEL5系统中,使用vim命令启动vim编辑器程序后,vim缺省处于命令模式,命令模式下输入“i”命令可进入vim编辑器的输入模式,而输入模式下使用(      )键可以返回到vim的命令模式。(选择一项)     

    A、ESC B、Tab C、F1 D、Backspace

    7、下面哪个文件夹默认是Linux系统的外部命令(      ) (选三项)     

    A、/bin B、/share/bin C、/usr/bin D、/usr/local/bin   

    8、下面命令中哪个是命令的帮助方法(      ) (选三项)     

    A、help 不会的命令  B、不会的命令 –help      C、man 不会的命令         D、sos 不会的命令

    9、ls -l 和ls命令能多看到什么信息(      ) (选三项)     

    A、多看到档案创建的时间 B、看到用户的所有者   C、看到文件的大小  D、看到文件的颜色(例如红色,绿色)

    10、#mkdir -p /tmp/aa/bb/cc 可以做到什么效果 (      )(选三项)     

    A、如果aa/bb/不存在,就创建 B、如果有aa/bb/目录,就清空了这些目录

    C、这条命令一定可以创建成功 D、能够创建cc这个文件夹

    11、#du -ah /tmp 可以做到什么(      ) (选二项)     

    A、创建/tmp这个文件夹 B、能够查询/tmp文件夹里所有档案的大小

    C、可以看到/tmp一共有多少个档案 D、这条命令有语法错误

    12、#rm –rf和#rm -f有什么区别 (      )(选一项)     

    A、rm -f可以删除所有档案 B、rm -rf 可以删除所有的档案

    C、如果用户有权限rm -f可以删除所有档案 D、如果用户有权限rm -rf 可以删除所有的档案

    13、写出要查看系统中至少20M文件的信息(      ) (选一项)     

    A、#find / -type 20M B、#find / -daxiao 20M C、#find / -max +20M D、#find / -size +20M

    14、要查看出文件的内容的命令的哪些(      ) (选二项)     

    A、cat B、look C、less D、see

    15、写出下面命令的作用#tar zcf aa.tar.gz  /etc  /boot (      ) (选一项)     

    A、压缩/etc/文件夹下的所有信息 B、压缩/etc和/boot下的所有信息到aa.tar.gz

    C、解压aa.tar.gz所有信息解压到/etc和/boot文件夹下 D、命令的语法有错

    16、哪一种是vim编辑器的工作模式 (      ) (选二项)     

    A、修改模式 B、输入模式 C、命令模式 D、剪切模式

    17、vim中的尾行模式中的set nu的意思是什么(      ) (选一项)     

    A、设置行号 B、修改内容 C、显示行号 D、查询内容

    18、如果文档有几十万字,不过是2009年的,如果想把年份全都换成2010年需要用最快的方法怎么做(      )

     (选一项)     

    A、:/2009/2010/g B、:/2009/2010/all C、:s/2009/2010/g D、:%s/2009/2010/g

    19、在RHEL5系统中,若要列出当前目录下所有扩展名为.txt的文件,可以执行(     )命令。(选择一项)

    A、ls  *.txt B、cat  *.txt C、find ~/ *.txt D、ls  ?.txt

    20、在RHEL5系统中使用vi编辑文件时,若要将第7到10行的内容一次性删除,可以在命令模式下先将光标移动到第7行,再使用(      )按键命令(选择一项)

    A、dd B、4dd C、de D、4de

     

    Linux系统管理 第三章 管理文件和目录

     

    1、在RHEL5系统中从源代码安装软件时,一般都有一些通用的步骤,其中(      )的作用是将编译好的二进制程序等文件复制到系统的安装目录。(选择一项)    

    A、tar jxvf *.tar.bz2 B、./configure C、config D、make install

    2、在RHEL5系统中,要安装软件包mysql-4.1.7-4.RHEL5.1.i386.rpm 之前,可以先执行(      )命令查询该软件包的详细描述信息。(选择一项)     

    A、rpm –qi mysql B、rpm –qpi mysql

    C、rpm –qi mysql-4.1.7-4.RHEL5.1.i386.rpm D、rpm –qpi mysql-4.1.7-4.RHEL5.1.i386.rpm

    3、RPM这个名词怎么解析(      )  (选二项)     

    A、专门为Debian操作系统安装软件包 B、专门为红帽或是红帽衍生产生产品进行软件包的管理

    C、RPM翻译过来就是远程数据包管理 D、RPM翻译过来就是红帽软件包管理

    4、如果是要查看已经安装的vsftpd这个服务器版本信息 (      ) (选一项)     

    A、#rpm -qi vsftpd B、#rpm -qa vsftpd C、#rpm -qc vsftpd D、#rpm -ql vsftpd

    5、如果有一个软件名叫aa.rpm,现在我需要知道安装的时候都装了哪些文件 (      )(选一项)            

    A、#rpm -qpi aa.rpm B、#rpm -qpl aa.rpm C、#rpm -qpc aa.rpm D、#rpm -qpd aa.rpm

    6、rpm -ivh --nodeps gcc.rpm 这条命令的作用是什么(      ) (选一项)     

    A、删除gcc.rpm这个包 B、安装gcc.rpm这个包

    C、强制安装gcc.rpm这个包 D、不安装依赖关系来安装gcc.rpm这个包

    7、如果要安装一个qq.rpm这个软件哪些命令可以用 (      )(选三项)     

    A、#rpm -ivh qq.rpm B、#rpm -i qq.rpm C、#rpm -U qq.rpm D、#rpm -h qq.rpm

    8、如果要用源码包安装一个abc.tar.gz的软件,默认安装的顺序是 (      )(选一项)     

    A、配置—安装—编译 B、安装—配置—编译   

    C、解压—配置—安装—编译 D、解压—配置—编译—安装

    9、在RHEL5系统中从源代码安装软件时,编译成功后执行安装的命令一般是(      )(选择一项)     

    A、./configure B、make C、setup D、make install

    10、在RHEL5系统中可以使用rpm命令对RPM软件包进行管理,包括查询,安装,卸载,和升级软件包等,命令“rpm -qa”实现了对RPM包的(     )功能。(选择一项)     

    A、查询 B、安装 C、卸载 D、升级

    11、在RHEL5系统中。若要查询/etc/dovecot.conf 是由哪个RPM软件包安装的。可以使用(    )命令。(选

    择一项)

    A、rpm –qf /etc/dovecot.conf B、rpm –qi /etc/dovecot.conf

    C、rpm –qa /etc/dovecot.conf D、rpm –ql /etc/dovecot.conf

    12、在RHEL5系统中,若需要卸载某个RPM软件包,应使用rpm命令的(      )选项(选择一项)

    A、-e B、-E C、-F D、U

    13、RHEL5系统中,使用命令rpm –e删除软件包时返回错误提示:“Failed dependencies”,这可能是由于(      )选择一项

    A、该软件包已不存在 B、该软件包正在运行,不能删除

    C、该软件包与其他软件包之间存在依赖关系 D、该软件包已损坏

    14、在RHEL5系统中,若要查询系统中安装的所有hp打头的RPM软件包,可以使用(      )命令.(选择一项)

    A、rpm –qa | grep "hp"  B、rpm –qa | grep "^hp" C、rpm –qa | head "hp" D、rpm –qa | head "^hp"

     

    Linux系统管理 第四章 管理用户和文件权限

     

    1、在RHEL5 系统中,用户zhangsan 属于xueyuan组,使用ls –l 命令查看文件abc的属性如下图所示,

    [root@server ~]#ls -l abc

    -rw-r-xr-- 1 kenthy xueyuan 14 May 11 14:26 abc

    则zhangsan 对abc文件具有(      )权限。(选择一项)     

    A、可读可写 B、可读可执行 C、只读 D、可读可写可执行

    2、在RHEL5系统中,若在“/etc/shadow”文件内jerry用户的密码字串前添加“!!”字符,将导致(    )结果。(选择一项)     

    A、jerry用户不需要密码即可登录 B、jerry用户的账号被锁定,无法登录

    C、jerry用户可以登录,但禁止修改自己的密码 D、jerry用户的有效登录密码变为“x”

    3、在RHEL5系统中,执行“userdel yang”命令后将在系统中完成(     )操作。 (选择一项)     

    A、删除用户账号yang B、删除用户yang的宿主目录

    C、删除属主为yang的所有文件 D、删除yang所属的附加组账号

    4、在RHEL5系统中,执行ls –l myfile 命令后显示结果如下:

    -rwxrw-r-- 1 root root 0 Mar 29 20:21 myfile

    则非root组的用户teacher对文件myfile具有(      )权限。(选择一项)      

    A、只读 B、可读可写 C、可执行 D、可读可写可执行

    5、对于/etc/passwd中 student:x:600:1213::/home/student:/bin/bash,其中:1213:的作用是什么意思(      ) (选一项)     

    A、用户的密码失效期限 B、用户的系统帐号过期天数

    C、用户的组号ID号 D、用户的用户ID号

    6、如果要删除一个用户名为bob且把他的宿主目录全都删除,以下哪条命令可以做到(      ) (选一项)      

    A、#userkill bob B、#userdel -r bob C、#userdel -R bob D、#userdel -D bob

    7、想把一个用户加入到组下的命令是什么 (      )(选一项)     

    A、#gpasswd -a 组名 用户名 B、#gpasswd -add 用户名 组名

    C、#gpasswd -in 用户名 组名 D、#gpasswd -a 用户名 组名

    8、下面说法中哪一项是完全正确的 (      )(选一项)     

    A、w命令是可以看到用户名,终端,执行命令等各种统计信息

    B、finger可以看到用户名、终端,看不到登陆时间

    C、who命令可以看到登陆时间和远程用户正在使用的命令

    D、users命令可以看到远程登陆的用户名和密码

    9、对于下面命令chmod ug+rw -R /tmp/test/ (      )(选一项)     

    A、对于/tmp/test文件夹的用户位和组位加入读取和写入的权限

    B、对于/tmp/test文件夹的用户和其它位加入读取和写入的权限

    C、这样改好之后所有人都可以访问/tmp/test这个文件夹

    D、这样改好后属组位一定可以打开/tmp/test这个文件夹

    10、在RHEL5系统中,执行ls -l myfile 命令后显示结果如下:

    -rwxr-xr-- 1 root root 0 mar 20 19:21 myfile

    则属于root组的用户lisi对文件myfile 具有(    )权限(选择一项)      

    A、可读可写 B、可读可执行 C、只读 D、可读可写可执行

    11、在RHEL5系统中,若需要禁用已离职员工小刘的系统账号xiaoliu,可以执行以下(   ) 命令。(选择二项)     

    A、usermod -L xiaoliu   B、usermod -U xiaoliu      C、passwd -l xiaoliu D、passwd -u xiaoliu

    12、在RHEL5系统中,使用useradd命令添加用户账号时并没有为用户设置口令,因此必须使用(    )命令设置口令后,该用户账号才可以登录系统 (选择一项)

    Apasswd B、useradm C、password D、userpwd

    13、在RHEL5系统中,执行以下(     )命令可以将现有的用户jerry的账户进行锁定。(选择二项)

    A、passwd –l jerry B、chage –l jerry Cusermod –L jerry D、chattr –L jerry

    14、在RHEl5系统中,执行命令ls –l my.sh后的返回结果如下:

    -rw-rw-r-- 1 zhang root 55 2006-02-21 my.sh

    若要更改my.sh文件的权限以便属主用户可以运行该程序,应执行(     )命令。(选择一项)

    A、chown root my.sh B、chmod g+x my.sh C、chmod ug+w my.sh   D、chmod u+x my.sh

    15、在RHEL5系统中,执行(    )操作可以将/mailbox文件夹的属组设置为postfix。(选择一项)

    A、chmod postfix /mailbox B、chown :postfix /mailbox

    C、groupmod postfix /mailbox D、newgrp postfix /mailbox

    16、在RHEL5系统中,管理员新创建了一个脚本文件hello.sh,执行ls –l hello.sh命令查看时显示信息如下:

    -rw-r--r--   1   root  root  17  10月  14  19:55  hello.sh

    若要使root用户对该文件具有可执行权限,应使用(      )命令。(选择一项)

    A、chown  root  hello.sh B、chgrp   root  hello.sh

    C、chmod  u+x  hello.sh D、chmod  o+x  hello.sh

    17、在RHEL5系统中,执行”ls –l myfile ”命令后显示结果为

    “-rw-r----”root zhangsan 7 07-04 20:10 myfile”,

    用户zhangsan对文件myfile的权限应为(       )。(选择一项)

    A、可以查看文件内容 B、可以修改文件内容 C、可以执行文件 D、可以删除文件

    18、在RHEL5系统中,若要将当当前目录下file1文件的属主改变成std2,可以执行命令。(      )(选择一项)

    A、chmod std2 file1 B、chown std2 file1 C、chown file1 std2 D、chgrp std2 file1

     

    Linux系统管理 第五章 管理磁盘和文件系统

     

    1、在RHEL5中系统中,执行(       )命令可以查看用户的磁盘配额信息。(选择一项)     

    A、quotacheck -u test B、quotacheck -g test C、quota -u test D、quota -g test

    2、在RHEL5中,使用LVM磁盘管理机制,通过vgcreate可以组合多个(     )而创建一个卷组。(选择一项)

    A、物理卷 B、基本单元 C、逻辑卷 D、跨区卷

    3、在RHEL5中,使用LVM磁盘管理机制,可以使用mkfs命令在(   )中创ext3格式的文件系统。(选择一项)     

    A、基本单元 B、物理卷 C、逻辑卷 D、卷组

    4、在RHEL5系统中,为分区添加磁盘配额功能支持并执行“quotacheck –augvc”命令以后,在该分区的根目录下将会建立(     )数据文件。(选择二项)     

    A、quota.user B、aquota.user C、quota.group D、aquota.group

    5、#fdisk -l中如何查看哪一个分区是启动分区(      ) (选一项)     

    A、分区名后加$ B、分区名后加@ C、分区名后加# D、分区名后加*

    6、在命令的fdisk /dev/sdc划分分区时,用什么参数可以修改分区类型 (      )(选一项)     

    A、t B、n C、p D、m

    7、使用什么命令可以把/dev/sdb5格式化成交换分区(      ) (选一项)     

    A、fdisk /dev/sdb5 B、mkfs /dev/sdb5 C、formart /dev/sdb5 D、mkswap /dev/sdb5

    8、对于磁盘配额中的软限制和硬限制,说出他们的区别 (      )(选二项)     

    A、没有区别

    B、如果超出软限制,默认情况7天之内还可以继续存储

    C、硬限制就是对于用户和组的最大存储极限,不允许超过

    D、软限制是针对于软件,硬限制是针对于硬件

    9、我们如果使用root用户来只查看bob用户配额情况的命令是什么 (      )(选一项)     

    A、#quota -u bob B、#edquota -u bob C、#seequota -u bob D、#lsquota -u bob

    10、LVM的名词定义是什么 (      )(选一项)     

    A、Linux虚拟化管理 B、Linux vm软件管理 C、就是逻辑卷管理器 D、就是Linux开发管理器

    11、下面哪条命令是动态增加/dev/aa/bb的容量大小(要加增加10G) (      )(选一项)     

    A、vgextend -L +10G /dev/aa/bb B、lvextend -max +10G /dev/aa/bb

    C、lvextend -Add +10G /dev/aa/bb D、lvextend -L +10G /dev/aa/bb

    12、在RHEL5系统中,为了便于动态扩展磁盘空间,可以引入LVM逻辑卷管理机制,但不应将(    )分区建立在LVM卷中。(选择一项)

    A、/ B、/boot C、/home D、/var

    13、在RHEL5系统中,执行带(     )选项的fdisk命令可以查看主机中磁盘的分区表信息。(选择一项)

    A、–l B、–n C、–p D、–w

    14、在RHEL5系统中,执行(     )命令后将扫描当前系统中建立的逻辑卷并显示出相关信息。(选择一项)

    A、pvscan B、vgsan C、lvscan D、partprobe

    15、在RHEL5系统中,使用lvextend命令为指定的逻辑卷动态扩容以后,通过df命令查看时该分区显示的大小并未变化,还需要进行(     )操作以便系统能够识别新的分区的大小。(选择一项)

    A、apartprobe B、resize2fs C、lvscan D、reboot

     

    Linux系统管理 第六章  管理进程和计划任务

     

    1、在RHEL5系统中,管理员发现PID为2041的进程没有响应,则执行(    )命令后可以强行中止该进程。(选择一项)     

    A、killall +9 2041 B、killall -9 2041 C、kill +9 2041 D、kill -9 2041

    2、在RHEL5系统中,要查看系统当前的运行级别,可以使用(    )命令。(选择一项)     

    A、init B、init 0 C、runlevel D、level

    3、若希望RHEL5系统启动后自动进入图形界面模式,可以将系统启动进行级别设置为(     )。(选择一项)     

    A、6 B、5 C、3 D、0

    4、对于命令init 0与init 6 的区别是什么? (      ) (选一项)     

    A、一个是关机命令一个是重启命令 B、只有root可以使用这两条命令

    C、一个是关机命令,一个是注消命令 D、这两个命令在Windows系统中起到关机和注消的操作

    5、如果把一个命令放入到开机启动中(runlevel是5),以下哪两种方面可以实现 (      )(选二项)     

    A、echo 命令 >>/etc/rc.local B、echo 命令 >>/etc/rc.d/rc5.d/S00110011

    C、echo 命令 >>/etc/startup D、echo 命令 >>/etc/sysconfig/network-scripts/startup

    6、关于以下命令#chkconfig --level 2345 服务 on的作用是什么 (      )(选一项)     

    A、把这个服务加入到2345 组中 B、把这个服务放到2345用户进行管理

    C、把这个服务放入到2345启动级别中加以启动 D、开机进行到图行化的时间,这个服务一定可以启动起来

    7、top命令和ps命令的区别是什么 (      )(选一项)     

    A、top是动态显示进程状态,,ps是静态显示进程状态    B、top命令比ps命令占用更多的系统资源

    C、两者使用时没太多的区别,都是看进程的数量     D、top命令作用就是告之前十名进程在系统中的占用

    8、如果要在每个星期一凌晨两点执行cc命令,记划任务/etc/fstab中应该如何添写 (      )(选一项)     

    A、00 02 * * * cc B、* * * 02 01 cc C、02 00 * * * cc D、00 02 * * 01 cc

    9、MBR的中文解释是什么 (      )(选一项)     

    A、微软件基本远程系统 B、基本模式远程系统 C、启动引导区域 D、企业管理系统

    10、若希望RHEL5系统启动后自动进入字符界面模式,可以将系统的默认运行级别修改为(      )(选择一项)     

    A、6 B、5 C、3 D、0

    11、在RHEL5系统中,若需要在每天凌晨1:30由系统自动将目录“/images”中的内容压缩备份到“/bak”目录下,可以设置以下(      )cron任务。(选择一项)     

    A、30 1 * * * tar czf /bak/images.tar.gz  /images/ B、30 * 1 * * tar czf /bak/images.tar.gz  /images/

    C、1 30 * * * tar cjf /bak/images.tar. bz2 /images/ D、* 30 1 * * tar cjf /bak/images.tar. bz2 /images/

    12、在RHEL5系统中,执行(      )命令可用于查看当前运行进程的动态信息。(选择一项)

    A、ps B、top C、pstree D、tasklist

     

    Linux系统管理 第七章 编写Shell管理脚本(一)

     

    1、在RHEL5系统中,以下(       )操作可以将cmd1命令的输出结果作为cmd2命令的输入。(选择一项)     

    A、cmd1 | cmd2 B、cmd2 & cmd1 C、cmd1 > cmd2 D、cmd2 < cmd1

    2、在RHEL5系统中,Shell变量在不需要使用时可以被清除,下列(       )命令可将变量myname清除。

    (选择一项)     

    A、set myname B、unset myname C、clean myname D、clear myname

    3在RHEL5系统中,Shell环境变量(      )的值表示用户当前所在的目录。 (选择一项)     

    A、USER B、SHELL C、PWD D、PS1

    4、在RHEL5系统中,默认使用(       )作为新建用户账户的登录shell。(选择一项)

    A、/bin/sh B、/bin/bash C、/bin/csh D、/bin/zsh

    5、在RHEL5系统中,命令“export myname=mike”等效于以下(      )命令。(选择一项)

    A、myname=mike

    B、export myname

    C、myname=mike

    export myname

    D、export mike=myname

    6、在RHEL5系统中,“run.sh”是可执行的Shell脚本,在执行./run.sh file1 file2 file3命令的过程中,变量$1的值应为(      )。(选择一项)

    A、run.sh B、file1 C、file2 D、file3

    7、在RHEL5系统的命令界面中,使用(      )快捷键可以实现快速清屏   (选择一项)

    A、Ctrl +U B、Ctrl +K C、Ctrl +L D、Ctrl +C

    8、在RHEL5系统中,若要分页显示当前所有的Shell变量,可执行(       )命令。(选择一项)

    A、echo $vars B、set | more C、echo $*|more D、echo *| more

    9、在RHEL5系统中,用户当前使用的Shell环境为Bash,若需要临时将shell环境更改为csh时,可以就、

    进行(      )操作。(选择一项)

    A、使用vi编辑器修改passwd文件中的用户Shell设置 B、在当前Shell环境中执行csh程序即可

    C、使用chsh命令更改用户的缺省Shell,并重新进行登录 D、使用chsh命令更改用户的缺省Shell

    10、在RHEL5系统的命令行界面中,若编辑的命令行字串较长,可以使用(      )符号进行强制换行,以便于阅读。(选择一项)

    A、# B、$ C、\ D、>

     

    Linux系统管理 第八章 编写Shell管理脚本(二)

     

    1、shell 编程中gt整数比较代表什么 (      )(选一项)     

    A、大于 B、小于 C、等于 D、不等于

    2、补齐下列循环 (选一项)

    for i in “a” “b” “c”

    do

    echo “string is $i”

    (     )      

    A、down B、done C、finish D、ok

    3、写出下列shell的作用 (      )(选一项)

    i=1

    while [ $i -le 19 ]

    do

    useradd stu$i  echo “123456” | passwd --stdin stu$i & >/dev/null

    let i++

    done      

    A、为系统创建20个用户 B、为系统增加19个用户,并给初始密码为123456

    C、为系统增加20个组 D、为系统增加19个用户,并给组初始密码为”用户名123456”

    4、break命令在shell中作用是什么 (      )(选一项)     

    A、完成 B、结果 C、暂停 D、跳出当前循环

     

    Linux系统管理 第九章  系统故障分析与排查

     

    1、在RHEL5系统中,对于没有使用独立日志文件的一些服务程序,通常会将日志消息发送到公共日志文件(     )中。(选择一项)     

    A、/var/log/dmesg B/var/log/messages C、/var/log/public D、/var/log/utmp

    2、在RHEL5系统中日志文件(      )用于记录Linux系统在引导系统过程中的各种事件信息。选择一项    

    A、/var/log/messages B、/var/log/secure C/var/log/dmesg D、/var/log/maillog

    3、在RHEL5中系统中,执行下列(      )操作可以查看到当前主机的剩余可用内存数(选择二项)      

    A、free B、uptime C、vmstat D、cat/proc/loadavg

    4、#fsck -yt ext3 /dev/sdb1 (      )(选一项)     

    A、格式化/dev/sdb1分区     B、删除/dev/sdb1分区

    C、命令不对 D、修复位于/dev/sdb1下的ext3系统

    5、检查硬盘坏道的命令是什么(      ) (选两项)     

    A、chkconfig B、check C、mkfs D、badblocks

    6、ac命令的作用是什么 (      )(选一项)     

    A、可以做计划任务 B、可以设置权限

    C、可以统计各个登陆用户总计连接时间 D、可以查看用户登陆后都使用了什么命令

    7、备份MBR(启动引导管理),要使用什么命令(      ) (选一项)     

    A、cp B、copy C、dd D、xcopy

    8、/etc/grub/grub.conf中的kernel的作用是什么(      ) (选一项)     

    A、指定在启动菜单中显示的操作系统名称 B、包括grub存放的位置

    C、包括内核所存放的位置 D、包括临时系统镜像文件存放地

    9、在RHEL5系统中,(     )目录用于存放系统启动时需要的内核、菜单配置等文件。(选择一项)

    A、/home B、/sbin C、/root D、/boot

    10、在RHEL5系统中,查看grub.conf配置文件的操作及结果如下图所示,则根据此配置当(    )时将会要求密码验证。(选择一项)

    [root@localhost ~]# cat /boot/grub/grub.conf

    default=0

    timeout=5

    splashimage=(hd0,0)/grub/splash.xmp.gz

    password  --md5 $1$fbv8V/$kBu/0KlnjWNS5GLJs2Tq41

    title Red Hat Enterprise Linux Server

    root (hd0,0)

    kernel /vmlinuz-2.6.18-8.el5 ro root=/dev/hda1 rhgb quiet

    initrd /initrd-2.6.18-8.el5.img

    A、从图形模式切换到单用户模式 B、进入“Red Hat Enterprise Linux Server”系统

    C、GRUB引导过程中需要修改启动参数 D、完成加电自检后进入GRUB菜单

    11、使用RHEL5安装光盘引导系统时,在“boot:”提示符后输入(     )可以用于进入急救模式,以便对硬盘中的Linux系统进行修复    (选择一项)

    A、linux B、linux dd Clinux  rescue D、linux  secure

    12、通过RHEL5安装光盘在急救模式引导系统时,默认将硬盘上待修复的Linux根文件系统挂载到(     )目录。(选择一项)

    1. /mnt/ B、/mnt/system C、/mnt/sysimage D、/tmp/root

    Linux网络服务 第一章Linux基本网络配置

     

    1、在RHEL5系统中,dhcpd服务的主配置文件中有一行内容为option routers 192.168.1.254,其作用主要是指用于指定客户端的(      )。(选择一项)                        

    A、IP地址 B、子网掩码 C、DHCP服务器地址 D、默认网关地址

    2、在RHEL5系统中,以下(      )操作可用于添加默认网关记录。(选择二项)     

    A、route add default gw 192.168.4.1 B、route add –host 192.168.4.1

    C、route add –net 0.0.0.0/0 gw 192.168.4.1 D、ifconfig eth0 gw 192.168.4.1

    3、在RHEL5系统中,若要配置本机通过DHCP方式自动获取IP地址,可以在网卡配置文件ifcfg-eth0中设置(      )并重启网络服务。(选择一项)     

    A、ONBOOT=dhcp B、TYPE=dhcp C、BOOTPROTO=dhcp D、DHCPARGS=eth0

    4、下面网卡配置选项当中,(       )选项是用来设置网关的参数。(选择一项)     

    A、NETMASK B、IPADDR C、GATEWAY D、ONBOOT

    5、修改了网卡eth0的参数后,使用下面(     )命令,可以使修改内容生效。(选择二项)     

    A、ifconfig eth0 B、route –n  C、ifdown eth0;ifup eth0 D、service network restart

    6、在dhcp主配文件当中,使用(      )可以进行动态分配IP地址区域的设置。(选择一项)       

    A、default-lease-time B、max-lease-time C、subnet D、host

    7、在一台RHEL5服务器上通过RPM方式安装了DHCP软件包,在对DHCP服务器进行正确配置后,可以执行(      )命令启动DHCP服务器。(选择一项)     

    A、dhcp B、dhcp start C、service dhcpd start D、service dhcpd stop

     8、主机通过DHCP协议动态获得的IP地址是有租期限制的,租期过半时主机应再次发出请求,在linux服务器上缺省情况下,下面(      )是存放DHCP服务器的客户租期数据信息。(选择一项)     

    A、/etc/dhcpd.conf B、/etc/sysconfig/dhcpd

    C、/etc/dhcp/dhcpd.leases D、/var/lib/dhcpd/dhcpd.leases

    9、在linux系统中,DHCP服务器可以提供的服务包括(      )。(选择三项)     

    A、提供DNS、网关信息

    B、为特定客户机提供固定IP地址

    C、为主机提供动态IP地址

    D、为主机设置防火墙

    E、提供邮件服务器地址信息

    10、在RHEL5系统中,执行以下(     )操作后,可以开启本机的路由转发功能。(选择两项)     

    A、/etc/init.d/routed start B、echo 1 > /proc/sys/net/ipv4/ip_forward

    C、sysctl -w net.ipv4.ip_forward=1 D、echo "net.ipv4.ip_forward=1" > /etc/sysctl.conf

    11、在RHEL5系统中构建DHCP服务器,若要将客户端使用的DNS服务器地址设为192.168.2.1和202.106.0.20,应在dhcp.conf文件中进行(      )配置。(选择一项)

    A、option domain-name-servers 192.168.2.1 202.106.0.20;

    B、option domain-name-servers 192.168.2.1;

       option domain-name-servers 202.106.0.20;

    C、option domain-name-servers 192.168.2.1,202.106.0.20;

    D、option domain-name-servers {192.168.2.1;202.106.0.20;}

    12、在RHEL5系统中,若要将本机配置成DHCP中继服务器,以下(      )操作不是必须的。(选择二项)

    A、启用ip_forward以支持数据包转发

    B、设置/etc/dhcpd.conf配置文件,并启动dhcpd服务

    C、设置/etc/sysconfig/dhcrelay配置文件,并启动dhcrelay服务

    D、修改/etc/sysconfig/network-scripts/ifcfg-eth0,设置BOOTPROTO=dhcp

    13、在RHEL5系统中,使用(     )命令可以跟踪从当前主机到目标主机的路由。(选择一项)

    A、ping B、ifconfig C、traceroute D、arp

    14、在RHEL5系统中,若要查看当前主机所有(包括非活动的)网络接口的信息,可以执行(    )命令  (选择一项)

    A、ipconfig B、ipconfig  / all C、ifconfig D、ifconfig  -a

    15、在RHEL5系统中构建DHCP中继服务器时,(     )配置行用于指定eth0 eth1接口提供中继服务。(选择一项)

    A、DHCPDARGS=”eth0 eth1” B、DHCRELAY=”eth0 eth1”

    C、RELAYSERVERS=”eth0 eth1” D、INTERFACES=”eth0 eth1”

    16、在RHEL5系统中,为了实现DHCP客户端每次都能从DHCP服务器获得同样的IP地址.应进行(     )设置(选择一项)

    A、在DHCP客户端设置要请求的IP地址

    B、使用DHCP服务器的IP地址自动分配功能

    C、在DHCP服务器的配置文件中将客户端的MAC地址与IP地址进行"绑定"

    1. 在DNS服务器中对DHCP客户端获得的IP地址进行动态解析

     

    Linux网络服务 第二章 构建文件服务器

     

    1、在RHEL5系统中构建基于虚拟用户的vsftpd服务器时,使用(     )配置项可以设置虚拟用户所上传文件的默认权限掩码。(选择一项)     

    A、anon_umask B、local_umask C、virtual_umask D、upload_umask

    2、在RHEL5系统中,若要连接Windows主机的共享目录share,并以账号user1的身份登录,可以使用(    )命令。 (选择一项)     

    A、smbclient //192.168.1.200/share –U user1 B、smbclient \\192.168.1.200\share –U user1

    C、smbclient //192.168.1.200/share –u user1 D、smbclient \\192.168.1.200\share –u user1

    3、在RHEL5系统中构建vsftpd服务器,主配置文件vsftpd.conf中包含

    ‘userlist_enable=YES’

    ‘userlist_deny=NO’的配置,用户列表文件user_list中包含有名为benet的用户,则根据上述配置,以下正确的是(     )(选一项)     

    A、允许所有用户登录 B、禁止benet用户登录 C、仅允许benet用户登录 D、禁止任何用户登录

    4、在RHEL5 系统中,若要重新启用之前被禁用的Samba用户账户beney, 可以使用(     )命令(选择一项)     

    A、smbpasswd -e beney   B、smbpasswd -d beney C、smbpasswd -a beney  D、smbpasswd -x beney

    5、网络管理员在RHEL5系统中配置了vsftpd服务器,并建立了一个虚拟用户userl. 现在他希望userl用户可以从该FTP服务器上传文件文件,应用使用(      )配置项来实现。(选择一项)    

    A、anon_world_readable-only=NO B、anon_download_enable=YES

    C、anon_write_enable=YES D、anon_upload_enable=YES

    6、在公司内部有Linux和windows两种操作系统,希望在它们之间能够方便的相互传输文件,而又不需要在windows上安装其它软件即可以完成,那么需要在Linux机器上提供哪种文件共享服务 (     )。(选择二项)     

    A、NFS服务 B、Samba服务 C、Proxy服务 D、Ftp服务

    7、某公司的网络管理员小李,利用RHEL5和vsftpd安装了一台文件服务器,用于存放公司的产品研发资料。根据公司的管理规定,只允许benet部门的用户访问这台服务器。为了达到这个目的,小李可以配置 (    )。(选择一项)     

    A、在/etc/vsftpd/vsftpd.conf中设置userlist_deny=YES,将/etc/vsftpd/ftpusers修改为只包含benet部门的用户      

    B、在/etc/vsftpd/vsftpd.conf中设置userlist_deny=NO,将/etc/vsftpd/ftpusers修改为只包含benet部门的用户      

    C、在/etc/vsftpd/vsftpd.conf中设置userlist_deny=YES,将/etc/vsftpd/user_list修改为只包含benet部门的用户      

    D、在/etc/vsftpd/vsftpd.conf中设置userlist_deny=NO,将/etc/vsftpd/user_list修改为只包含benet部门的用户   

    8、在FTP客户端上能把本地的多个文件上传到远程计算机上,使用命令是(     )(选择一项)      

    A、mput B、mget C、put D、get

    9、在RHEL 5中使用匿名登录ftp时,用户名可以选下列中的(      )。(选择二项)     

    A、anonymous B、ftp C、root D、guest

    10、当小杜对Samba服务器进行配置后,需要启动Samba服务器并确保该服务器程序在下次Linux系统启动后能够自动启动,则小杜应该进行(      )操作。(选择两项)     

    A、执行命令“/etc/init.d/smb start”  B、执行命令“/etc/init.d/smbd start”

    C、chkconfig --level 35 smb on D、chkconfig --level 35 smbd on

    11、使用SAMBA服务器,一般来说,可以提供 (      )。(选择二项)     

    A、域名服务 B、文件共享服务 C、打印服务 D、IP地址解析服务

    12、在smb.conf文件中,我们可以通过设置 (    )来控制可以访问samba共享服务的合法主机。(选择一项)     

    A、allowed B、hosts valid C、hosts allow D、public

    13、Samba服务器的默认安全级别是 (     )。(选择一项)     

    A、share B、user C、server D、domain

    14、测试Samba的配置是否有问题,应该使用(     )命令?(选择一项)     

    A、testsamba B、testparm C、smbtest D、parmtest

    15、Samba 服务器可以在Linux/Unix 系统中提供Windows 文件共享服务,在RHEL5 系统中默认安装了Samba 服务器和客户机所需的软件包,在与Samba 服务器相关的软件包中,(    )是Red Hat公司专门为Samba 服务器提供的配置工具。(选择一项)     

    A、samba-common B、samba C、samba-client D、system-config-samba

    16、在RHEL5系统中,使用以下(   )命令可以查看Samba服务器192.168.0.1的共享资源列表。(选择一项)     

    A、smbget -L 192.168.0.1 B、smbclient -L 192.168.0.1

    C、smbmount -S 192.168.0.1 D、smbpasswd -list 192.168.0.1

    17、在RHEL5系统中构建vsftpd服务器,若需要限制最多允许300个客户端同时连接,应该在vsftpd.conf文件中运行(    )设置。  (选择一项)

    A、max_clients=300 B、max_per_ip=300 C、local_max_rate=300 D、anon_max_rate=300

    18、在RHEL5系统中构建vsftpd服务器,以知文件/etc/vsftpd/ftpusers中包含lisi用户,文件/etc/vsftpd/user_list中包含lisi用户和wangwu用户,且在vsftpd.conf配置文件中作如下设置,则对于该FTP服务器,以下说法正确的是(     )。(选择一项)

    local_enable=YES

    userlist_enable=YES

    userlist_deny=NO

    A、lisi和wangwu用户都可以登录 B、lisi用户可以登录,wangwu用户不能登录

    C、lisi用户不能登录,wangwu用户可以登录 D、lisi和wangwu用户都不能登录

    19、在RHEL5系统中,若要删除名为sony的Samba用户账户,可以使用(     )命令。(选择一项)

    A、smbpasswd –d sony  B、smbpasswd –e sony C、smbpasswd –x sony  D、smbpasswd –a sony

    20、在RHEL5系统中,samba软件包提供的(     )服务程序负责为windows网络或工作组内的主机提供主机名称解析。(选择一项)

    A、smb B、smbd C、nmbd D、samba

    21、在RHEL5系统张中构建Samba文件共享服务器,使用带(     )选项的smbpasswd命令,可用于添加Samba用户帐户。(选择一项)

    A、-d B、-a C、-r D、-e

    22、在RHEL5系统中构建vsftpd服务器,若需要限制本地用户的最大传输速率为30KB/S,可以在配置文件中进行(       )设置.( 选择一项)

    1. max_client=30 B、max_per_ip=30 C、local_max_rate=30000 D、local_max_rate=30

     

    Linux网络服务 第三章 构建域名服务器

     

    1、在RHEL5系统中构建BIND域名服务器,以下是named.conf 文件的部分配置:

    zone “adc.edu.cn” IN {

    type slave;

    file “slaves/adc.edu.cn.zone”;

    masters{ 201.18.1.5; } ;

    }; 则根据这部分内容来看,该服务器是“adc.edu.cn”域的(     )。(选择一项)      

    A、主域名服务器 B、缓存域名服务器 C、从域名服务器 D、根域名服务器

    2、在RHEL5系统中构建BIND服务器,并能够正确解析www.benet.com的IP地址,则当作为以下(    )时,该服务器需要在本机保存benet.com 区域的数据库文件。(选择二项)     

    A、缓存域名服务器 B、主域名服务器 C、从域名服务器 D、转发域名服务器

    3、在RHEL5系统中配置DNS服务器时,若需要添加主域名服务器解析区域,应该使用(   )类型。(选择一项)     

    A、hint B、master C、slave D、file

    4、benet公司使用RHEL5系统构建了一台DNS服务器,以便当有客户发送邮件到admin@benet.com时,最终会由mail.benet.com这台邮件服务器来进行处理。在这个过程中,DNS服务器的作用是(   ) (选择二项)     

    A、为mail.benet.com添加名为benet.com的别名记录

    B、为benet.com域设置MX记录,指向mail.benet.com

    C、为主机mail.benet.com提供正确的域名解析

    D、将收到的邮件转发至mail.benet.com服务器

    5、本地主机的名称解析文件是(    )(选择一项)     

    A、/etc/host B、/etc/hosts C、/etc/network D、/etc/resolv.conf

    6、在RHEL5系统中构件DNS服务器,若需要提供对192.168.1.0网段的反向解析,则在添加zone设置时,对应的反向解析区域名应该表示为(     )。 (选择一项)     

    A、192.168.1.rev B、192.168.1.in-addr.arpa C、1.168.192.in-addr.arpa  D、0.1.168.192.in-addr.arpa

    7、管理员在DNS服务器上创建了名为Aptech.com的主要区域,网络中其他计算机作为该DNS服务器的客户端。在一台客户端计算机上利用nslookup 命令测试发现DNS服务器能够把一个主机的完全合格域名解析成为IP地址,却无法将其IP地址解析成完全合格域名,应该采用(      )措施来解决这个问题 (选择一项)     

    A、重新启动DNS服务器

    B、在DNS服务器的反向解析区域中为该主机创建PTR记录

    C、在要将IP地址解析 成完全合格域名的计算机上执行命令ipconfig/flushdns

    D、设置DNS区域允许动态更新

    8、benet.com公司的网络管理员小王,在自己的Linux工作站上安装了BIND软件,配置实现了DNS服务,作为公司的辅助域名服务器。在他的工作站上的named.conf文件中,benet.com区域的类型是 (    )。

    (选择一项)     

    A、master B、hint C、slave D、server

    9、在DNS服务器的区数据文件中,一般都包含着多种类型的多条资源记录。PTR类型的资源记录的作用是 (   )。(选择一项)     

    A、定义主机别名 B、转换主机名到IP地址  C、转换IP地址到主机名 D、描述主机硬件和操作系统信息

    10、在使用Linux操作系统的服务器上,管理员使用BIND配置了域名系统服务。请问主配置文件是(     )。(选择一项)      

    A、named.ca B、named.conf C、named.local D、rndc.key

    11、BIND创建的域名服务器包括 (     )。(选择三项)     

    A、主域名服务器 B、缓存域名服务器 C、辅助域名服务器 D、影子域名服务器

    12、DNS的查询模式有 (     )两种。(选择二项)     

    A、顺序 B、递归 C、随机 D、迭代

    13、在配置DNS服务的时候,如果要设置正向解析,需要添加(      )记录。(选择一项)     

    A、SOA B、CNAME C、A D、PTR

    14、可以完成主机名与IP地址的正向解析和反向解析任务的命令是(     )。(选择一项)     

    A、nslookup B、arp C、ifconfig D、dnslook

    15、互联网的域名系统采用树型结构,所有的域都具有相同的根节点,不同国家和地区使用不同的域名后缀,以下(     )域名后缀属于中国使用。(选择二项)      

    A、jp B、us C、cn D、hk

    16、BIND 服务器可配置成为多种类型的DNS 服务器,当安装了名为“caching-nameserver” 的软件包后,named.conf 配置文件中会出现以下配置内容:

    zone "." IN {

    type hint;

    file "named.ca";

    }; 该段配置内容的功能是在DNS 服务器中(      )。(选择一项)     

    A、定义localhost 的正向解析区域 B、定义localhost 的反向解析区域

    C、定义根区域 D、定义根区域的反向解析区域

    1. 在某个BIND 域名服务器中进行了“test.com”域的正向和反向区域设置,并且在 “test.com”域的正向区域文件中包括了如下的配置内容:

    host1 IN A 192.168.1.11

    mail IN CNAME host1.ltest.com.

    @ IN MX 5 mail.ltest.com. 在上面的配置内容中不包括(      )类型的资源记录。(选择一项)     

    A、地址记录 B、别名记录 C、域名记录 D、邮件交换记录

    18、在RHEL5系统中使用BIND构建DNS服务器,反向解析区域文件中不应该出现(    )类型的记录

    (选择一项)     

    A、PTR B、SOA C、NS D、A

    19、在RHEL5系统中,使用BIND构建缓存域名服务器时,其中(     )文件内包含了互联网的DNS根服务器的地址解析记录。(选择一项)

    A、named.conf B、named.ca C、localhost.ca D、localhost.zone

    20、在RHEL5系统中使用BIND构建DNS服务器,若需要检查区域数据库文件中是否存在语法错误,可以使用(      )命令。(选择一项)

    A、checkconf B、named-checkconf C、named-checkzone D、checkzone

    21、在RHEL5系统中,使用BIND构建DNS服务器时,使用(    )命令可以检查主配置文件named.conf是否存在语法错误。(选择一项)

    A、checkconf B、checkzone C、named-checkconf D、named-checkzone

    22、在RHEL5系统中,设置BIND服务器的区域配置文件时,CNAME记录的作用是(      )(选择一项)

    A、用于设置主机的别名 B、用于设置主机域名到IP地址的对应记录

    1. 用于设置提供邮件服务的服务器名称 D、用于设置DNS服务器的名称

     

    Linux网络服务 第四章 构建LAMP网站服务平台(一)

     

    1、在RHEL5系统中,使用httpd软件可以实现基于(     )地址的Web虚拟主机服务。(选择三项)     

    A、域名 B、IP C、MAC D、端口

    2、以下关于RHEL5系统中Apache服务器配置的描述,错误的是(      )(选择一项)     

    A、Apache服务器的主配置文件是httpd.conf

    B、httpd是Apache服务器的服务程序

    C、在完成Apache服务器的配置后,可以使用命令apachectl -t对httpd.conf的语法进行检测

    D、Apache服务器的访问日志和错误日志都记录在access_log文件中

    3、Apache是非常重要的网站服务器软件,为了有效地管理它,Apache服务器提供了非常全面而灵活的事件记录功能。它的日志的种类有 (       )。(选择二项)     

    A、错误日志 B、事件日志 C、系统日志 D、访问日志

    4、Apache服务器的主配置文件是 (      )。(选择一项)     

    A、apache.conf B、web.conf C、httpd.conf D、named.conf

    5、小葛在RHEL5中使用系统自带的RPM包安装Apache服务器后,应在(     )目录下查找Apache服务器的主配置文件httpd.conf.(选择一项)     

    A、/etc/ B、/etc/conf C、/etc/httpd D、/etc/httpd/conf

    6、在安装了Linux系统的计算机上,可以通过安装和配置Apache来提供WEB服务。Apache的主配置文件httpd.conf包含了(       )配置。 (选择三项)     

    A、服务器全局环境 B、客户机环境 C、本地服务器响应外部请求的处理方式 D、虚拟主机

    7、在一台Linux服务器上,使用Apache作为WWW服务程序,服务器名称是www.benet.com,管理员把所有对外提供的文档放在/usr/local/source目录下面,希望远程用户在浏览器中使用http://www.benet.com地址即能访问这些文档,他需要对Apache进行(      )设置。(选择一项)     

    A、安装Apache服务器在/usr/local/目录下即可

    B、修改Apache配置文件httpd.comf中的ServerRoot 项值为“/usr/local/source”

    C、修改Apache配置文件httpd.comf中的DocumentRoot 项值为“/usr/local/source”

    D、修改Apache配置文件httpd.comf中的Listend的值为8000

    8、在使用rpm包安装的情况下,apache服务器的访问日志和错误日志将分别记录在(   )文件中。(选择二项)     

    A/var/log/httpd/access_log B/var/log/httpd/error_log

    C、/var/log/access_log D、/var/log/error_log

    9、在RHEL5 系统中,Apache 服务器可以采用RPM 安装和源码编译安装两种方法进行安装在通过源码编译安装Apache 服务器的过程中使用了以下的configure 命令对服务器的源代码进行配置

    ./configure --prefix=/usr/local/apache2 --enable-so --enable-rewrite

    在该配置命令中“--prefix=/usr/local/apache2”实现的功能是(      )选择一项)     

    A、指定Apache 服务器的程序文件将要安装到目录“/usr/local/apache2”

    B、Apache 服务器的编译过程中将使用“/usr/local/apache2”作为临时目录

    C、设置Apache 服务器可以使用动态加载模块功能

    D、设置Apache 服务器具有地址重写功能

    10Apache 服务器可以为Linux 系统中的用户提供个人主页服务对于Linux 系统中的用户mike,其个人主页能够正常访问应具备(       )条件。(选择三项)      

    A、httpd.conf 文件中包括“UserDir public_html”配置项

    B、Apache 服务器对mike 的宿主目录具有进入和读取权利

    C、mike 的宿主目录中建立了名为“public_html”的子目录

    D、mike 的宿主目录中建立了名为“index.html”的网页文件

    11、在RHEL5系统中,使用httpd服务器的(     )工具可以对WEB服务器进行简单的压力测试。(选择一项)     

    A、awsats B、ab C、apachectl D、phpmyadmin

    12、在RHEL5系统中配置httpd服务器时,(      )设置项用于指定该Web服务器的主机名。(选择一项)     

    A、ServerRoot B、ServerAdmin C、DocumentRoot D、ServerName

    13、在RHEL5系统中,通过光盘自带的RPM包安装了httpd软件,则默认的网页文档目录应位于(      )。(选择一项)

    A、/etc/httpd/  B、/var/www/html/   C、/usr/local/httpd/htdocs/  D、/usr/local/apache2/htdocs

    14 BENET公司在一台RHEL5服务器上使用httpd为员工开启了个人主页功能在默认设置下关于用户xiaoli的人人主页以下说法正确的是(       )。(选择二项)

    1. 主页文件应该放置在/home/xiaoli/public目录中
    2. 主页文件应该放置在/home/xiaoli/public_html目录中
    3. 主页文件应该放置在/home/xiaoli/private_htlm目录中
    4. 可以通过http://服务器ip/xiaoli的地址访问
    5. 可以通过http://服务器ip/~xiaoli的地址访问

    15、在RHEL5中系统中,httpd服务器不支持基于(      )的虚拟web主机(选择一项)     

    A、域名 B、IP地址 C、TCP端口 D、目录

    16、在RHEL5系统中,通过光盘自带的RPM包安装了httpd软件,则httpd服务的主配置文件默认应位于(     )。(选择一项)

    A、/etc/httpd.conf B、/etc/httpd/conf/httpd.conf

    C、/usr/local/apache2/conf/httpd.conf D、/var/www/httpd.conf

    17、某公司有www.benet.comwww.accp.com两个站点,使用相同的公网IP地址,若要在一台RHEL5主机中提供两个站点的Web服务,可行的最佳方案为(       )。(选择一项)

    A、安装两个httpd软件包,每个软件包对应一个web站点

    B、安装一个httpd软件包,使用httpd1.conf、httpd2.conf两个独立配置文件

    C、安装一个httpd软件包,为两个web站点配置基于域名的虚拟主机

    D、安装一个httpd软件包,为两个web站点指定基于IP地址的虚拟主机

    18、在RHEL5系统中,只需要启用一个httpd服务,就能够同时运行多个虚拟WEB站点。以下(     )不属于httpd支持的虚拟WEB主机类型    (选择一项)

    A、基于不同域名的虚拟主机 B、基于不同IP地址的虚拟主机

    C、基于不同浏览器的虚拟主机 D、基于不同端口的虚拟主

    19、在RHEL5系统中配置httpd服务器时,(       )设置项用于指定web服务程序的根目录。(选择一项)

    A、ServerRoot B、ServerAdmin C、DocumentRoot D、DirectoryIndex

    20、在RHEL5系统中,通过查看httpd服务器的访问日志文件,无法获得(       )信息。(选择一项)

    1. 客户机的IP地址 B、当前登录到客户机的用户名

    C、访问服务器的日期和时间 D、客户机请求访问的页面或图片文件的路径

     

    Linux网络服务 第五章 构建LAMP网站服务平台(二)

     

    1、在RHEL5系统中,以下(      )操作可以完成对MySQL服务器中所有的数据库信息的备份。(选择一项)     

    A、mysqldump –u root –p –all-databases

    B、mysqldump –u root –p  --all-databases > dbbak_all.sql

    C、mysqldump –u root –p *.*

    D、mysqldump –u root –p *.* > dbbak_all.sql

    2、在RHEL5中系统中,使用mysql命令连接到MYSQL数据库服务器以后,执行(     )操作可用来查看当前服务器的已有数据库列表(选择-项)     

    A、USE mysql B、SHOW DATABASES; C、SHOW TABLES; D、DESCRIBE mysqldb;

    3、在RHEL5 系统中构建LAMP 网站应用平台,编译安装PHP环境后,还需要在Apache的httpd.conf 文件中确认有(       )配置,以使用两者能够协调工作。(选择二项)

    A、Directoryindex index.php index.html B、LoadModule phtd5_moudule modules libphp5.so

    1. AddType application/x-httpd-php .php D、PhpConfig /usr/local/php4/php.ini

    4、在RHEL5系统中,通过源代码编译的方式构成PHP环境时,“./configure"的(    )选项用于设置php.ini配置文件存放的路径。(选择一项)     

    A、--enable-mbstring B、--with-apxs2 C、--with-mysql D、--with-config-file-path

     

     

    Linux网络服务 第六章 构建Postfix邮件服务器(一)

     

    1、在一些Linux系统中,安装有Evolution软件,用户可以使用该软件发送、接收和管理电子邮件,在电子邮件系统中该软件属于(     )角色。(选择一项)     

    A、MUA B、MTA C、MDA D、MailServer

    2、在RHEL5系统中,用于电子邮件系统的有多种应用软件,各自承担不同的角色,以下(    )不属于MTA(邮件传输代理)。(选择一项)    

    A、Outlook B、Postfix C、Qmail D、Sendmail

    3、在RHEL5中系统中,构建基于系统用户的postfix邮件服务器时,可以使用(     )软件来实现基本的SMTP认证机制。(选择一项)     

    A、openssl B、cyrus-sasl C、dovecot D、squirremail

    4、一般的,在RHEL5系统中,下列的说法中正确的有 (     )。(选择一项)      

    A、postfix通过TCP端口25提供邮件服务,pop3通过TCP端口143提供邮件服务,imap通过TCP端口110提供邮件服务     

    B、postfix通过UDP端口25提供邮件服务,pop3通过TCP端口110提供邮件服务,map通过TCP端口143提供邮件服务     

    C、postfix通过TCP端口25提供邮件服务,pop3通过UDP端口110提供邮件服务,imap通过UDP端口143提供邮件服务     

    D、postfix通过TCP端口25提供邮件服务,pop3通过TCP端口110提供邮件服务,imap通过TCP端口143提供邮件服务  

    5、在postfix 服务器中使用aliases 机制实现邮件别名功能,在“/etc/aliases”文件中设置邮件别名记录后再使用newaliases 命令更新“aliases.db”文件,如aliases 文件中存在以下别名设置,admin: mike

    则(      )。(选择二项)     

    A、admin 是邮件用户名 B、mike 是邮件用户名 C、admin 是邮件别名 D、mike 是邮件别名

    6、Outlook 和Outlook Express 都是常用的邮件客户端软件,当用户使用邮件客户端软件进行邮件的发送和接收之前,需要先在软件中进行(      )的设置。(选择三项)      

    A、SMTP 服务器地址 B、POP3 服务器地址 C、用户的邮件帐号 D、Webmail 服务器访问地址

    7、为了让公司用户能够使用OE收发自己的邮件,小李在公司的邮件服务器上安装了dovecot,在配置dovecot.conf时,小李应访配置(      )来提供POP3服务。(选择一项)     

    A、protocols = pop3 B、Listen = pop3 C、access = pop3 D、servername = pop3

    8、Dovecot服务器默认提供(      )邮件协议服务。(选择二项)     

    A、pop3 B、pop3s C、imap D、imaps

    9、postfix主配文件的名称是(        )。     (选择一项)

    A、main.cf B、main.conf C、master.cf D、master.conf

    10、在RHEL5系统中构建电子邮件服务器,若使用Dovecot软件为用户提供邮件收取服务,其服务端口默认为(       )。(选择两项)     

    A、25 B、80 C、110 D、143                            

    11、在RHEL5系统中,Postfix服务器支持使用(    )邮件储存方式,用于组织邮箱目录中用户的电子邮件。

    (选择二项)

    A、HTML B、DB4 C、Mailbox D、Maildir

     

    Linux网络服务 第七章 构建Postfix邮件服务器(二)

     

    1、在RHEL5系统中,为Postfix邮件系统增加内容过滤机制时,以下(    )软件可用来对邮件内容进行病毒扫描。(选择一项)     

    A、MailScanner B、Spamassassin C、F-Prot D、Courier-Authlib

     

    Linux网关及安全应用 第一章 系统安全常规优化

     

    1、在RHEL5系统的命令界面中,若设置环境变量(     )的值为60,则当用户超过60秒没有任何操作时,将自动注销当前所在的命令终端。(选择一项)     

    A、TTL B、IDLE_TTL C、TMOUT D、TIMEOUT

    2、使用chattr命令的(      )选项,可以将指定的文件设置为不可修改、不可删除、不可移动。      

    A、+i B、+a C、-i D、-a

    3、在RHEL5系统中,为了在一个可控制的范围内给普通用户jerry赋予管理员帐号如root的部分权限,最合适的方式是(      )。(选择一项)      

    A、su B、sudo C、将jerry用户的UID改为0 D、将jerry用户加入到wheel组

    4、在RHEL5系统中,通过在(     )文件中设置“#tty2”的配置参数后,可以禁止root用户从tty2终端中登录系统。(选择一项)      

    A、/etc/nologin B、/etc/securetty C、/etc/pam.d/login D、/etc/security/access.conf

    5、普通用户zhangsan希望使用su命令切换为lisi用户身份,需要提供(        )用户的密码。(选择一项)      

    A、root B、zhangsan C、lisi D、不需要密码

    6、在RHEL5系统中,用户aiya使用默认的Shell环境,若希望每次注销登录后自动清空自己的命令历史记录,

    可以在~/.bash_logout文件中设置(      )操作。(选择一项)

    A、clear B、history –c C、export TMOUT=0 D、usermod –r aiya

    7、在RHEL5系统中管理员为用户账号aiya重设密码后可以执行(     )操作使该用户下次登录时强制其修改密码以保持用户账号的私密性选择一项)     

    A、password -d aiya B、usermod -u 0 aiya Cchage -d 0 aiya D、usermod -s /sbin/nologin aiya

    8、RHEL5系统中执行以下(      )操作后用户tom将无法登录该系统。选择两项

    A、passwd –l tom B、chage –d 0 tom  C、usermod –s /sbin/nologin tom  D、chage –M 30 tom

    9RHEL5系统中执行以下(     )操作后用户tom下次登录时将被要求更改密码否则将拒绝其登录该系统。选择一项

    A、passwd –l tom B、chage –d 0 tom C、usermod –s /sbin/nologin tom D、chage –M 30 tom

    10、在RHEL5系统中,当用户xiaowu执行"su - daxia"命令是,需要输入用户(     )的密码进行验证,才能顺利切换为daxia用户身份。(选择一项)

    1. xiaowu B、daxia C、root D、wheel

    11、在RHEL5系统中,为了在grub.conf配置文件中给GRUB引导菜单设置密码限制,可以执行(   )操作获得MD5加密的密码字符串。  (选择一项)

    A、md5sum B、grub-md5-crypt C、grubpasswd –t md5 D、grub-crypt –t md5

     

    Linux网关及安全应用 第二章 配置IPTABLES防火墙(一)

     

    1、在RHEL5系统中配置iptables防火墙规则,若需要禁止数据包通行且不反馈任何信息,应该采取的策略动作为(       )。(选择一项)     

    A、ACCEPT B、DROP C、REJECT D、DENY

    2、在RHEL5系统中,iptables防火墙默认使用的规则表中不包括(      )。(选择两项)     

    A、raw B、input C、mangle D、forward

    3、在RHEL5系统中,iptables命令的(       )选项可用于设置指定规则链的缺省策略。(选择一项)      

    A、-A B、-D C、-P D、-X

    4、在RHEL5系统中,依次执行了下列iptables规则设置语句,则根据该策略配置,从IP地址为192.168.4.4的客户机中ping防火墙主机的数据包将会被(       )。(选择一项)

    iptables -F INPUT

    iptables -A INPUT -p icmp -j REJECT   

    iptables -I INPUT -p icmp -s 192.168.4.0/24 -j LOG   

    iptables -I INPUT -p icmp -s 192.168.4.0/24 -j DROP   

    iptables -P INPUT ACCEPT      

    A、ACCEPT B、DROP C、REJECT D、LOG之后DROP

    5、在RHEL5 系统中可以使用iptables 命令对系统中的网络防火墙策略进行查看和维护,当执行“iptables -L”命令时,将显示(      )规则表的配置清单。(选择一项)      

    A、nat B、filter C、mangle D、input

    6、管理员在linux上使用iptables命令配置了防火墙,现要把配置保存,以便当计算机重启时恢复设置,他可以使用(      )来实现。(选择二项)      

    A、iptables-save > iptables B、iptables-restore < iptables

    C、service iptables save D、service iptalbes restore

    7、在linux中,防火墙的默认策略为ACCEPT。管理员小李配置防火墙时,决定设置INPUT链的默认策略设置为DROP,下面(      )命令能够完成这一功能。(选择一项)      

    A、iptables -X INPUT DROP B、iptables -L INPUT DROP

    C、iptables -P INPUT DROP D、iptables -D INPUT DROP

    8、管理员小李配置防火墙时,想把原有防火墙设置全部清空,以便全部重新设置。下面(      )命令能够完成这一功能。(选择一项)      

    A、iptables –F B、iptables –P C、iptables –D D、iptables -X

    9、Linux中防火墙的运行状态可以使用iptables命令进行查询,下面(      )可以查询filter表中的所有链上的规则。(选择一项)     

    A、iptables –A B、iptables –L C、iptables –F D、iptables –D

    10、下面关于Iptables防火墙软件说法正确的是 (      )。(选择二项)      

    A、iptables工作在应用层,属于应用层代理

    B、iptables工作在网络层,属于包过滤型防火墙

    C、iptables主要有INPUT,OUTPUT,FORWARD,PREROUTING,POSTROUTING五个规则链

    D、iptables工作在传输层,属于包过滤型防火墙

    11、在RHEL5系统中,默认配置了iptables防火墙工具。一般的,iptables维护着四种规则表和五条规则链,其中Filter规则表中包括规则链 (      )。(选择三项)      

    A、PREROUTING B、INPUT C、FORWARD D、OUTPUT E、POSTROUTING

    12、在RHEL5系统中,若要禁止IP地址位于61.23.45.0/24网络的客户机访问本机的WEB服务,可以使用一下(       )防火墙规则。(选择两项)     

    A、iptables –I  INPUT -s 61.23.45.0/24 -p tcp --dport 80 -j DROP

    B、iptables –I  INPUT -s 61.23.45.1-61.23.45.254 -p tcp --dport 80 -j DROP

    C、iptables –I  INPUT --src-range 61.23.45.1-61.23.45.254 -p tcp --dport 80 -j DROP

    D、iptables –I  INPUT -m iprange --src-range 61.23.45.1-61.23.45.254 -p tcp --dport 80 -j DROP

    13、在RHEL5中系统中配置iptables策略时,若对符合条件的数据包进行(      )处理,则目标主机将无法接收到此数据包。(选择二项)     

    A、LOG B、ACCEPT C、DROP D、REJECT

    14、在RHEL5服务器中开放了FTP服务(21端口),若设置如下IPTABLES规则,则客户机192.168.1.111访问该FTP服务的数据包将会(      )。(选择一项)

    iptables –F

    iptables –A INPUT –p tcp --dport 21 –j ACCEPT

    iptables –A INPUT –p tcp –s 192.168.1.111 --dport 21 –j REJECT

    iptables –P INPUT DROP

    A、被允许 B、被拒绝 C、被丢弃 D、一部分被允许,一部分被拒绝

    15、在配置RHEL5系统的iptables防火墙时,执行(    )命令可以将当前的防火墙配置保存到/etc/sysconfig/iptables文件中。(选择一项)

    A、service iptables reload B、iptables-save >/etc/sysconfig/iptables

    C、iptables-restore</etc/sysconfig/iptables D、iptables--save-config

    16、在RHEL5系统中,若需要禁止客户机192.168.1.20访问防火墙主机的telnet服务,可以添加如下(     )。(选择二项)

    A、iptables -A INPUT –p tcp –s 192.168.1.20 --dport 23 –j REJECT

    B、iptables -A INPUT –p tcp –d 192.168.1.20 --sport 23 –j REJECT

    C、iptables -A OUTPUT –p tcp –s 192.168.1.20 --dport 23 –j REJECT

    D、iptables -A OUTPUT –p tcp –d 192.168.1.20 --sport 23 –j REJECT

    17、公司有一台对外提供Web服务的运行RHEL5系统主机,为了防止外部对它的攻击,现在想要设置防火墙规则,使它只接受外部的Web访问,其它的外部连接一律拒绝,可能的设置步骤包括:

    1、iptables -A INPUT-p tcp-j DROP

    2、iptable -A INPUT-P TCP--dport80-jACCEPT

    3、iptable -F

    4、iptable -P INPUT DROP

    则对于上述4个步骤,以下(       )组合能够实现该需求。(选择一项)

    A、1-2-3 B、2-4-3 C、3-1-2 D、3-4-2

    18、在RHEL5 系统中,若执行“iptables –A INPUT –i eth0 –s 192.168.1.0 /24 -j DROP”命令设置防火墙规则,则以下说法正确的是(      )。(选择一项)

    A、允许 192.168.1.0/24 网段的主机通过eth0 接口访问本主机

    1. 拒绝192.168.1.0/24 网段的主机通eth0 接口访问本主机

    C、系统重启后,该规则不再有效

    D、允许本机通过eth0接口访问192.168.1.0/24网段的主机

    19、在RHEL5系统中设置iptables规则时,以下(     )可用于匹配192.168.0.20/24~192.168.0.50/24范围内的源IP地址。(选择一项)      

    A、-s 192.168.0.20:50 B、-s 192.168.0.20-50/24

    C、-m iprange --src-range 192.168.0.20-50/24 D、-m iprange --src-range 192.168.0.20-192.168.0.50

     

    Linux网关及安全应用 第三章 配置IPTABLES防火墙(二)

     

    1、在安装RHEL5系统的网关主机中,通过正确设置iptables防火墙的(     )策略,可用于使局域网主机能够共享同一个公网IP地址访问Internet。 (选择二项)     

    A、SNAT B、DNAT C、MASQUERADE D、REDIRECT

    2、在RHEL5系统中,对于源地址、目标地址均不是防火墙本机但需要经过防火墙进行转发的数据包,将会经过nat表(      )链的规则处理。(选择二项)     

    A、OUTOPUT B、FORWARD C、PREROUTING D、POSTROUTING

    3、在使用RHEL5系统的Linux网关主机中,eth1网卡IP地址为201.12.13.14.,用于连接Internet。为了使Internet中的用户能够通过“http://201.12.13.14”的地址访问到局域网中的Web服务器192.168.4.14,可以设置(       )防火墙规则。(选择一项)     

    A、iptables –t nat –A PREROUTING -d 201.12.13.14 –p tcp --dport 80 –j MASQUERADE

    B、iptables –t  nat –A POSTROUTING -d 201.12.13.14 –p tcp --dport 80 –j MASQUERADE

    C、iptables –t nat –A PREROUTING -d 201.12.13.14 –p tcp --dport 80 –j DNAT --to-destination 192.168.4.14     

    D、iptables –t nat –A POSTROUTING -d 201.12.13.14 –p tcp --dport 80 –j DNAT --to-destination 192.168.4.14  

    4、使用RHEL5系统构建网关服务器,在iptables防火墙的nat表中正确设置(      )策略,可用于在Internet网络中发布位于局域网内的应用服务器。(选择一项)   

    A、SNAT B、DNAT C、MASQUERADE D、REDIRECT

    5、在RHEL5系统中设置iptables防火墙规则时,DNAT策略只能在nat表的(    )规则链中使用(选择两项)      

    A、PREROUTING B、POSTROUTING C、OUTPUT D、FORWARO

    6、管理员小张在网络中利用NAT服务器进行地址转换,使公司局域网中的计算机可以利用NAT服务器访问Intenet。这时当局域网中的计算机向Internet 中的某个主机发送请求时,NAT服务器将数据包的(     )转换为NAT服务器的公网地址。(选择一项)      

    A、源地址 B、目标地址 C、源端口号 D、目标端口号

    7、在RHEL5系统中重新编译Linux内核,执行“make menuconfig”步骤后保存的内核配置文件名默认为(     )。(选择一项)      

    A、.config B、.config-2.6.28.8 C、makefile D、kernel.cfg

    8、在RHEL5系统环境中,若需要设置从Internet远程管理位于公司局域网的内部服务器,可使用iptables的(      )策略实现。(选择一项)     

    A、SNAT BDNAT C、MASQUERADE D、REDIRECT

    9、在RHEL5系统中若需要配置iptables 防火墙使用内网用户能够共享网关主机的公网IP地址上网可以在(       )中设置MASQUERADE地址伪装策略。(选择一项)

    A、filter表内的OUTPUT链 B、filter表内的 FORWARD链

    C、nat 表中的PREROUTING链 D、nat 表中的POSTROUTING链

     

    Linux网关及安全应用 第四章 构建Squid代服理务器

     

    1、在RHEL5系统中,若要为Squid代理服务器设置ACL访问控制策略,禁止192.168.4.0/24网段的客户机使用代理服务,可以在squid.conf文件中添加以下(       )配置。 (选择二项)     

    A、acl src 192.168.4.0/24 deny

    B、acl –net 192.168.4.0/255.255.255.255.0 deny

    C、acl BlockLan src 192.168.4.0/255.255.255.0; http_access deny BlockLan

    D、acl BlockLan src 192.168.4.0/24; http_access deny BlockLan

    2、在RHEL5系统中,第一次运行spuid 服务器时,需要先初始化缓存目录,执行(      )命令可以完成该操作(选择二项)     

    A、squid –D B、squid –z C、service squid start D、service squid init_cache

    3、小李正在按照公司的管理制度配置运行在Linux系统上的代理服务器软件squid。公司规定所有的计算机只能在周一至周五的10:00至16:00通过代理服务器访问互连网。为了实现这一管理需求,小李应该在/etc/squid/squid.conf中添加访问控制列表 (      )。(选择一项)     

    A、acl regular_days time 10:00-16:00 B、acl regular_times time MTWHF 10:00-16:00

    C、acl allowed_ clients src 10:00-16:00 D、http_access allow MTWHF 10:00-16:00

    4、下面 (       )是用于在Linux系统中实现代理服务器的软件。(选择一项)      

    A、ISA B、CCProxy C、Squid D、IPtables

    5、Squid服务器的默认监听端口是3128,修改 (       )配置选项可以更改它。(选择一项)     

    A、http_accel_port B、http_port C、Squid D、Listen

    6、配置squid时,以下(      )可指定squid的工作目录。选择一项)     

    Acache_dir B、cache_mgr C、http_access D、acl

    7、在RHEL5中,squid代理服务器一般被默认安装,它的主要配置文件是(        )(选择一项)      

    A、/var/spool/squid B、/etc/squid/squid.conf  C、/etc/src/squid.conf D、/etc/squid.conf

    8、在squid 服务器的主配置文件squid.conf 中具有如下的配置行:

    cache_dir ufs /var/spool/squid 100 16 256 则关于squid 服务器配置说法正确的是(       )。(选择二项)      

    A、squid 服务器的工作目录是“/var/spool/squid”

    B、squid 服务器的工作目录中一级子目录的数量是16 个

    C、squid 服务器的工作目录中二级子目录的数量是100 个

    D、squid 服务器的工作目录中的最大的容量是256MB

    9、squid 代理服务器的性能表现与服务器的参数设置是紧密相关的,对于具有128MB 物理内存的主机,在squid.conf 文件中使用(        )配置项是比较合理的方案。(选择一项)      

    A、cache_mem 4 MB  B、cache_mem 8 MB  C、cache_mem 32 MB D、cache_mem 128 MB

    10、在RHEL5系统中构建Squid反向代理服务时,需要在squid.conf配置文件内设置(      )行为便支持反向代理。(选择一项)     

    A、httpd_accel_host virtual B、httpd_accel_with_proxy on

    C、http_port 80 vhost D、cache_peer parent 80 originserver

    11、在RHEL5系统中,squid.conf文件中的(       )配置行将允许通过代理下载的文件大小限制为最多8MB,超过该限制的文件用户将无法访问。(选择一项)      

    A、maximum_object_size 8092 KB B、reply_body_max_size 8192000 allow all

    C、cache_mem 8 MB D、cache_dir ufs /var/spool/squid 8 16 256

    12、只要客户机的IP地址、网关参数设置正确,在网页浏览器中无需进行特殊设置,即可通过Linux网关主机中的(       )应用访问Internet。(选择两项)     

    A、传统代理 B、透明代理 C、反向代理 D、源地址转换

    13、squid 代理服务器能够为网页浏览器提供HTTP 协议的代理访问服务,当squid 服务器进行缺省配置时,在客户主机的网页浏览器中应设置代理服务器的网络端口为(       ).(选择一项)      

    A、80 B、8080 C、3128 D、8848

    14、在RHEL5系统中,通过设置iptables支持透明代理服务,需要在nat表的(      )链中添加REDIRECT重定向策略。(选择一项)     

    A、PREROUTING B、POSTROUTING C、OUTPUT D、FORWARD

    15、在RHEL5系统中构建透明代理服务器时,需要结合iptables的(     )策略以便将相关数据包交给防火墙主机的代理服务程序处理。 (选择一项)

    A、SNAT B、DNAT C、REJECT D、REDIRECT

    16、在RHEL5系统中,若要将Squid代理服务器的监听端口改为1080,需要在配置文件squid.conf中设置(   )。(选择一项)

    A、port 1080 B、listen 1080 C、inet_interfaces=:1080 D、http_port 1080

     

    Linux网关及安全应用 第五章 漏洞检测和远程访问控制

     

    1、构建基于密钥对验证的SSH服务时,服务器端默认的密钥库文件是(     )(选择一项)     

    A、know_hosts B、authorized_keys C、id.rsa D、id_rsa.pub

    2、在RHEL5系统中设置TCP Wrappers 访问控制策略,只允许IP 地址属于192.168.1.100~192.168.1.199 范围内的客户机访问本机的vsftpd服务,则/etc/host.allow文件中应该进行(     )配置。 (选择一项)     

    A、vsftpd: 192.168.1.1?? B、vsftpd: 192.168.1.

    C、vsftpd: 192.168.1.1/25 D、vsftpd: 192.168.1.100~192.168.1.199

    3、在RHEL5系统中,相对于传统的telnet登录,SSH服务提供了加密的安全数据传输,其基本的用户验证方式包括(     )。(选择二项)     

    A、基于IP地址 B、基于口令 C、基于密钥 D、基于协议

    4、EtterCap工具主要是基于(    )机制在局域网中进行数据监听(选择一项)     

    A、端口扫描 B、ARP欺骗 C、IP地址伪装 D、ICMP泛洪

    5、使用Nessus漏洞扫描系统时,可以使用的扫描用户认证方式包括(     )(选择二项)     

    A、密码 B、IP地址 C、证书 D、访问时间

    6、在RHEL5系统中,/etc/hosts.allow和/etc/hosts.deny两个文件中均只包含内容为“vsftpd:192.168.1.23”的配置,则根据该TCPWrappers策略,以下说法正确的是(     )。(选择一项)     

    A、只允许IP为192.168.1.23的主机访问vsftpd服务 B、只拒绝IP为192.168.1.23的主机访问vsftpd服务

    C、允许所有主机访问vsftpd服务 D、拒绝所有的主机访问vsftpd服务

    7、在RHEL5系统中,在sshd服务的配置文件中设置(    )配置项可用于禁止root用户远程登录。(选择两项)      

    A、AllowUsers !root B、PermitRootLogin no C、DenyUsers root D、StrictMode yes

    8、在RHEL5系统中,安全工具(    )主要用于检测网络中主机的漏洞和弱点,并能给出针对性的安全性建议。(选择一项)      

    A、NMAP B、Nessus C、EtterCAP D、WireShark

    9、在RHEL5系统中,通过TCP Wrappers机制加强对应用服务的访问控制时,使用的主要配置文件包括(   )。(选择两项)      

    A、/etc/host.conf B、/etc/hosts.allow C、/etc/hosts.deny D、/etc/tcpd.conf

    10、在RHEL5系统中,使用OpenSSH提供的ssh-keygen工具创建SSH密钥文件时,持使用(    )加密算法。(选择二项)     

    A、MD5 B、RSA C、SHA D、DSA

    11、RHEL5 系统中OpenSSH 服务器的缺省配置为允许root 用户进行SSH 登录,为了禁止该功能,需要将“PermitRootLogin no”设置行添加到(     )文件中。(选择一项)      

    A、/etc/ssh/ssh_config B、/etc/ssh/sshd_config

    C、/etc/ssh/ssh.config D、/etc/ssh/sshd.config

    12、在RHEL5系统中,设置TCP Wrappers策略对vsftpd服务进行访问控制。若在/etc/hosts.allow文件中设置了“vsftpd: 192.168.1.2”,在/etc/hosts.deny文件中设置了“vsftpd: 192.168.1.2,192.168.1.3”,则以下说法正确的是(     )。(选择一项)     

    A、除了192.168.1.3以外的主机都允许访问该FTP服务器

    B、除了192.168.1.2和192.168.1.3以外的主机都 允许访问该FTP服务器

    C、只有IP为192.168.1.2的主机允许访问该FTP服务器

    D、任何主机都不允许访问该FTP服务器

    13、TCP Wrappers 使用“/etc”目录下的hosts.allow 和hosts.deny 两个文件进行访问控制策略的配置,当hosts.allow 文件中具有如下配置行时(     )。 in.telnetd, vsftpd: ALL (选择二项)      

    A、in.telnetd 服务程序对于所有主机都允许访问 B、vsftpd 服务程序对于所有主机都允许访问

    C、in.telnetd服务程序对于所有主机都拒绝访问 D、vsftpd 服务程序对于所有主机都拒绝访问

    14、ssh 命令用于登录SSH 服务器,以下ssh 命令中(    )一定可以使用root 用户的身份登录地址为“192.168.1.13”的SSH 服务器。(选择二项)      

    A、ssh 192.168.1.13   B、ssh -l 192.168.1.13  C、ssh -l root 192.168.1.13  D、ssh root@192.168.1.13

    15、在执行ssh 命令进行SSH 登录的客户主机中,用户宿主目录中会存在名为“.ssh”的子目录,当用户第一次使用ssh 命令成功登录SSH 服务器后,该目录中一定会存在(     )文件。(选择一项)           

    A、id_rsa B、id_rsa.pub C、known_hosts D、authorized_keys

    16、在Linux 系统中TCP Wrappers 使用hosts.allow 和hosts.deny 两个文件进行访问控制的设置,对于一个安全级别要求较高的Linux 主机,hosts.deny 文件中应具有(      )设置。(选择一项)      

    A、ALL: ALL B、ALL: LOACAL C、ALL: KNOW D、ALL: UNKNOW

     17、在使用tcpd的Linux服务器中,如果hosts.deny和hosts.allow两个文件不存在,则可以认为(     ) (选择一项)      

    A、实现对所有主机开放所有的服务 B、实现对所有的主机禁用所有的服务

    C、产生错误 D、tcpd服务不会启动

    18、SSH是Server Shell的简写,通过使用SSH,可以把它传输的数据进行加密,下面的linux命令中,使用SSH加密通过进行传输的是(      )。(选择三项)      

    A、SSH B、SFTP C、SCP D、TELNET E、POP

    19、在RHEL5 系统中,使用传统的TELNET远程登录时,需要通过口令和用户名验证,但由于传送用户名和口令时都是采用明文的形式,因而容易被网络黑客窃听。为了安全起见,可以使用(     )来提供远程登陆服务。(选择一项)     

    A、xinetd B、SAMBA C、网络邻居 D、OpenSSH

    20、SSH协议是建立在应用层和传输层基础上的安全协议,可用来取代Telnet、FTP等服务远程登录到服务器上,在默认情况下Linux操作系统中的OpenSSH软件包提供了“scp”命令完成两台主机间的文件拷贝,下述命令:scp dumb bilbo@www.foobar.com:. 可以完成(     )功能。(选择一项)     

    A、将本地计算机“dumb”目录下所有的文件拷贝到远程服务器 www.fobar.com的根目录下,并且登录远程服务器上的密码为“bilbo”     

    B、将本地计算机当前目录下的一个名为“dumb”的文件发送到邮件 bilbo@www.foobar.com

    C、将远程服务器www.foobar.com 上用户“bilbo”主目录下的一个名为 “dumb”的文件拷贝到本地计算机当前目录下,并且登录远程服务器上的账号名为 “bilbo”     

    D、将本地计算机当前目录下的一个名为“dumb”的文件拷贝到远程主机www.fobar.com中用户 “bilbo”的主目录下  

    21、Tcp-wrappers工具包提供了Unix/Linux平台上的网络系统安全性,许多系统服务都支持tcp-wrappers。管理员在配置tcp-wrappers的安全规则时,一般需要修改配置文件 (     )。(选择二项)        

    A、/etc/hosts B、/etc/hosts.allow C、/etc/hosts.conf D、/etc/hosts.deny

    22、在RHEL5系统上安装了vsftpd作为FTP服务器,要求允许192.168.1.0/24网段的主机访问,为达到上述目标,可以进行(      )设置。 (选择二项)     

    A、在/etc/hosts.allow文件中添加“vsftpd:192.168.1.0/24”项

    B、在/etc/hosts.allow文件中添加“vsftpd:192.168.1.0/255.255.255.0”项

    C、在/etc/hosts.allow文件中添加“vsftpd:ALL”项

    D、在/etc/hosts.allow文件中添加“192.168.1.0/255.255.255.0”项

    23、OpenSSH服务器因故障检修重新安装了操作系统,IP地址保持不变,当再次在SSH客户端(RHEL5系统)远程登录时,显示错误信息“Host key verification failed.”。通过清空客户端用户的(     )文件后可以排除该故障。(选择一项)

    A、~/.ssh/id_rsa B、~/.ssh/id_rsa.pub C、~/.ssh/known_hosts D、~/.ssh/authorized_keys

    24、在RHEL5系统中,配置使用TCP_Wrappers以进行网络程序的访问控制,下列说法错误的是 (     )。(选一项)

    A、TCP Wrappers 属于包过滤防火墙

    B、TCP Wrappers 可以针对指定的应用程序

    C、TCP Wrappers 可以针对访问者的主机地址进行访问控制

    D、TCP Wrappers 通过名以hosts.allow 和hosts.deny文件进行访问控制策略的设置

    25、在RHEL5系统中,以下(     )安全软件主要用于抓取局域网中的通信数据进行协议分析。(选择一项)

    A、Nessus B、NMAP C、EtterCAP DWireShark

    26、在RHEL5系统中对应OpenSSH客户端的几个命令工具其中(      )具有远程文件复制的功能。(选择一项)

    A、ssh B、scp C、cp D、scopy

    27、在RHEL5系统中,若要以jerry的用户身份登录到远程的SSH服务器192.168.1.1可以使用以下(     )命令。(选择一项)

    A、ssh 192.168.1.1 B、ssh jerry@192.168.1.1

    C、ssh –login jerry 192.168.1.1 D、ssh –U jerry 192.168.1.1

    28、在RHEL5系统中,关于Nessus漏洞检测系统,以下说法错误的是(     )。(选择一项)

    A、nessus的服务器端和用户端程序可以安装在同一台主机中

    B、nessusclient用户端程序可以在linux的字符界面中运行

    C、执行漏洞扫描之前,需要先连接到nessus服务器端并通过用户验证

    D、可以将一个网段范围内的所有主机作为漏洞扫描目标

    29、在RHEL5系统中,关于Nessus漏洞检测系统以下说法正确的是(     )。(选择二项)

    A、包括Nessus服务器端和NessusClient用户端两部分程序

    B、Nessus和NessusClient必须安装在同一台主机中

    C、用户端需要连接到服务器端,并通过授权验证才能进行漏洞检测

    D、通过密码验证的用户可以对任意网络或目标主机进行扫描

    30、在RHEL5系统中,对于OpenSSH客户端的几个命令工具,其中(    )具有远程复制或上传,下载文件的功能。(选择二项)

    1. ssh B、scp C、sftp D、rcp

     

    Linux网关及安全应用 第六章 构建流量与性能监测系统

     

    1、在RHEL5系统中,构建Cacti和NTOP检系统时,均需要依赖于(    )软件提供的数据记录及图表绘制引擎。(选择一项)     

    A、MySQL B、httpd C、RRDTool D、Net-SNMP

    2、在RHEL5系统中,通过源代码安装NTOP软件包时,编译前需要使用(  ) 脚本进行预配置,以便启用TCP Wrappers支持等功能。(选择一项)     

    A、./config B、./configure C、./autogen.sh D、./post-install

    3、在RHEL5系统中,监控软件(    )主要用于统计局域网内各主机的网络流量使用情况,且不需要依赖于Apache等软件即可提供基于Web界面访问的流量报告。(选择一项)     

    A、MRTG B、NTOP C、Cacti D、BandWidthD

    4、若需要使用Cacti监测一台Linux主机,需要为该主机安装(     )软件包(选择一项)     

    A、MySQL B、libpng C、net-snmp D、httpd

    5、在Cacti监测系统中,默认的数据刷新间隔是(      )(选择一项)     

    A、30分 B、1分钟 C、5分钟 D、15分钟

    6、以下监测软件中,(     )可以针对不同的网络层、应用层协议进行流量统计。(选择二项)    

    A、MRTG B、Cacti C、BandWidth D、NTOP

    7、在较常见的几个设备/主机性能、流量监测软件中,(     )主要通过SNMP协议采集被监测项的各种数据。(选择两项)      

    A、MRTG B、Cacti C、Bandwidthd D、NTOP

    8、在RHEL5系统中,通过Cacti监测系统可以查看被监测主机的各种性能参数,其中不包括(   )。(选址一项)

    A、CUP占用 B、内存使用 C、已挂载分区统计 D、 开启终端个数 E、网卡流量统计

     

    1.

    (单选题)sed使用( )指令读取下一行内容。

     A.a

     B.n

     C.u

     D.x

     

    正确答案:B

    2.

    (单选题)启动nginx程序时,其命令选项( )可用于测试默认的配置文件语法是否正确?

     A.-v

     B.-V

     C.-t

     D.-c

     

    正确答案:C

    3.

    (单选题)Nginx配置文件中,使用( )指令可以定义服务器域名名称?

     A.server_name

     B.hostname

     C.name

     D.webname

     

    正确答案:A

    4.

    (单选题)Redis使用什么( )指令可以切换数据库?

     A.switch

     B.select

     C.use

     

    正确答案:B

    5.

    (单选题)将subversion版本仓库中的代码下载到本地副本的指令是( )。

     A.download

     B.upload

     C.checkout

     D.import

     

    正确答案:C

    6.

    (单选题)Linux系统中,一般在/etc/init.d/目录下的启动脚本,使用( )语句判断用户执行的是start还是stop指令?

     A.if

     B.case

     C.while

     D.test

     

    正确答案:B

    7.

    (单选题)如下哪个( )正则表达式代表了单词边界?

     A.\A

     B.\b

     C.\c

     D.\d

     

    正确答案:B

    8.

    (单选题)使用test进行条件判断,测试两个数字的关系时,大于或等于用( )表示。

     A.-le

     B.-gt

     C.-ge

     D.-eq

     

    正确答案:C

    9.

    (单选题)配置Squid代理服务时,配置文件中加入以下哪个选项( )可以启用Web反向代理?

     A.http_access

     B.http_port 3128 transparent

     C.http_port 80 vhost

     D.cache_peer

     

    正确答案:C

    10.

    (单选题)启动memcached服务时,使用什么( )选项可以指定其所占用的内存容量大小。

     A.-m

     B.-u

     C.-l

     D.-v

     

    正确答案:A

    11.

    (单选题)若执行如下命令 #head -5 /etc/passwd | awk 'END{print NR,FNR}'  则最后输出的结果是( )。

     A.5 1

     B.5 5

     C.0 0

     D.1 5

     

    正确答案:B

    12.

    (单选题)Nginx配置文件中( )指令可以定义客户端浏览器缓存数据的时间。

     A.cached

     B.expires

     C.ttl

     D.time

     

    正确答案:B

    13.

    (单选题)MySQL服务默认监听的端口是多少()?

     A.3306

     B.80

     C.3128

     D.3260

     

    正确答案:A

    14.

    (单选题)在启动memcached时,什么选项( )用来限制memcached服务的最大连接数?

     A.-m

     B.-c

     C.-n

     D.-d

     

    正确答案:B

    15.

    (单选题)使用( )工具可以对Web服务器进行压力测试。

     A.ab

     B.web

     C.press

     D.test

     

    正确答案:A

    16.

    (单选题)Shell脚本中使用哪个命令可以对数据进行排序()?

     A.uniq

     B.more

     C.sed

     D.sort

     

    正确答案:D

    17.

    (单选题)关于命令 hostname=www.tarena.com; echo ${hostname%%.*} 的执行结果,以下描述正确的是( )。

     A.tarena.com

     B.www

     C.com

     D.www.tarena

     

    正确答案:B

    18.

    (单选题)Ning中( )变量可以获取客户端浏览器的信息。

     A.http_userr_browser

     B.http_user_agent

     C.http_agent

     D.http_browser

     

    正确答案:B

    19.

    (单选题)以下哪个选项( )可以删除文件test.txt中每一行里的所有数字。

     A.sed -i 's/[0-9]//' test.txt

     B.sed -ri 's/[0-9]+//g' test.txt

     C.sed -i 's/[0-9]+//g' test.txt

     D.sed -ri 's/[0-9]+//' test.txt

     

    正确答案:B

    20.

    (单选题)Nginx配置文件中,使用( )指令定义集群以及集群中后台服务器池?

     A.backend

     B.servers

     C.upstream

     D.failserver

     

    正确答案:C

    21.

    (单选题)Redis中对字串类型的数据进行递增操作的指令是什么( )?

     A.incr

     B.desc

     C.decr

     D.add

     

    正确答案:A

    22.

    (单选题)Linux操作系统对能够打开的最大文件数量进行了限制,默认为1024,通过修改哪个参数,可以调整这个限制()?

     A.nonumber

     B.nofile

     C.nosys

     D.nocore

     

    正确答案:B

    23.

    (单选题)Redis使用( )指令,可以清空当前数据库中的所有数据。

     A.flushall

     B.deleteall

     C.delete

     D.flush

     

    正确答案:A

    24.

    (单选题)Squid配置文件中使用( )语句设置服务所监听的端口。

     A.Listen

     B.port

     C.http_port

     D.tco_port

     

    正确答案:C

    25.

    (单选题)Linux命令行中,对多个命令进行逻辑分隔时,仅前一个命令成功才执行下一个命令,应该使用什么分隔符()?

     A.&

     B.%

     C.&&

     D.|

     

    正确答案:C

    26.

    (单选题)使用正则表达式时,以下( )可以匹配MAC地址。

     A.(..):(..) :(..) :(..) :(..) :(..)

     B.([a-fA-F0-9]{2}:){5}[a-fA-F0-9]{2}

     C.([a-fA-F0-9]:){5}[a-fA-F0-9]{2}

     D.([a-fA-F0-9]{2}:){5}[a-fA-F]{2}

     

    正确答案:B

    27.

    (单选题)Shell脚本中使用,什么命令可以取消一个已经定义的变量( )?

     A.unset 变量名

     B.set 变量名

     C.delete 变量名

     D.clear 变量名

     

    正确答案:A

    28.

    (单选题)Linux命令行中,对多个命令进行逻辑分隔时,仅前一个命令不成功才执行下一个命令,应该使用什么分隔符()?

     A.&

     B.%%

     C.&&

     D.||

     

    正确答案:D

    29.

    (单选题)默认PHP无法连接memcached服务器进行数据库的读写操作,需要为其安装( )扩展才可以实现该功能。

     A.extention

     B.so

     C.dll

     D.memcache

     

    正确答案:D

    30.

    (单选题)命令行中执行如下命令: #sed '2h;3H;2,3d;5G' a.txt 关于最后的执行结果,以下描述正确的是( )。

     A.把文件的第3行剪切到第5行的下方;

     B.把文件的第2行和第3行剪切到第5行的下方;

     C.把文件的第2行剪切到第5行的下方;

     D.把文件的第2行和第3行删除;

     

    正确答案:B

    31.

    (多选题)Nginx支持如下哪三种虚拟主机模式( )?

     A.基于域名的虚拟主机

     B.基于权限的虚拟主机

     C.基于端口的虚拟主机

     D.基于IP的虚拟主机

     

    正确答案:ACD

    32.

    (多选题)在Nginx服务器上实现地址重写的作用是( )。

     A.加速访问速度

     B.缩短URL

     C.隐藏页面真实路径

     D.易于被搜索引擎收录

     

    正确答案:BCD

    33.

    (多选题)Bash具有记录命令历史的功能,哪些方式可以定义最大历史记录的数量?

     A.命令行直接执行:HISTSIZE=500

     B.命令行直接执行:history=500

     C.修改/etc/profile文件,设置HISTSIZE=500

     D.修改/etc/profile文件,设置history=500

     

    正确答案:AC

    34.

    (多选题)sed可以通过如下哪些方式( ),定位操作的行?

     A.随机数定位

     B.文件名定位

     C.行号定位

     D.正则表达式定位

     

    正确答案:CD

    35.

    (多选题)目前常见的Servlet容器有哪些( )。

     A.Tomcat

     B.Jboss

     C.websphere

     D.weblogic

     

    正确答案:ABCD

    36.

    (多选题)在正则表达式中,下列哪些( )选项代表所有的大小写字母?

     A.[a-zA-Z]

     B.[a-Z]

     C.[Z-a]

     D.[Z-Az-a]

     

    正确答案:AB

    37.

    (多选题)在Linux系统中,需要对字串进行截取时,可以使用哪些工具?

     A.ls

     B.cut

     C.${}

     D.expr substr

     

    正确答案:BCD

    38.

    (多选题)Nginx实现SSL加密通讯时,需要提前创建( )文件。

     A.权限文件

     B.访问控制文件

     C.私钥文件

     D.证书文件

     

    正确答案:CD

    39.

    (多选题)客户端可以通过哪些方式访问subversion版本库()?

     A.通过FTP共享

     B.通过本地访问

     C.通过SVN服务

     D.通过Web服务

     

    正确答案:BCD

    40.

    (多选题)awk命令支持有条件地执行某些指令,仅当条件满足时才执行{}中的指令,awk支持如下哪些判断条件?

     A.正则判断

     B.数字判断

     C.字符判断

     D.文件大小判断

     

    正确答案:ABC

    41.

    (多选题)Shell脚本中定义使用函数的好处有( )。

     A.让脚本更复杂

     B.让代码更简洁

     C.增强代码的可读性

     D.隐藏代码

     

    正确答案:BC

    42.

    (多选题)Nginx配置文件中,使用( )指令可以设置允许和拒绝访问的规则?

     A.Deny

     B.refuse

     C.Allow

     D.permit

     

    正确答案:AC

    43.

    (多选题)下列关于Shell脚本中的if判断语句,说法正确的是()?

     A.仅支持单分支条件判断

     B.支持单分支条件判断

     C.不支持多分支条件判断

     D.支持多分支条件判断

     

    正确答案:BD

    44.

    (多选题)在memcached中创建一个新的键值对,可以使用哪些( )指令。

     A.new

     B.append

     C.set

     D.add

     

    正确答案:CD

    45.

    (多选题)Varnish支持将缓存数据存储在哪些设备()?

     A.内存

     B.硬盘

     C.CPU一级缓存

     D.显存

     

    正确答案:AB

    46.

    (多选题)Redis服务设置主从同步时,需要对主从服务器做哪些( )设置。

     A.主服务器设置requirepass

     B.从服务器设置slaveof

     C.从服务器设置masterauth

     D.主服务器设置slaveof

     

    正确答案:ABC

    47.

    (多选题)awk命令中条件判断的”逻辑与”和”逻辑或”分别使用( )表示。

     A.&

     B.&&

     C.||

     D.|

     

    正确答案:BC

    48.

    (多选题)如下哪条命令( ),可以对变量i进行自加2的操作。

     A.let i+=2

     B.i=i+2

     C.let i++

     D.let ++i

     

    正确答案:AB

    49.

    (多选题)客户端通过代理软件访问缓存页面时,通常使用( )关键词来表示缓存的命中与未命中。

     A.hit

     B.miss

     C.yes

     D.no

     

    正确答案:AB

    50.

    (多选题)Linux系统中常用Shell有哪些( )。

     A.bash

     B.ksh

     C.mysh

     D.sh

     

    正确答案:ABD

     

     

     

     

    填空题:
    1. 在Linux系统中,以 文件 方式访问设备 。
    2. Linux内核引导时,从文件 /etc/fstab 中读取要加载的文件系统。
    3. Linux文件系统中每个文件用 i节点 来标识。
    4. 全部磁盘块由四个部分组成,分别为引导块 、专用块 、 i节点表块 和数据存储块
    5. 链接分为: 硬链接 和 符号链接
    6. 超级块包含了i节点表 空闲块表 等重要的文件系统信息。
    7. 某文件的权限为:d-rw-_r--_r--,用数值形式表示该权限,则该八进制数为: 644 ,该文件属性是 目录 
    8. 前台起动的进程使用 Ctrl+c 终止。
    9. 静态路由设定后,若网络拓扑结构发生变化,需由系统管理员修改路由的设置。
    10. 网络管理的重要任务是: 控制 和 监控 。
    11. 安装Linux系统对硬盘分区时,必须有两种分区类型: 文件系统分区 交换分区 。
    13. 编写的Shell程序运行前必须赋予该脚本文件 执行 权限。
    14. 系统管理的任务之一是能够在 分布式 环境中实现对程序和数据的安全保护、备份、恢复和更新。
    15. 系统交换分区是作为系统 虚拟存储器 的一块区域。
    16. 内核分为 进程管理系统 、 内存管理系统  I/O管理系统 文件管理系统 等四个子系统。
    17. 内核配置是系统管理员在改变系统配置 硬件 时要进行的重要操作。
    18. 在安装Linux系统中,使用netconfig程序对网络进行配置,该安装程序会一步步提示用户输入主机名、域名、域名服务器、IP地址、 网关地址 和 子网掩码 等必要信息。
    19. 唯一标识每一个用户的是用户 ID 和用户名。
    20 . RIP 协议是最为普遍的一种内部协议,一般称为动态路由信息协议。
    21. 在Linux系统中所有内容都被表示为文件,组织文件的各种方法称为 文件系统 。
    22. DHCP可以实现动态 IP 地址分配
    23. 系统网络管理员的管理对象是服务器、 用户 和服务器的进程 以及系统的各种资源。
    24. 网络管理通常由监测传输管理三部分组成,其中管理部分是整个网络管理的中心。
    25. 当想删除本系统用不上的 设备驱动程序 时必须编译内核,当内核不支持系统上的 设备驱动程序 时,必须对内核 升级 。
    26 Ping命令可以测试网络中本机系统是否能到达 一台远程主机 ,所以常常用于测试网络的 连通性 。
    27. vi编辑器具有两种工作模式: 命令模式 和 输入模式 
    28. 可以用ls –al命令来观察文件的权限,每个文件的权限都用10位表示,并分为四段,其中第一段占 1 位,表示 文件类型 ,第二段占3位,表示 文件所有者 对该文件的权限。
    29. 进程与程序的区别在于其动态性,动态的产生和终止,从产生到终止进程可以具有的基本状态为: 运行态 、 就绪态 和 等待态(阻塞态) 
    30. DNS实际上是分布在internet上的主机信息的数据库,其作用是实现 IP地址和主机名 之间的转换。
    31. Apache是实现WWW服务器功能的应用程序,即通常所说的“浏览web服务器”,在服务器端 为用户提供浏览 web服务 的就是apache应用程序。
    32. 在Linux系统上做备份可以有两种类型:系统备份 和 用户备份 。其中前者是指对 操作系统 的备份,后者是指对 应用程序和用户文件的备份
    33. CD-ROM标准的文件系统类型是 iso9660 。
    34. 当lilo.conf配置完毕后,使之生效,应运行的命令及参数是 lilo
    35. 在使用ls命令时,用八进制形式显示非打印字符应使用参数 -b 
    36. Linux使用支持Windows 9.x/2000长文件名的文件系统的类型是 vfat 
    37. 设定限制用户使用磁盘空间的命令是 quota
    38 在Linux系统中,用来存放系统所需要的配置文件和子目录的目录是 /etc
    39. 硬连接只能建立对 文件 链接。符号链接可以跨不同文件系统创建。
    40. 套接字文件的属性位是 s
    41. 结束后台进程的命令是 kill
    42. 进程的运行有两种方式,即 独立运行和使用父进程运行
    43. Links分为 硬链接和符号链接 。
    44. 在超级用户下显示Linux系统中正在运行的全部进程,应使用的命令及参数是 ps -aux
    45. 管道文件的属性位是 p
    46. 将前一个命令的标准输出作为后一个命令的标准输入,称之为 管道 。
    47. 为脚本程序指定执行权的命令及参数是 chmod a+x filename
    48. 进行远程登录的命令是 telnet
    49. 欲发送10个分组报文测试与主机abc.tuu.edu.cn的连通性,应使用的命令和参数是: ping abc.tuu.edu.cn –c 10 。
    50. DNS服务器的进程命名为named,当其启动时,自动装载 /etc目录下的 named.conf 文件中定义的DNS分区数据库文件。
    51. Apache服务器进程配置文件是 httpd.conf

    52.在 Linux系统中,压缩文件后生成后缀为.gz文件的命令是 gzip
    53. 在用vi编辑文件时,将文件内容存入test.txt文件中,应在命令模式下键入 :w test.txt
    54 可以在标准输出上显示整年日历的命令及参数是 cal -y
    55. 在shell编程时,使用方括号表示测试条件的规则是:方括号两边必须有 空格 。
    56. 检查已安装的文件系统/dev/had5是否正常,若检查有错,则自动修复,其命令及参数是 fsck –a /dev/had5
    57. 在Windows9.x环境下共享Unix/Linux中的用户目录的一个工具是 Samba服务器
    58. 系统管理员的职责是进行系统资源管理、系统性能管理、设备管理、安全管理和 系统性能监测 。
    59 在Linux系统中,测试DNS服务器是否能够正确解析域名的的客户端命令,使用命令 nslookup
    60. 在Linux系统下,第二个IDE通道的硬盘(从盘)被标识为 hdb 。
    61. 当系统管理员需升级内核版本和改变系统硬件配置时,应 重新编译内核 。
    62. 如果只是要修改系统的IP地址,应修改 /etc/rc.d/rc.inet1 配置文件。
    63. 当LAN内没有条件建立DNS服务器,但又想让局域网内的用户可以使用计算机名互相访问时,应配置 /etc/hosts 文件。
    64. 在vi编辑环境下,使用 Esc键 进行模式转换。
    65. Slackware Linux 9.0通常使用 ext3 文件系统,系统的全部磁盘块由 四 部分组成。
    66. 将/home/stud1/wang目录做归档压缩,压缩后生成wang.tar.gz文件,并将此文件保存到/home目录下,实现此任务的tar命令格式 tar zcvf /home/wang.tar.gz /home/stud1/wang
    67. 管道就是将前一个命令的 标准输出 作为后一个命令的 标准输入 。
    68. 在使用手工的方法配置网络时,可通过修改 /etc/HOSTNAME 文件来改变主机名,若要配置该计算机的域名解析客户端,需配置 /etc/resolv.conf 文件。
    69. 启动进程有手动启动和调度启动两种方法,其中调度启动常用的命令为 at batch 和 crontab
    70. test.bns.com.cn的域名是 bns.com.cn ,如果要配置一域名服务器,应在 named.conf 文件中定义DNS数据库的工作目录。
    71. Sendmail邮件系统使用的两个主要协议是: SMTP  POP ,前者用来发送邮件,后者用来接收邮件。
    72. DHCP是动态主机配置协议的简称,其作用是:为网络中的主机分配IP地址 。
    73. 目前代理服务器使用的软件包有很多种,教材中使用的是 squid
    74. rm命令可删除文件或目录,其主要差别就是是否使用递归开关 -r或-R 。
    75. mv 命令可以移动文件和目录,还可以为文件和目录重新命名。
    76. 路由选择协议(

    运维面试题

    NETWORK

    1 请描述TCP/IP协议中主机与主机之间通信的三要素

    参考答案

    IP地址(IP address)

    子网掩码(subnet mask)

    IP路由(IP router)

    2 请描述IP地址的分类及每一类的范围

    参考答案

    A类1-26

    B类128-191

    C类192-223

    D类224-239组播(多播)

    E类240-254科研

    3 请描述A、B、C三类IP地址的默认子网掩码

    参考答案

    A类255.0.0.0

    B类255.255.0.0

    C类255.255.255.0

    4 请描述预留给企业的私有网络使用的私有IP有哪三段

     

    参考答案

    A类 10.0.0.1-10.255.255.254

    B类 172.16.0.1-172.16.31.254

    C类 192.168.0.1-192.168.255.254

     

    5组建一个企业网络按照TCP/IP五层参考模型的标准,每个层次需要选购哪些相应层次的设备

     

    参考答案

    应用层 计算机

    传输层 防火墙

    网络层 路由器

    数据链路层 交换机

    物理层 网卡

     

    6 请分别描述T568A、 T568B的线序

     

    参考答案

    T568A:白绿、绿、白橙、蓝、白蓝、橙、白棕、棕

    T568B:白橙、橙、白绿、蓝、白蓝、绿、白棕、棕

     

    7 请简要描述交换机的工作原理

     

    参考答案

    初始状态

    根据源MAC地址学习

    除源端口外的端口广播未知数据帧

    接收方回应

    交换机实现单播通信

    8 MAC地址的长度,组成及单播、组播、广播地址的表示方式

     

    参考答案

    MAC地址长度48位,前24位代表厂商,后24位代表网卡编号,MAC 地址的第8位为0时表示该MAC地址为单播地址,为1时表示组播地址,48位都为1表示广播地址。

     

    9 请简要描述网络层有哪些常见协议

     

    参考答案

    ARP协议

    RARP协议

    代理ARP

    ICMP协议

    10 什么是TTL,作用并简要描述TTL的原理

     

    参考答案

    TTL是数据生命周期

    作用:避免数据在网络中无限循环转发

    原理:当网络中的数据包每经过一个路由器TTL值减1,当TTL值为0时,数据包丢弃。

     

    11 请描述SMTP及POP3分别是什么协议、作用及端口号

     

    参考答案

    SMTP:简单邮件传输协议,用于发送和接收邮件,端口号25。

    POP3:邮局协议版本3,用于客户端接收邮件,端口号110。

    12 请描述http及https分别是什么协议、作用及端口号

     

    参考答案

    HTTP:超文本传输协议,用于传输Internet浏览器使用的普通文本、超文本、音频和视频等数据,端口号为TCP的80。

    HTTPS:安全超文本传输协议,基于HTTP开发,提供加密,可以确保消息的私有性和完整性,端口号为443工作区子系统。

     

     

     

    CISCO

     

    1  ISL和802.1Q 有哪些异同

    参考答案

    相同点:都是显式标记,即帧被显式标记了VLAN的信息。

    不同点:IEEE 802.1Q是公有的标记方式,ISL是Cisco私有的。ISL采用外部标记的方法,802.1Q采用内部标记的方法,ISL标记的长度为30字节,802.1Q标记的长度为4字节。

     

    2  RIP的最大跳数是

    A. 15

    B. 16

    C. 12

    D. 18

    参考答案

    最大路数为A 选项。

    这是因为,RIP度量值为跳数 ,最大跳数为15跳,16跳为不可达。

    3 三层交换机的作用

    参考答案

    三层交换机是具有网络层功能的交换机,三层交换=二层交换+三层转发,使用三层交换技术实现VLAN间通信。

    4 请描述基于CEF 的快速转发有哪两个信息表

    参考答案

    转发信息库(FIB):FIB类似于路由表,包含路由表中转发息的镜像。当网络的拓扑发生变化时,路由表将被更新,而FIB也将随之变化,这些信息是根据路由表中的信息得到的。

    邻接关系表:存储第2层编址信息,对于每个FIB条目,邻接关系表中都包含相应的第2层地址。

     

    5 什么是STP及作用

    参考答案

    STP :生成树协议

    作用:逻辑上断开环路,防止广播风暴的产生。当线路故障,阻塞接口被激活,恢复通信,起备份线路的作用。

    6 什么是HSRP及作用

    参考答案

    HSRP:热备份路由选择协议

    作用:确保了当网络边缘设备或接入链路出现故障时,用户通信能迅速并透明地恢复,以此为IP网络提供冗余性。通过使用同一个虚拟IP地址和虚拟MAC地址,LAN网段上的两台或者多台路由器可以作为一台虚拟路由器对外提供服务。

    7 交换机端口有哪5种STP状态

    参考答案

    转发(Forwarding)

    学习(Learning)

    侦听(Listening)

    阻塞(Blocking)

    禁用(Disabled)

    8 请描述访问控制列表有哪三种类型

    参考答案

    标准访问控制列表

    扩展访问控制列表

    命名访问控制列表

    9 请描述扩展访问控制的作用及列表号

    参考答案

    作用:

    可以根据源IP地址,目的IP地址,指定协议,端口等过滤数据包。

    扩展访问控制列表号:

    100-199

    10 请简要描述访问控制列表的处理过程

    参考答案

    如果匹配第一条规则,则不再往下检查,路由器将决定该数据包允许通过或拒绝通过。

    如果不匹配第一条规则,则依次往下检查,直到有任何一条规则匹配。

    如果最后没有任何一条规则匹配,则路由器根据默认的规则将丢弃该数据包。

    11 请简要描述NAT的作用

    参考答案

    通过将内部网络的私有IP地址翻译成全球唯一的公网IP地址,使内部网络可以连接到互联网等外部网络上。

    12 请描述NAT 的优点及缺点

    参考答案

    优点:

    节省公有合法IP地址

    处理地址重叠

    增强灵活性

    安全性

    缺点:

    延迟增大

    配置和维护的复杂性

    不支持某些应用,可以通过静态NAT映射来避免

    13 请描述NAT三种实现方式的区别

    参考答案

    静态转换的对应关系一对一且不变,并且没有节约公用IP,只隐藏了主机的真实地址。

    动态转换虽然在一定情况下节约了公用IP,但当内部网络同时访问Internet的主机数大于合法地址池中的IP数量时就不适用了。

    端口多路复用可以使所有内部网络主机共享一个合法的外部IP地址,从而最大限度地节约IP地址资源。

     

     

     

    SYSTEM

     

     

    1 什么是绝对路径?什么是相对路径?

    参考答案

    绝对路径:以 / 开始的完整路径

    相对路径:以当前工作目录为参照的路径

     

    2 常见通配符的含义。

    在命令行环境中,通配符 * 、?、[n-m] 、{n,m} 各自的含义是什么?

    参考答案

    * :匹配任意个数的任意字符

    ? :匹配任意单个字符

    [n-m] :匹配从n到m这个连续范围内的任意单个字符

    {n,m} :匹配字符串n或m

     

    3 Linux中管道“|”的作用?

    参考答案

    将前一个命令的输出结果,交由后面命令处理,当做后面命令的参数

     

    4 简述find命令的格式及常见用法。

    参考答案

    命令格式:find [查找范围] [查找条件]

    常见的查找条件设置:

    -type:按文件类型查找

    -name:按文件名称查找

    -size:按文件大小查找

    -mtime:按内容修改的时间

     

     5  vim编辑器的工作模式及切换。

    vim编辑器包括哪几种模式,各自的作用是什么,如何切换?

    参考答案

    主要包括三种工作模式:

    命令模式:启动vim编辑器后默认进入命令模式,该模式中主要完成如光标移动、字符串查找,以及删除、复制、粘贴文件内容等相关操作。

    输入模式:该模式中主要的操作就是录入文件内容,可以对文本文件正文进行修改、或者添加新的内容。处于输入模式时,vim编辑器的最后一行会出现“—插入 --”的状态提示信息。

    末行模式:该模式中可以设置vim编辑环境、保存文件、退出编辑器,以及对文件内容进行查找、替换等操作。处于末行模式时,vim编辑器的最后一行会出现冒号“:”提示符。

     

    6  YUM简介。

    什么是YUM,其作用是什么,主要支持哪几种方式提供软件源?

    参考答案

    是一种基于“C/S”结构的RPM软件更新机制,所有的软件包由集中的软件仓库提供,能够自动分析并解决软件包之间的依赖关系。

    支持的软件源主要包括:

    本地文件夹:file://.. ..

    FTP服务器:ftp://.. ..

    HTTP服务器:http://

    2 客户端配置文件。

     

    在建立 .repo 仓库配置文件时,常见的配置条目如下所示,请补充各自的作用。

    [Server]:( )

    name:( )

    baseurl:( )

    enabled:( )

    gpgcheck:( )

    gpgkey:( )

    参考答案

    自定义源的名称,具有唯一性

    本软件源的描述字串

    指定YUM服务端的URL地址

    是否启用此频道

    是否验证待安装的RPM包

    用于RPM验证的密钥文件

    3 客户端配置文件路径与命名。

     

    为RHEL6服务器指定要使用的YUM源时,建立的配置文件一般应放在( )目录下,其扩展名应该是( )。

    参考答案

    /etc/yum.repos.d、.repo

     

    7 编译源码包过程介绍。

    采用源码包编译的方式安装软件包时,有哪些基本过程、各自的作用是什么?

    参考答案

    tar解包:解压、释放安装包内的文件

    ./configure配置:针对当前系统环境指定安装目录、选择功能等设置。

    make编译:将源代码编译成二进制的可执行程序、库文件等数据。

    make install:将编译好的程序文件、配置文档等复制到对应的安装目录。

    8 Linux目录结构介绍。

    Linux系统的根目录下主要包括哪些文件夹,各自的作用是什么?

    参考答案

    /boot:存放Linux内核、引导配置等启动文件。

    /bin:存放最基本的用户命令,普通用户有权限执行。

    /dev:存放硬盘、键盘、鼠标、光驱等各种设备文件。

    /etc:存放各种配置文件、配置目录。

    /home:存放普通用户的默认工作文件夹(即宿主目录、家目录)。

    /root:Linux系统管理员(超级用户)root的宿主目录。

    /sbin:存放最基本的管理命令,一般管理员用户才有权限执行。

    /usr:存放额外安装的应用程序、源码编译文件、文档等各种用户资料。

    /var:存放日志文件、用户邮箱目录、进程运行数据等变化的文档。

    /tmp:存放系统运行过程中使用的一些临时文件。

     

    9 find命令的扩展。

    在Linux中find常见的选项都有哪些?都有什么作用?

    参考答案

    -type:按文件类型查找

    -name:按文件名称查找

    -size:按文件大小查找

    -mtime:按内容修改的时间

    -iname:根据名称查找,忽略大小写

    -uid:根据uid查找,属于这个用户的文件

    -gid :根据gid查找,属于这个组的文件

    -user :根据用户名查找,查找属于这个用户的

    -group :根据组名查找,查找属于这个组的

    -nouser :查找这个文件不属于任何用户的

    -nogroup :查找这个文件不属于任何组的

    -maxdepth :限制目录查找的深度

    -inum :根据文件i节点编号查找

    10 简述autofs服务。

    作用、主要配置文件、配置要点?

    参考答案

    1)autofs的作用:

    autofs即触发挂载,它是一种看守程序。如果检测到用户正试图访问一个尚未挂载的文件系统,它就会自动检测该文件系统,如果存在,那么autofs会自动将其挂载。另一方面,如果它检测到某个已挂载的文件系统在一段时间内没有被使用,那么autofs会自动将其卸载。因此一旦运行了autofs后,用户就不再需要手动完成文件系统的挂载和卸载。

    2)autofs的配置文件:/etc/auto.master与/etc/auto.misc

    11 简述LVM的含义及特点。

    LVM的含义及优势?/boot是否可建立在LVM卷上,为什么?

    参考答案

    1)LVM:用来整合磁盘空间和文件系统的一种逻辑机制,通过将多个物理分区/磁盘从逻辑上组合成一个更大的整体,从这个整体中划分出不同的逻辑分区,用来创建文件系统。

    2)LVM的主要优势如下所述:

    逻辑分区的大小可以根据需要扩大和缩减,因此生产系统上的文件系统也可以在线改变大小(在卷组容量范围内),不会导致系统中断

    物理存储空间(硬盘、分区)由LVM统一组织为卷组,可以方便的加入或移走分区,以扩大或减小卷组的容量,充分利用硬盘空间

    文件系统建立在LVM逻辑卷之上,可以跨越分区、跨越磁盘,方便使用

    3)/boot不能建立在LVM之上,因为/boot/目录下存放着引导程序,而Linux启动不支持从LVM卷上读取引导程序。

     

    12 简述RAID的含义及特点。

    RAID的含义及优势?RAID0、RAID1、RAID5分别指什么、各自的特点?

    参考答案

    1)RAID:廉价冗余磁盘阵列,指通过硬件/软件技术将多个较小/低速的磁盘整合成一个大磁盘使用的一种存储技术,其不仅可存储数据,还可以实现一定程度的冗余保障,具有“速度快、安全性高”的优势。

    2)RAID0、RAID1、RAID5的含义及特点如下:

    RAID0:条带模式,由两个或两个以上的磁盘组成,同一份文档分散在不同的磁盘中,并行写入,提高写效率。

    RAID1:镜像模式,由至少两个磁盘组成,同一份文件被分别写入到不同的磁盘中,每份磁盘数据一样,实现容错,提高读效率。

    RAID5:分布式奇偶校验的独立磁盘模式,结合RAID0和RAID1的好处,同时避免它们的缺点。由至少3块以上大小相同的磁盘组成,实现冗余。

    13  RHEL6.x系统包括哪几种运行级别。

    各自的特点是什么?

    参考答案

    默认包括7种运行级别:

    0:关机

    1:单用户模式

    2:字符界面的多用户模式(不支持网络)

    3:字符界面的完整多用户模式

    4:未分配使用

    5:图形界面的多用户模式

    6:重启

    14请描述RHEL6.x系统的引导过程?

    参考答案

    加载BIOS,检查硬件信息

    读取并执行第一个开机设备内MBR

    运行grub引导加载 kernel

    内核启动/sbin/init程序

    init 系统初始化

    确定默认的运行级别

    触发runlevel事件,运行/etc/rc.d/rc

    最后执行/etc/rc.d/rc.local

    加载终端或X-Window接口

    15  SSH协议简介。

    OpenSSH服务器使用的协议、默认端口、主配置文件分别是什么?SSH与Telnet应用的区别在哪里?

    参考答案

    OpenSSH使用TCP协议,默认端口是22,主配置文件/etc/ssh/sshd_config。

    SSH的英文全称是Secure SHell,即安全外壳。SSH会把传输过程中的数据加密,且支持压缩以提高传输速度;而Telnet在网络上以明文传送口令和数据,安全级别低,容易受到攻击。

    16  Linux常见的系统日志文件都有哪些,各自的用途?

    参考答案

    /var/log/messages 内核及公共消息日志

    /var/log/cron 计划任务日志

    /var/log/dmesg 系统引导日志

    /var/log/maillog 邮件系统日志

    /var/log/secure 记录与访问限制相关日志

    17 常见的linux开机设置文件。

    /etc/fstab与/etc/initab、/etc/rc.local三个配置文件的作用?

    参考答案

    /etc/fstab:实现开机自动挂载设备的配置文件

    /etc/initab:定义开机进入默认级别的配置文件

    /etc/rc.local:定义开机自定义任务的配置文件

    18 FTP协议简介。

    FTP服务器在传输层使用的协议、默认端口、FTP主目录绝对路径?

    参考答案

    FTP服务器在传输层使用的协议是tcp

    默认的端口号为21

    FTP主目录为/var/ftp

    19,suid,sgid,sticky bit 的作用?

    suid, 以属主的身份运行程序

    sgid, 在目录中创建的文件继承所在目录的属主

    sticky bit  用户只能修改,删除自己的文件

     

    20.解释下什么是GPL,GNU,自由软件?

    GPL:(通用公共许可证):一种授权,任何人有权取得、修改、重新发布自由软件的权力。

    GNU:(革奴计划):目标是创建一套完全自由、开放的的操作系统。

    自由软件:是一种可以不受限制地自由使用、复制、研究、修改和分发的软件。主要许可证有GPL和BSD许可证两种。

     

    21.如何选择Linux操作系统版本?

    一般来讲,桌面用户首选Ubuntu;服务器首选RHEL或CentOS,两者中首选CentOS。

    根据具体要求:

    ①安全性要求较高,则选择Debian或者FreeBSD。

    ②需要使用数据库高级服务和电子邮件网络应用的用户可以选择SUSE。

    ③想要新技术新功能功能可以选择Feddora,Feddora是RHEL和CentOS的一个测试版和预发布版本。

    ④根据现有状况,绝大多数互联网公司选择CentOS。现在比较常用的是6系列,现在市场占有大概一半左右。另外的原因是CentOS更侧重服务器领域,并且无版权约束。

     

    22.初学者在Linux系统的开机启动项如何选择?

    建议选择五个开机启动项:

    ①.crond: 该服务用于周期地执行系统及用户配置的计划任务。有要周期性执行的任务计划需要开启,此服务是生产场景必须要用的一个软件。

    ②.iptables: iptables包过滤防火墙,有外网IP时,考虑开启。

    ③.network: 启动系统时,若想激活/关闭启动时的各个网络接口,则应(必须)考虑开启。

    ④.sshd: 远程连接Linux服务器时需要用到这个服务程序,所以必须要开启,否则将无法远程连接到Linux服务器。

    ⑤.rsyslog: 是操作系统提供的一种机制,系统的守护程序通常会使用rsyslog将各种信息收集写入到系统日志文件中,CentOS6以前此服务的名字为syslog。

    ⑥.sysstat: 是一个软件包,包含监测系统性能及效率的一组工具,这些工具对于Linux系统性能数据很有帮助,比如CPU使用率、硬盘和网络吞吐数据等,这些数据的分析,有利于判断系统运行是否正常,所以它是提高系统运行效率、安全运行服务的助手。

     

    23.请描述Linux系统优化的12个步骤。

    ⑴登录系统:不使用root登录,通过sudo授权管理,使用普通用户登录。

    ⑵禁止SSH远程:更改默认的远程连接SSH服务及禁止root远程连接。

    ⑶时间同步:定时自动更新服务器时间。

    ⑷配置yum更新源,从国内更新下载安装rpm包。

    ⑸关闭selinux及iptables(iptables工作场景如有wan ip,一般要打开,高并发除外)

    ⑹调整文件描述符数量,进程及文件的打开都会消耗文件描述符。

    ⑺定时自动清理/var/spool/clientmquene/目录垃圾文件,防止节点被占满(c6.4默认没有sendmail,因此可以不配。)

    ⑻精简开机启动服务(crond、sshd、network、rsyslog)

    ⑼Linux内核参数优化/etc/sysctl.conf,执行sysct -p生效。

    更改字符集,支持中文,但是还是建议使用英文,防止乱码问题出现。

    ⑾锁定关键系统文件(chattr +i /etc/passwd /etc/shadow /etc/group /etc/gshadow /etc/inittab 处理以上内容后,把chatter改名,就更安全了。

    ⑿清空/etc/issue,去除系统及内核版本登陆前的屏幕显示。

     

    24.描述Linux运行级别0-6的各自含义

    0:关机模式

    1:单用户模式<==破解root密码

    2:无网络支持的多用户模式

    3:有网络支持的多用户模式(文本模式,工作中最常用的模式)

    4:保留,未使用

    5:有网络支持的X-windows支持多用户模式(桌面)

    6: 重新引导系统,即重启

     

    25.描述Linux系统从开机到登陆界面的启动过程

    ⑴开机BIOS自检,加载硬盘。

    ⑵读取MBR,MBR引导。

    ⑶grub引导菜单(Boot Loader)。

    ⑷加载内核kernel。

    ⑸启动init进程,依据inittab文件设定运行级别

    ⑹init进程,执行rc.sysinit文件。

    ⑺启动内核模块,执行不同级别的脚本程序。

    ⑻执行/etc/rc.d/rc.local

    ⑼启动mingetty,进入系统登陆界面。

     

    26.描述Linux下软链接和硬链接的区别

    在Linux系统中,链接分为两种,一种是硬链接(Hard link),另一种称为符号链接或软链接(Symbolic Link)。

    ①默认不带参数的情况下,ln创建的是硬链接,带-s参数的ln命令创建的是软链接。

    ②硬链接文件与源文件的inode节点号相同,而软链接文件的inode节点号,与源文件不同,

    ③ln命令不能对目录创建硬链接,但可以创建软链接。对目录的软链接会经常使用到。

    ④删除软链接文件,对源文件和硬链接文件无任何影响。

    ⑤删除文件的硬链接文件,对源文件及软链接文件无任何影响。

    ⑥删除链接文件的源文件,对硬链接文件无影响,会导致其软链接失效(红底白字闪烁状)。

    ⑦同时删除源文件及其硬链接文件,整个文件才会被真正的删除。

    ⑧很多硬件设备的快照功能,使用的就是类似硬链接的原理。

    ⑨软链接可以跨文件系统,硬链接不可以跨文件系统。

     

    27.生产场景如何对linux系统进行合理规划分区?

    分区的根本原则是简单、易用、方便批量管理。根据服务器角色定位建议如下:

    ①单机服务器:如8G内存,300G硬盘

    分区:  /boot 100-200M,swap 16G,内存大小8G*2,/ 80G,/var 20G(也可不分),/data 180G(存放web及db数据)

    优点:数据盘和系统盘分开,有利于出问题时维护。

    RAID方案:视数据及性能要求,一般可采用raid5折中。

    ②负载均衡器(如LVS等)

    分区:/boot 100-200M,swap 内存的1-2倍,/  ,

    优点:简单方便,只做转发数据量很少。

    RAID方案:数据量小,重要性高,可采用RAID1

    ③负载均衡下的RS server

    分区: /boot 100-200M,swap 内存的1-2倍,/  

    优点:简单方便,因为有多机,对数据要求低。

    RAID方案:数据量大,重要性不高,有性能要求,数据要求低,可采用RAID0

    ④数据库服务器mysql及oracle如16/32G内存

    分区:/boot 100-200M,swap 16G,内存的1倍,/ 100G,/data 剩余(存放db数据)

    优点:数据盘和系统盘分开,有利于出问题时维护,及保持数据完整。

    RAID方案:视数据及性能要求主库可采取raid10/raid5,从库可采用raid0提高性能(读写分离的情况下。)

    ⑤存储服务器

    分区:/boot 100-200M,swap 内存的1-2倍,/ 100G,/data(存放数据)

    优点:此服务器不要分区太多。只做备份,性能要求低。容量要大。

    RAID方案:可采取sata盘,raid5

    ⑥共享存储服务器(如NFS)

    分区:/boot 100-200M,swap 内存的1-2倍,/ 100G,/data(存放数据)

    优点:此服务器不要分区太多。NFS共享比存储多的要求就是性能要求。

    RAID方案:视性能及访问要求可以raid5,raid10,甚至raid0(要有高可用或双写方案)

    ⑦监控服务器cacti,nagios

    分区:/boot 100-200M,swap 内存的1-2倍,/

    优点:重要性一般,数据要求也一般。

    RAID方案:单盘或双盘raid1即可。三盘就RAID5,看容量要求加盘即可。

     

    28.描述Linux下文件删除的原理

    Linux系统是通过link的数量来控制文件删除的,只有当一个文件不存在任何link的时候,这个文件才会被删除。一般来说每个文件两个link计数器来控制i_count和i_nlink。当一个文件被一个程序占用的时候i_count就加1。当文件的硬链接多一个的时候i_nlink也加1。删除一个文件,就是让这个文件,没有进程占用,同时i_link数量为0。

    29.请简单描述VI编辑器的使用

    ①vi编辑器是linux系统下最最基本和最常用的标准文本编辑器。

    ②vi编辑器有三种工作模式:普通模式、编辑模式、命令模式。

    ③普通模式下的键盘输入任何字符都是当作命令来执行的,也可以输入命令进行光标的移动,字符、单词、行的复制、粘帖以及删除等操作。

    ④编辑模式主要用于文本的输入。在该模式下,用户输入的任何字符都被作为文件的内容保存起来。

    ⑤命令模式下,用户可以对文件进行一些如字符串查找、替换、显示行号等操作还是必须要进入命令模式的。

    ⑥在普通模式下输入冒号即可进入命令模式,此时vi窗口的状态行会显示出冒号,等待用户输入命令。“i”插入模式,即可以进行编辑。用户输入完成后,按【Esc】之后编辑器又返回到普通模式下,在命令模式下,保存退出,可以使用的命令为wq和x。前面加!表示强制退出,强制保存等。

     

    30.请简单说出用户管理的相关命令及用途

    #组管理命令

    groupadd #添加组

    groupdel #删除用户组

    groupmod #修改用户组

    groups  #显示当前用户所属的用户组

    grpck   #检查用户组及密码文件的完整性(etc/group以及/etc/gshadow文件)

    grpconv #通过/etc/group和/etc/gshadow 的文件内容来同步或创建/etc/gshadow ,如果/etc/gshadow 不存在则创建;

    grpunconv #通过/etc/group 和/etc/gshadow 文件内容来同步或创建/etc/group ,然后删除gshadow文件 。

     

    #用户管理命令

    useradd #添加用户

    adduser #添加用户

    passwd  #为用户设置密码

    usermod #修改用户命令,可以通过usermod 来修改登录名、用户的家目录等等

    pwcov   #同步用户从/etc/passwd 到/etc/shadow

    pwck   #pwck是校验用户配置文件/etc/passwd 和/etc/shadow文件内容是否合法或完整

    pwunconv #执行pwunconv指令可以关闭用户投影密码,它会把密码从shadow文件内,重回存到passwd文件里。

    finger #查看用户信息工具(危险命令,一般不用)

    id #查看用户的UID、GID及所归属的用户组

    chfn #更改用户信息工具

    su #用户切换工具

     

    31.请简述基础正则表达式grep高级参数的使用

    常用参数:

    -v排除匹配内容,

    -e支持扩展的正则表达式,

    -i忽略大小写,

    -o输出匹配的内容(只是一块,不是行),

    --color=auto 匹配内容显示颜色,

    -n 在行首显示行号。

    特殊字符注意事项:

    ^(尖括号)word :表示搜索以word开头的内容。

    word$ 表示搜索以word结尾的内容。

    ^$    表示的是空行,不是空格。

    .     代表且只能代表任意一个字符。非正则表达式其他功能(当前目录,加载文件)

    \     转义字符,让有着特殊身份意义的字符,脱掉马甲,还原原型。例如\.只表示原始小数点意义。

    *    表示重复0个或多个前面的一个字符。不代表所有。

    .*   表示匹配所有的字符。^.*表示以任意字符开头。

    [任意字符如abc] 匹配字符集内任意一个字符[a-z]。

    [^abc] ^在中括号里面是非的意思,不包含之意。意思就是不包含a或b或c的行。

    {n,m} 表示重复n到m次前一个字符。{n}至少n次,多了不限。{n}N次,{,m}至多m次,少了不限。

    注:使用grep或sed要对{}转义。即\{\}.egrep就不需要转义了。

     

    32.请简述基础正则表达式sed高级参数的使用(计时4分钟)

    解答:

    -n取消默认输出

    -p 打印

    -d删除

    -e允许多项编辑

    sed取行,要特别注意sed -n 's###g' filename 的使用,sed的\( \)的功能可以记住正则表达式的一部分,其中,\1为第一个记住的模式即第一个小括号中的匹配内容,\2第二记住的模式,即第二个小括号中的匹配内容,sed最多可以记住9个。

    实际字符的选取最好要唯一,正则表达式是贪婪的,总是尽可能的匹配更远的符合匹配的内容。另外注意字符串中的空格。

     

    33.请给出查看当前哪些用户在线的Linux命令

    w        #显示目前系统登录用户

    who      #显示目前已登录用户信息

    last     #列出目前与过去登入系统的用户相关信息

    lastlog  #检查某特定用户上次登录时间

    whoami   #打印与当前生效的用户ID关联的用户名

    finger   #用户信息查找程序

    id       #显示指定用户或当前用户的用户与组信息

     

    34.请你描述下crontab的作用和语法,以及书写定时任务注意的要点。

    设置crontab后我们可以使得Linux主动执行的在固定的间隔时间,执行指定的系统指令或 shell script脚本。生产环境可以用来日志分析或生产备份等。

    语法格式:

    crontab [ -u user ] file     ===》-u的意思就是指定用户

    crontab [ -u user ] { -l 显示文件内容| -r全部删除crontab文件 | -e 编辑crontab文件| -i删除crontab文件前确认提示}

    举例:

    */5 10,12 * 3-8 * * /usr/sbin/ntpdate 10.0.0.155  >/dev/null  2>&1

    前五段是时间间隔的设定,单位分别是分钟、小时、日、月、周(尽量避免使用日月和周同时出现,以免造成系统误判)。

    第一个时间段 分钟 范围0-59

    第二个时间段 小时 范围0-23

    第三个世间段 日   范围1-31

    第四个时间段 月   范围1-12

    第五个时间段 周   范围0-7

     

    *星号代表任何时间都接受命令

    ,逗号,表示隔开。代表分隔的时间都适用此命令。

    - 减号,两个时间段之间,代表在此时间段内执行定时任务。

    /n斜线和n(数字)表示每隔n段时间执行一次。

     

    注意要点分为:书写基本要领与书写注意事项

    7个基本要领:

    第一、为定时任务规则加必要的注释

    第二、定时任务命令或程序最好写到脚本里执行

    第三、定时任务执行的脚本要规范路径,如:/server/scripts

    第四、执行shell脚本任务时前加/bin/sh

    执行定时任务时,如果是执行脚本,尽量在脚本前面带上/bin/sh命名

    第五、定时任务结尾加 >/dev/null 2>&1

    第六、/dev/null为特殊的字符设备文件,表示黑洞设备或空设备。

    第七、有关重定向的说明

    >或1>    输出重定向:把前面输出的东西输入到后边的文件中,会删除文件原有内容。

    >>或1>>  追加重定向:把前面输出的东西追加到后边的文件中,不会删除文件原有内容。

    <或<0     输入重定向:输入重定向用于改变命令的输入,指定输入内容,后跟文件名。

    <<或<<0   输入重定向:后跟字符串,用来表示“输入结束”,也可用ctrl+d来结束输入。

    2>        错误重定向:把错误信息输入到后边的文件中,会删除文件原有内容。

    2>>        错误追加重定向:把错误信息追加到后边的文件中,不会删除文件原有内容。

    标准输入(stdin):代码为0,使用<或<<。

    标准输出(stdout):代码为1,使用>或>>。正常的输出。

    标准错误输出(sederr):代码为2,使用2>或2>>。

    特殊:

    2>&1就是把标准错误重定向到标准输出(>&)。

    >/dev/null 2>&1 等价于 1>/dev/null  2>/dev/null

     

    35.请简述修改/etc/sudoers配置文件的注意事项

    ①别名的名称可以包含大写字母。数字、下划线。如果是字母必须要大写,(别名为一群拥有相同属性的集合)。

    ②一个别名下面可以有多个成员,成员间通过半角(,)逗号隔开。成员必须有效实际存在。

    别名成员受别名类型 Host_Alias、User_Alias、Runas_Alias、Cmnd_Alias制约,定义什么类型的别名,就要有相什么类型的成员匹配。

    ③用户组前面必须加%号。命令别名下的成员必须是文件或目录的绝对路径。

    ④指定切换用户要用()括号括起来,如果省略,则默认root用户,如果括号里是ALL,则代表能切换到所有用户。

    ⑤命令路径要使用全路径。

    ⑥别名规则每行算一个规则,一行容不下时用\续行。另外超过一行,用反斜线换行。

    ⑦一般不建议先给all权限,后面排除。用什么权限,就给什么权限。(注意权限,语法)。

    如果不需要密码直接运行命令的应该加NOPASSWD参数。

    ⑧禁止某类程序或命令执行,要在命令动作前面加上“!”号,并放在允许执行命令之后。

     

    36.请描述如何实现linux系统集权分治的权限分级精细管理?

    ① 收集以及制定用户和权限的匹配信息,原则是给于最小权限,但是又能完成所承担的工作职责。

    ② 各个用户组设置对应权限,用什么给什么,精细到每一条指令上根据分组情况。

    ③ 创建规划权限分组的用户.添加相关用户组。并修改etc/sudoers配置文件。

    ④ 增加sudo的权限开放,确定相关用户加入如soduers权限列表,并详细设置所开放权限内容,并选择是否需要密码的相关执行权限开放。(注意ALL权限,以及密码修改权限设置)。

    ⑤ 不建议先给all权限,后面排除。建议使用白名单。

    ⑥实战调试测试相关权限是否正确配置完成。

    ⑦编写操作说明,及相关注意事项。

    ⑧调试完毕,邮件周知所有相关人员系统权限设置生效,并附带操作说明及相关注意事项。

     

    37.请写出下面Linux SecureCRT命令行快捷键命令的功能?

    Ctrl + a  光标到开头

    Ctrl + c 中断当前程序

    Ctrl + d 退出当前窗口或当前用户

    Ctrl + e 光标到结尾

    Ctrl + l 清屏 相当与clear

    Ctrl + u 剪切、删除(光标以前的)内容

    Ctrl + k 剪切、删除(光标以后的)内容

    Ctrl + r 查找(最近用过的命令)

    tab    所有路径以及补全命令

    Ctrl+shift+c 命令行复制内容

    Ctrl+shift+v 命令行粘贴内容

    Ctrl + q 取消屏幕锁定

    Ctrl + s 执行屏幕锁定

     

    38.请描述服务器账户日志审计的5种解决方案。

    ⑴通过环境变量syslog对全部全部日志进行审计(信息量太大,不推荐)

    ⑵sudo配合syslog服务,进行sudo操作日志进行审计(信息较少,效果不错)

    ⑶在bash解释器嵌入一个监视器,让所有用户使用修改过的bash程序,作为解释程序。

    ⑷齐治的堡垒机(商业产品)。

     

    39.如果一台办公室内主机无法上网(打不开网站),请给出你的排查步骤?

    ①首先确定物理链路是否联通正常。

    ②查看本机IP,路由,DNS的设置情况是否达标。

    ③telnet检查服务器的WEB有没有开启以及防火墙是否阻拦。

    ④ping一下网关,进行最基础的检查,通了,表示能够到达服务器。

    ⑤测试到网关或路由器的通常情况,先测网关,然后再测路由器一级一级的测试。

    ⑥测试ping公网ip的通常情况(记住几个外部IP),

    ⑦测试DNS的通畅。ping出对应IP。

    ⑧通过以上检查后,还在网管的路由器上进行检查。

     

    40.描述Linux shell中单引号、双引号及不加引号的简单区别

    单引号:所见即所得,即将单引号内的内容原样输出,或者描述为单引号里面看到的是什么就输出什么。

    双引号:把双引号里面的内容给输出出来,如果内容中有命令、变量等,会先把,变来那个、命令解析出结果,然后输出最终内容。

    双引号内的命令或者变量写法’命令或变量’或$(命令或变量)

    无引号:把内容输出出来,可能不会键含有空格的字符串,视为一个整体输出,如果内容中有命令、变量等,会先把变量、命令解析出来,然后输出最终内容,如果字符串中带有空格等特殊字符,则不能完整输出,需要改加双引号。一般连续的字符串,数字,路径等可以用,不过最好用双引号,替代之。

     

    41.请简述Linux启动过程中几个重要配置文件的执行过程

    Linux 登录后,配置执行顺序为(Debian Serials Capable):

    /etc/environment -> /etc/profile -> (~/.bash_profile | ~/.bash_login | ~/.profile) -> ~/.bashrc -> /etc/bashrc -> ~/.bash_logout

    关于各个文件的作用说明:

    (1)/etc/environment:此配置文件设置基本的PATH变量,及系统当前语言变量,虽然比较短,但却在系统启动中占据举足轻重的作用,比如如下是我的系统中的内容:

    (2)/etc/profile: 此文件为系统的每个用户设置环境信息,当用户第一次登录时,该文件被执行. 并从/etc/profile.d目录的配置文件中搜集shell的设置。

    (3)/etc/bash.bashrc: 为每一个运行bash shell的用户执行此文件.当bash shell被打开时,该文件被读取。

    (4)~/.bash_profile: 每个用户都可使用该文件输入专用于自己使用的shell信息,当用户登录时,该文件仅仅执行一次!默认情况下,他设置一些环境变量,执行用户的.bashrc文件。

    (5)~/.bashrc: 该文件包含专用于你的bash shell的bash信息,当登录时以及每次打开新的shell时,该该文件被读取。

    (6)~/.bash_logout: 当每次退出系统(退出bash shell)时,执行该文件. 另外,/etc/profile中设定的变量(全局)的可以作用于任何用户,而~/.bashrc等中设定的变量(局部)只能继承 /etc/profile中的变量,他们是"父子"关系。

    (7)~/.bash_profile 是交互式、login 方式进入 bash 运行的~/.bashrc 是交互式 non-login 方式进入 bash 运行的通常二者设置大致相同,所以通常前者会调用后者。

     

    42.请描述下列路径的内容是做什么的?

    /var/log/messages   系统日志文件

    /var/log/secure     系统安全文件(显示登录信息的文件)

    /var/spool/clientmqueue  例行性任务回执邮件存放文件

    /proc/interrupts    当前系统中断报告文件

    /etc/fstab          开机自动挂载磁盘的配置文件

    /etc/profile        环境变量存放的文件

     

    43.请给出Linux中eth0的IP地址和广播地址的指令,需使用cut、awk、grep、sed指令。

    第一种方法:使用grep和cut取值

    第二种方法:使用grep和awk(默认分隔符为空格)取值

    第三种方法:使用grep和awk(多分隔符)

    第四种方法:使用sed和awk

    第五种方法:使用grep和awk(多分隔符与加号+)

    第六种方法:awk (分隔符及取行)

    第七种方法:grep 网卡文件

    第八种方法:head取行 awk分割

     

    44.请输出你知道的20 个LINUX 命令及作用

     

    cp 复制 -a(drp),-r拷贝目录 -p保持属性

    mv 移动文件或目录

    mkdir 创建目录  -p递归创建目录 mkdir /a/b/c

    touch 创建文件,

    cd    切换目录(~当前用户家目录,-上一次的目录)

    cat   查看文件内容  -n显示行号

    ls    查看目录下文件,-l长格式,-d查看目录**********

    rm    删除文件或目录 -r目录 -f强制删除(慎用,mv,find)

    find  查找文件或目录 -type 类型(f,d,l,c,b),-name名字 -exec执行动作*****

    alias 查看及设置别名

    unalias 取消别名

    seq 打印序列 -s指定分割符 -w数字前面加0补齐位数

    head 查看文件前N行,默认10行,-n指定行数

    tail 查看文件后N行,默认10行,-n指定行数,-f实时跟踪文件结尾的变化

    sed linux三剑客老二,文件增删改查,*****

    pwd打印当前工作目录

    rmdir 删除空目录

    echo 显示输出

    xargs (配合find,ls)等查找到的内容处理,-n分组

    tree -L层数  -d目录

    rpm  -q query查询 -a all

    uname -r内核 -m32位还是64位 -a所有信息, -n主机名(hostname)

    hostname 主机名

    whoami 查看当前用户

    users

    w

    useradd 添加用户

    passwd  改密码,--stdin 非交互设置密码

    su     切换用户角色,-切换环境变量

     

     

    Service

    1 简述部署Discuz!论坛的工作流程

    参考答案

    1)部署LAMP软件并启动相应服务;

    2)创建网站数据库及数据库管理员账户及密码;

    3)将Discuz!压缩包中的upload下的内容解压到httpd站点根路径下,并调整好适当的权限;

    4)最后,在浏览器输入网址后,进行第一次的初始化工作。

     

    2 简要说明PXE安装系统流程

    参考答案

    客户端向DHCP服务器请求分配IP地址;

    DHCP服务器为客户端分配IP地址,告知Boot server;

    客户端向Boot server请求下载启动文件;

    Boot server向客户端提供启动文件;

    客户端向文件共享服务器请求应答文件;

    客户端根据应答文件信息,安装操作系统

    3 简单描述虚拟化技术常见的虚拟网络类型

    参考答案

    桥接模式:Guest与Host连接到同一个交换机上,通过桥接物理网卡,相当于直连到Host所在网络。

    隔离模式:Guest可访问同一虚拟交换机上的其他Guest,但无法访问Host所在外部网络。

    NAT模式:Guest的网关指向Host的virtbr0的IP地址,允许虚拟机共享真机的网络连接。

    路由模式:由Host充当路由器,开启转发,需要额外设置外网与Guest之间互访的路由。

    2 RHEL6上实现KVM虚拟化需要安装哪些软件组

     

    参考答案

    Virtualization、Virtualization Client

    Virtualization Tools、Virtualization Platform

    4 简述DNS递归和迭代查询的作用

    参考答案

    对于一台DNS服务器来说:

    若允许递归,则当客户端请求解析的域名非本DNS管辖时,本DNS会向其他DNS服务器代询;

    若不允许递归,则当客户端请求解析的域名非本DNS管辖时,本DNS会放弃代询 —— 但是,如果目标地址位于已知的某个授权子域,本DNS会告知客户端对应的子DNS服务器的地址信息(即迭代)。

     

    5 为什么使用LAMP?

    答案: 因为LAMP 具有Web 资源丰富、轻量、快速开发等特点,与微软的.NET 架构相比,LAMP 具有通用、跨平台、高性能、低价格优势、因此LAMP 无论是性能、质量还是价格都是企业搭建网站的首选平台。

    6 DNS的解析过程?

    答案:第一步:客户机提出域名解析请求,并将该请求发送给本地的域名服务器。

    第二步:当本地的域名服务器收到请求后,就先查询本地的缓存,如果有该纪

    录项,则本地的域名服务器就直接把查询的结果返回。

    第三步:如果本地的缓存中没有该纪录,则本地域名服务器就直接把请求发

    给根域名服务器,然后根域名服务器再返回给本地域名服务器一个

    所查询域(根的子域)的主域名服务器的地址。

    第四步:本地服务器再向上一步返回的域名服务器发送请求,然后接受请求

    的服务器查询自己的缓存,如果没有该纪录,则返回相关的下级的

    域名服务器的地址。

    第五步:重复第四步,直到找到正确的纪录。

    第六步:本地域名服务器把返回的结果保存到缓存,以备下一次使用,同时还

    将结果返回给客户机。

    7 DNS的工作原理?

     

    答案:域名解析有正向解析和反向解析之说,正向解析就是将域名转换成对应的 IP

    地址的过程,它应用于在浏览器地址栏中输入网站域名时的情形;而反向解析是

    将 IP 地址转换成对应域名的过程,但在访问网站时无须进行反向解析,即使在

    浏览器地址栏中输入的是网站服务器 IP 地址,因为互联网主机的定位本身就是

    通过 IP 地址进行的,只是在同一 IP 地址下映射多个域名时需要。另外反向解析

    经常被一些后台程序使用,用户看不到。

    除了正向、反向解析之外,还有一种称为“递归查询”的解析。“递归查询”

    的基本含义就是在某个DNS服务器上查找不到相应的域名与IP地址对应关系时,

    自动转到另外一台 DNS 服务器上进行查询。通常递归到的另一台 DNS 服务器对

    应域的根 DNS 服务器。因为对于提供互联网域名解析的互联网服务商,无论从

    性能上,还是从安全上来说,都不可能只有一台 DNS 服务器,而是由一台或者

    两台根 DNS 服务器(两台根 DNS 服务器通常是镜像关系),然后再在下面配置

    了多台子 DNS 服务器来均衡负载的(各子 DNS 服务器都是从根 DNS 服务器中

    复制查询信息的),根 DNS 服务器一般不接受用户的直接查询,只接受子 DNS

    服务器的递归查询,以确保整个域名服务器系统的可用性。

    当用户访问某网站时,在输入了网站网址(其实就包括了域名)后,首先就

    有一台首选子 DNS 服务器进行解析,如果在它的域名和 IP 地址映射表中查询到

    相应的网站的 IP 地址,则立即可以访问,如果在当前子 DNS 服务器上没有查找

    到相应域名所对应的 IP 地址,它就会自动把查询请求转到根 DNS 服务器上进行

    查询。如果是相应域名服务商的域名,在根 DNS 服务器中是肯定可以查询到相

    应域名 IP 地址的,如果访问的不是相应域名服务商域名下的网站,则会把相应

    查询转到对应域名服务商的域名服务器上。

     

    8 NTP 简介?

    答案:

    NTP(Network Time Protocol, 网络时间协议)是由 RFC 1305 定义的时间同步协议,用来

    在分布式时间服务器和客户端之间进行时间同步,NTP 基于 UDP 保温进行传输,使用 UDP

    端口号为 123。

    使用 NTP 的目的是对网络内所有具有时钟的设备进行时钟同步,使网络内所有设备的时钟

    保持一致,从而使设备能够提供基于统一时间的多种应用。

    对于运行 NTP 的本地系统,既可以接受来自其他时钟源的同步,又可以作为时钟源同步其

    他的时钟,并且可以喝其他设备互相同步。

    9 NTP 工作原理?

    答案:

    NTP 的基本工作原理如图 1-1 所示。Device A 和 Device B 通过网络相连,他们都有自己独

    立的系统时钟,需要通过 NTP 实现各自系统时钟的自动同步。为便于理解,作如下假设:

    l  在 Device A 和 Device B 的系统时钟同步之前,DeviceA 的时钟设定

    为 10:00:00am,DeviceB 的时钟设定为 11:00:00am。

    l  设备 B 作为 NTP 时间服务器,即设备 A 将使自己的时钟与设备 B

    的时钟同步。

    l  NTP 报文在设备 A 和设备 B 之间单向传输所需要的时间是 1 秒

    图1-1 NTP 原理图

     

    系统时钟同步过程如下:

    l  设备 A 发送一个 NTP 报文给设备 B,该报文带有它离开设备 A 时的

    时间戳,该时间戳为 10:00:00am(T 1 )。

    l  当此 NTP 报文到达设备 B 时,设备 B 加上自己的时间戳,该时间戳

    为 11:00:01am(T 2 )。

    l  当此 NTP 报文离开设备 B 时,设备 B 再加上自己的时间戳,改时间

    戳为 11:00:02(T 3 )。

    l  当设备 A 接收到该响应报文时,设备 A 的本地时间为

    10:00:03am(T 4 )。

    至此,设备 A 已经拥有足够的信息来计算两个重要的参数:

    l  NTP 报文的往返时延 Delay=(T 4 -T 1 )-(T 3 -T 2 )=2 秒。

    l  设备 A 相对设备 B 的时间差 offset=((T 2 -T 1 )+(T 3 -T 4 ))/2=1

    小时。

    这样,设备 A 就能够根据这些信息来设定自己的时钟,使之与设备 B 的时钟同步。

    以上内容只是对 NTP 工作原理的一个粗略描述,更详细的资料可以参阅 RFC 1305。

    10 NTP的工作模式?

    答案:

    设备可以采用多种 NTP 工作模式进行时间同步:

    l  客户端/服务端模式

    l  对等体模式

    l  广播模式

    l  组播模式

    11  JAVA概述?

    答案:

    Tomcat 在严格意义上并不是一个真正的应用服务器,它只是一个可以支持运行 Serlvet/JSP

    的 Web 容器,不过 Tomcat 也扩展了一些应用服务器的功能,如 JNDI,数据库连接池,用户事

    务处理等等。Tomcat 是 Apache 组织下 Jakarta 项目下的一个子项目,目前 Tomcat 被非常广泛的

    应用在中小规模的 Java Web 应用中。

    Tomcat 是一种具有 JSP 环境的 Servlet 容器。Servlet 容器是代替用户管理和调用 Servlet

    的运行时外壳。作为一个开放源代码的软件, Jakarta -Tomcat 有着自己独特的优势:

    l  首先,它容易得到。事实上,任何人都可以从互联网上自由地下载这个软件。无论从

    http://jakarta.Apache.org 还是从其他网站(Jakarta Tomcat 是 Apache 软件基金会

    开发的一个开放源码的应用服务器)。

    l  其次,对于开发人员,特别是 Java 开发人员,Tomcat 提供了全部的源代码,包括 Servlet

    引擎、JSP 引擎、HTTP 服务器。无论是对哪一方面感兴趣的程序员,都可以从这些由世

    界顶尖的程序员书写的代码中获得收益。

    l  最后,由于源代码的开放及世界上许多程序员的卓有成效的工作, Tomcat 已经可以和

    大部分的主流服务器一起工作,而且是以相当高的效率一起工作。如:以模块的形式被

    载入 Apache,以 ISAPI 形式被载入 IIS 或 PWS,以 NSAPI 的形式被载入 Netscape

    Enterprise Server。

    l  由于 Java 的跨平台特性,基于 Java 的 Tomcat 也具有跨平台性。

    12 什么是VPN?

    答案:

    VPN(Virtual Private Network,虚拟私有网)

    l 以共享的公共网络为基础,构建私有的专用网络

    l 以虚拟的连接,而非以物理连接贯通网络

    l 处于私有的管理策略之下,具有独立的地址和路由规

    l 有所通,有所不通

    l RFC 2764描述了基于IP的VPN体系结构

    13 VPN的优势?

    答案:

    可以快速构建网络,减小布署周期

    l 与私有网络一样提供安全性,可靠性和可管理性

    l 可利用Internet,无处不连通,处处可接入

    l 简化用户侧的配置和维护工作

    l 提高基础资源利用率

    l 于客户可节约使用开销

    l 于运营商可以有效利用基础设施,提供大量、多种业

     

    14 DHCP工作原理?

    答案:

    DHCP(Dynamic Host Configure Protocol,动态主机配置协议),用于向网络中的计算机分配IP地址及一些TCP/ip配置信息。DHCP提供了安全,可靠且简单的TCP/IP网络设置,避免了TCP/ip网络地址的冲突,同时大大降低了工作负担。

     

    DHCP的 工作原理:客户机从服务器获取IP的四个租约过程,客户机请求ip,服务器相应请求,客户机选择ip,服务器确定租约。

     

    1. 客户机请求IP地址 —— DHCP客户机在网络中广播一个DHCP DISCOVER包,请求ip地址 ,DHCP Discover 包的源地址为0.0.0.0 。目的地址为255.255.255.255,该包 包含客户机的MAC和计算机名,使服务器能够确定是哪个客户机发送的请求。

     

    1. 服务器响应请求——当DHCP服务器接收到客户机请求ip地址的信息时,就在自己的库中查找是否有合法的ip地址提供给客户机,如果有 ,将此ip标记,广播一个 DHCP offer 包。这个包中包含:客户机的的MAC地址;提供的合法ip;子网掩码;租约期限;服务器标示;其他参数等。因为客户机没有ip地址,所以还是以广播方式发送的,源地址:0.0.0.0 目的地255.255.255.255。

    1. 客户机选择IP地址——DHCP客户机接收到第一个DHCP offer包中选择ip地址,并在次 广播一个DHCP request 包到所有服务器,该包中包含为客户机提供的ip配置的服务器的服务标示符(ip地址),服务器查看标示符,以确定自己提供的ip地址是否被客户机选中,如果客户机接受ip,则发出ip地址的DHCP服务器将该地址保留,就不能将该地址提供给另一个DHCP。如果拒绝,提供给下一个ip租约请求。这个源地址仍然是0.0.0.0 目的地255.255.255.255。

    1. 服务器确认IP 租约——DHCP租约的最后一步,服务器确认租约,发送一个DHCP ack/DHCP NACK包。服务器收到DHCP request 包后,以dhcp ack 包向客户机广播出去,当客户机收到后,就配置了ip地址,完成初始化,就可以在TCP/IP网络上通信了。客户机收到DHCP nack 包后会重新发送DHCP discover包。这次源地址是服务器的ip地址 目的地是255.255.255.255。

     

    IP的租约更新:当客户机重启和租期到达50%时,就需要更新租约,直接想提供的服务器发送DHCP request包,要求更新租约。客户机无法和服务器取得联系时,继续使用现有IP,一直等到85%时,向所有的服务器发送广播DHCP request 包请求更新,如果仍然无法联系,则客户机将开始新的ip租约过程DHCP discover包

     

    IP的租约释放命令 :释放的ipconfig /release       获取是 :ipconfig /renew 。

     

    配置DHCP服务的要求:服务器具有静态IP ;在域环境下需要使用活动目录服务授权DHCP服务;建立作用域。(如果在安装时建立则默认为6天,之后创建为8天,无线为2小时)

     

        配置选项有服务器选项、作用域选项、保留选项。服务器选项:对所有作用域生效;作用与选项:对当前作用域生效;保留选项:对当前作用域中某台客户机生效。

     

     

     

     

    搭建服务器的基本流程

     

    1 网络服务器成功连接的分析

    答案:

    1. 网络:了解网络基础知识与所需服务的通信协议
    2. 服务器本身:了解搭建网络服务器的目的以配合主机的安装规划
    3. 服务器本身:了解操作系统的基本操作
    4. 内部防火墙设置:管理系统的可共享资源
    5. 服务器软件设置:学习设置技巧与开机是否自动执行
    6. 细节权限设置:包括SElinux 与文件权限

     

    2 常见的服务器设置案例分析

    答案:

    1. 网络环境
    2. 对外网络
    3. 额外服务
    4. 服务器管理
    5. 防火墙管理
    6. 账号管理
    7. 后台分析

     

     

    Shell

    1 自定义Shell变量时,变量名有什么规则?

    参考答案

    可以包括数字、字母、下划线,不能以数字开头

    变量名区分大小写

    赋值时等号两边不要有空格

    尽量不要使用关键字和特殊字符

    给同一个变量多次赋值时,最后一次的赋值生效

    2 简述预定义变量$$、$?、$0、$#、$*、$!的作用。

    参考答案

    $$ 保存当前运行进程的(PID)号

    $? 保存命令执行结果的(返回状态)

    $0 保存当前运行的(进程名)或(脚本名)

    $# 保存位置变量的(个数)

    $* 保存所有位置变量的(值)

    $! 保存后台(最后一个进程)的PID号

    3 简述三种定界符在变量赋值操作中的特点。

    参考答案

    双引号 " ":允许扩展,以 $ 引用其他变量

    单引号 ' ':禁用扩展,即便 $ 也视为普通字符

    反撇号 ` `:将命令的执行输出作为变量值

    4 列出常见的整数值比较操作,并说明各自作用。

    参考答案

    -eq 等于(Equal)

    -ne 不等于(Not Equal)

    -ge 大于或等于(Greater or Equal)

    -le 小于或等于(Lesser or Equal)

    -gt 大于(Greater Than)

    -lt 小于(Lesser Than)

    5 简述Shell环境常见的中断及退出控制指令。

    参考答案

    break:跳出当前所在的循环体,执行循环体后的语句。

    continue:跳过循环体内余下的语句,重新判断条件以便执行下一次循环。

    exit:退出脚本,默认返回值是 0。

    return:用在函数里 指定返回值。

    shift:用于迁移位置变量,将 $1~$9 依次向左顺序移动。

    6 正则表达式中的+、?、*分别表示什么含义?

    参考答案

    这三个字符用来限制关键词的匹配次数,含义分别如下:

    +:最少匹配一次,比如a+可匹配a、aa、aaa等

    ?:最多匹配一次,比如a?可匹配零个或一个a

    *:匹配任意多次,比如a*可匹配零个或任意多个连续的a

    7 简述awk工具常用的内置变量、各自的作用。

    参考答案

    FS:保存或设置字段分隔符

    $n:即$1、$2、$3……,表示指定分隔的第几个字段

    $0:保存当前读入的整行文本内容

    NF:记录当前处理行的字段个数(列数)

    NR:记录当前已读入行的数量(行数)

    FNR:保存当前处理行在原文本内的序号(行号)

    FILENAME:保存awk 当前处理的(文件名)

    ENVIRON:调用Shell环境变量,格式:ENVIRON["变量名"]

     

    8, 什么是shell?如何查看当前系统支持的Shell?

    答案:

    1. 实现某种功能的,有执行权限的文件  2)cat /etc/shells

     

    9,如何切换当前使用的shell

    答案: bash

     

    10、/bin/bash特性有哪些

    答案:特性:提供命令补全,命令编辑和命令历史表等功能

    11、用户配置文件是哪几个?有什么用?

    答案:

    1)~/.bashrc ~/.bash_profile

    可以在里面定义变量,用户每打开一个终端时加载的文件,只针对用户有效

     

    12、系统配置文件是哪几个?有什么用?

    /etc/profile /etc/bashrc

    可以在里面定义变量,用户每打开一个终端时加载的文件,针对所有用户生效

     

    13、shell变量类型有哪些?列举出常用的4个预定义变量

    1)1、自定义变量 2、系统环境变量 3、预定义变量 4、位置变量

    2)$? $# $* $$

     

    14、自定义变量的命名规则?

    1、可以用数字字每下载线,但不能用数字开头和纯数字

    2、同一个变量赋两个值,最后一个值生效

    3、给变量赋值时,两边不能有空格

    4、区分大小写

     

    15、变量的生命周期,和作用范围?

    1)在脚本里定义的变量,只在脚本执行过程中有效

    2) 默认情况下只在当前Shell里可以使用,要想定义的Shell在所有的Shell里被使用,要把变量定义为全局变量

    16、脚本的执行过程?脚本的执行方式?

    1)从左到右 从上到下

    2) sh xx.sh bash xx.sh /xx/xx/sh ./xx.sh

     

    17、编写脚本的步骤?

    1、明确脚本要实现的功能

    2、需要使用哪些命令

    3、需要使用哪些流程控制

    4、数据是变化的,就要用变量来表示

    18、Shell条件判断类型?

    1、文件状态

    2、数值比较

    3、字符比较

    4、逻辑比较

    19、eval在shell中有什么作用?请举个例子说明?

       作用:

    #!/bin/bash

    aa=h1

    bb=h2

    var=(aa bb)

    for vas in ${var[@]}

    do

            echo $vas

            eval var_temp=\$${vas}

            echo $var_temp

    done

    20、dirname有什么作用?请举个例子说明?

       作用:获取当前脚本路径

       例子:

       #!/bin/bash

    cd `dirname $0`

    pwd;ls

    21、ssh -o stricthostkeychecking=no -o ConnectTimeout=60  分别代表什么意思?

       ssh加接时不需要输入key检查,然后六十秒为超时时间

    22、说一下-n -z -d -f -e -r -w -x -l !-z在shell中分别代表什么意思?-n和-z试举一个例子说明

       -n 非空为真

       -z 字符串为空为真

       -d 是目录且存在为真

       -f 是普通文件且存在为真

       -e 存在为真

       -r 可读为真

       -w 可写为真

       -x 可执行为真

    -l 是链接为真

       !-z不为空

       1)-n例子:

       JavaApp=($(ps aux | grep "java" | grep "/app/guaji"))

       if [ -n "${JavaApp[0]}" ];then

        echo -e "\033[1;31m 脚本退出 \033[0m"

       exit 1

        fi

       2)-z例子:

       ssh=$(ssh -o StrictHostKeyChecking=no $2 "ls /")

       if [[ -z "$ssh" ]];then

    echo -e "\033[1;31m \033[5m 远程主机($2)无法连接,脚本退出. \033[0m"

    exit 1

       fi

     

    23、正则表达式的 "|"、"\n"、"\r"、"\t"分别代表什么意思

    |表示或的意思

             \n表示换行,将当前位移置下行开头

      \r回车,将当前位置移至本行开头

     

    24、写出获取公网IP的两种方法

    ifconfig | grep -Po "(?<=addr:).*(?=Bcast)" | egrep -v '^192.168|^172.1[6-9].|^172.2[0-9].|^172.3[0-1].|^10.|^127.'

            /sbin/ifconfig | awk -F'[ :]+' '/inet addr:/ {print $4}' | egrep -v '^192.168|^172.1[6-9].|^172.2[0-9].|^172.3[0-1].|^10.|^127.'

     

    25、$$表示什么意思?

       获取当前执行脚本的进程名  

     

    26、函数内的local是什么意思?举一脚本例子说明

       脚本中局部变量,存在于脚本函数(function)中的变量称为局部变量,要以local方式进行声明,使之只在本函数作用域内有效,

       防止变量在函中的命名与变量外部程序中变量重名造成程序异常,下面是一脚本例子:

       #!/bin/sh

       a() {

            local s=1

            echo $s

       }

       b() {

            s=2

            echo $s

    }

    s=0

    a

    echo $s

    b

    echo $s

     

    27、$@和$*的区别

       $@将命令行每个参数视为单独的字符串,等同于"$1"、"$2"、"$3"

       $*将所有的命令行所有参数视为单个字符串,等同于"$1$2$3"

     

    28、$0、dirname和basename有什么作用?具个例子说明?

        作用:

        dirname获取脚本路径名

        basename获取脚本名

        $0获取脚本路径和脚本名

        例子:

        #!/bin/basha

        echo "####################"

        echo "# this is '$ 0' test#"

        echo "####################"

        echo $0

        echo

        echo "#########################"

        echo "# this is 'dirname' test#"

        echo "#####################@@@#"

        cd `dirname $0` && pwd

        echo

        echo "##########################"

        echo "# this is 'basename' test#"

        echo "##########################"

        echo `basename $0`

     

    29、取出3306端口号这个数字

        netstat -tlnp| grep 3306 | awk '[ :]+' '{print $5}' #[ :]+ 以空格和点为分隔符,这种分隔符有一个或多个

     

    30、shell中单引号和双引号与不加与号分别代表什么意思

        单引号:可以说是所见即所得,即将单号引号的内容原样输出

        双引号:把双引号的内容输出出来,如果内容中有命令、变量等,会先把变量、命令解析出结果,然后再输出最终内容来

        无引号:把内容输出出来,会将含有空格的字符串视为一个整体输出,如果内容中有命令、变量等,会先把变量、命令解析出结果,

                然后再输出内容来,如果字符串中带有空格等特殊字符,则不能完整的输出,需要改加双引号,一般连续的字符串,数字

                路径等可以不加任何引号,不过最好用双引号替代之

     

    31、echo -n 是什么意思?举一脚本例子显示他的功能

        -n不换行

           #!/bin/bash

    . /etc/init.d/functions

    echo "---------Please wait while we are checking-------------"

    echo -n "6秒后执行该操作."

    for ((i=0;i<6;i++))

    do

           echo -n ".";sleep 2

            #[ $i -eq 3 ] && break

    done

    echo

    action "test success" /bin/true

     

    32、echo -e "\n" | nohup ping www.baidu.com > filename 2>&1 &这里的-e 和 "\n" 是什么意思?

        -e是代表后面输入的内容包含特珠字符需要加的参数

        \n 是代表换行

      

    33、有1-9的数字,echo输出1-9的数字时,屏蔽0-5的数字再输出

        echo '1234567890' | sed 's/[0-5]//g'

     

    34、用nohup把一个脚本放在后台运行

        nohup sh test.sh > filename 2>&1 &

     

    35、用seq打印10以空格分隔,用seq坚着打印10到1

        seq -s " " 10

        seq 10 -1 1

     

    36、curl -I -s www.baidu.com | head -1 | wc -l 中的-I和-s代表什么意思

        -s 沉默或安静模式。不显示进度表或错误消息。使卷曲静音

        -I  只读取HTTP头! HTTP的服务器功能命令HEAD此用来获取  

        --connetct-timeout 2 2秒连接超时

     

    37、wget -T 10 -c -q --spider www.baidu.com 这些参数分别代表什么意思?

        -T 超时10少

        -c 断点续传

        -q 为执行命令时屏蔽他打印输出的意思,执行命令不会任何内容出来

        --spider wget命令加spider参数不会下载任何东西,spider的主要作用是测试下载链接。

        tries

    38、生产环境常用的监控web的方法是哪种

        用wget或curl的方法作监控

     

    39、生产环境写脚本报错就发邮件的命令是怎么样的

        mail -s "uname -n 's httpd status is on" 123456@qq.com < $logfile

     

    40、给文件改名

        mv $file 1linux-`echo $file | cut -d "-" -f2`   

        ls *.jpg | awk -F '_finished' '{print "mv " " $0" "$1".jpg"}' | bash

    41、查看当前目录的所有文件夹

        ls -F | grep /

     

    42、awk中的NF代表什么意思?

        NF代表结尾的意思

     

    43、shell上: 0、1>、2>、>、2>&1、&>/dev/null分别代表什么意思

        0表示标准输入

        1>表示标准输出

        2>表示标准错误输出

        > 默认为标准输出重定向,与 1> 相同

        2>&1 意思是把 标准错误输出 重定向到 标准输出.

        &>/dev/null 意思是把 标准输出 和 标准错误输出 都重定向到空

     

     

    Mysql

     

    1 主流数据库服务软件有哪些?开源且跨平台的数据库软件有哪些?

    参考答案

    主流数据库服务软件有:

    甲骨文公司 Oracle

    IBM DB2

    微软 SQL Server

    美国Sybase公司 Sybase

    加州大学伯克利分校计算机系开发的 PostgreSQL

    开源且跨平台的数据库软件有:

    MySQL、PostgreSQL:开源且跨平台

    Oracle、DB2:跨平台不开源

    SQL Server:不跨平台不开源

    Sybase:跨平台不开源

    2 MySQL数据库的服务进程叫什么名字?监听端口是多少?默认数据库目录是?

    参考答案

    服务进程名是mysqld;监听端口是3306;默认数据库目录为 /var/lib/mysql。

    3 MySQL默认的3个库叫什么名字?哪个库里的数据不占用物理磁盘空间?

    参考答案

    3个默认库:mysql、test 和 information_schema。

    其中,information_schema库的数据不占用磁盘空间,仅保存在内存里。

    4 请列出MySQL常用的数据类型,并写出定义这些数据类型所使用的关键字。

    参考答案

    MySQL常用的数据类型:

    数值类型:所用关键字为int、float

    字符类型:所用关键字为char、varchar

    日期时间类型:所用关键字为year、time、datetime

    枚举类型:所用关键字为set、enum

    5 简述索引的优点与缺点,默认情况下哪个文件保存表的索引信息?

    参考答案

    索引的优点与缺点如下:

    索引就像一本书的目录

    加快查询记录的速度

    会降低插入、更新记录的速度

    默认情况下“表名.MYI” 文件保存表的索引信息

    6 简述在表中创建外键字段要满足那些条件?

    参考答案

    在表中创建外键字段要满足以下条件:

    表必须都使用innodb存储引擎

    表中外键字段的类型要匹配

    被参照字段要有明确的索引

    7 简述MySQL体系结构的组成,并描述每个组成部分的作用。

    参考答案

    主要包括8个部分:

    连接池:进程数限制、内存检查、缓存检查等。

    SQL接口:用户通过sql客户端发过来的命令,由sql接口接收,sql操作(DML数据操作语言:查询、修改、升级数据等;DDL数据定义语言:创建一个新的数据库、新的索引、删除一个用户等;存储过程、视图触发器。

    分析器: 分析查询语句 事务处理 对象访问权限。

    优化器: 优化访问路径 、 生成执行树。

    缓存和缓冲:保存sql查询结果。

    存储引擎:用于管理存储的文件系统,将逻辑结构转换为物理结构的程序;不同的存储引擎有不同的功能和存储方式。

    管理工具:备份,恢复,安全,移植,集群等,这些工具一般和文件系统打交道,不需要和mysql-server打交道,它们对应的都是命令。

    物理存储设备(文件系统)。

    8 简述MySQL数据库访问的执行过程。

    参考答案

    1)客户端发出请求。

    2)服务器端开辟线程响应客户端请求。

    3)客户端发起sql语句查询数据库。

    4)查询缓存:记录用户的sql查询语句,如果查询内容相同,直接从查询缓存回复。

    5)如果缓存没有进入分析器。

    6)分析器:分析用户命令语法是否正确,将用户的命令进行切片,一个词一个词用空格隔开,获得用户要查询的表、内容、用户的权限等。

    7)优化器:执行路径的选择,生成执行树。(每个SQL语句都有很多执行路径,优化的目的就是在这些执行路径里选择最优的执行路径)。

    8)存储引擎:用于管理存储的文件系统,不同的存储引擎有不同的功能和存储方式。

    9 简述MySQL数据库中插入、更新、查询、删除表记录的指令格式。

    连接到MySQL数据库服务器,练习以下表记录操作:

    向表中插入记录的语法格式

    更新表记录的语法格式

    查询表记录的语法格式

    删除表记录的语法格式

    参考答案

    1)向表中插入记录的语法格式

    insert (into)表名(字段名列表) values(字段名=值,字段名=值,…);

    2)更新表记录的语法格式

    update 表名(set) (字段名=值,字段名=值,…) where(条件表达式列表);

    3)查询表记录的语法格式

    select (字段名列表) (from) 表名 (where) 条件表达式列表;

    4)删除表记录的语法格式

    delete (from) 表名 (where) ( 条件表达式列表);

    10 简述用户授权命令的语法格式。

    参考答案

    grant   权限列表    on   数据库     to     用户名@“客户端地址”

    identified   by   “密码”   with   grant   option;  

    11 在MySQL-MMM集群中有几种角色,各自的功能是什么?

    参考答案

    共3种角色:客户端、monitor节点(管理节点)、agent节点(数据库节点)

    客户端:访问集群

    管理节点:负责所有的监控工作的监控守护进程,决定故障节点的移除或恢复

    数据库节点:运行在MySQL服务器上的代理守护进程,提供简单远程服务集、提供给监控节点(可用来更改只读模式、复制的主服务器等)

    12 在MySQL-MMM集群中可以有多少台主数据库服务器、多少台从数据库服务器?

    参考答案

    在MySQL-MMM环境中主数据库有且只能有2台,从数据库理论上可以任意多台。

    13 在MySQL-MMM集群中均衡模式和排他模式的作用是?

    参考答案

    均衡模式一般用于从数据库,可实现多个虚拟IP地址。

    排他模式一般用于主数据库,只可设置一个虚拟IP地址。

     

    14,简述mysqldump备份数据时数据库名的表示方式。

     

    参考答案

    --all-databases 所有库

    数据库名 指定单个库

    数据库名.表名 指定库里的指定表

    -B 数据1 数据库2 备份多个库

     

     

    15,什么是MySQL集群?

     

    答案:MySQL 集群是一个无共享的(shared-nothing),分布式节点架构的存储方案,其目的是提供容错性和高性能。数据在单个数据节点(有时也称存储节点)上存储和复制,每个数据节点运行在独立的服务器上并维护数据的一份拷贝。每个集群还有管理节点。数据更新使用读已提交隔离级别(read-committed isolation)来保证所有节点数据的一致性,使用两阶段提交机制(two-phased  commit)保证所有节点都有相同的数据 (如果任何一个写操作失败,则更新失败)。

     

    MySQL 集群的最初实现将所有信息都保存在主存内,没有任何永久性存储。后来MySQL 集群允许数据存储在磁盘上。通过存储引擎层MySQL 服务器作为查询引擎,可以使MySQL 集群的性能达到最佳。这样就可以将 MySQL 应用透明地迁移到 MySQL 集群中去。

     

    无共享的对等节点使得某台服务器上的更新操作在其他服务器上立即可见。传播更新使用一种复杂的通信机制,这一机制专用来提供跨网络的高吞吐量。该架构通过多个MySQL服务器分配负载,从而最大程度地达到高性能,通过在不同位置存储数据保证高可用性和冗余。

     

    16,MySQL集群和MySQL 有和不同?

     

    答案:你可能会问:“集群和复制之间有什么区别那?” 集群的定义很多,通常认为集群包含成员、消息、冗余和自动故障转移等功能,而复制仅仅是一个服务器向别一个服务器发送消息(数据)的方式。我们先讨论集群内部的复制(又称本地复制)。

     

    17,MySQL 集群的特点?

     

    答案:为了实现最高性能。高可用性和冗余等目标。数据在集群内部的对等数据节点之间互相复制。数据复制采用同步机制,每个数据节点到所有其他数据节点上,数据在多个数据节点上存储。

     

    18,MySQL 集群有一些创建高可用性系统的专用功能,主要包括?

     

    答案:节点回复、日志、检查点、系统恢复、热备份恢复、无单点故障、故障转移、分区、联机操作

     

     

     

    19、MySQL中myisam与innodb的区别,至少5点

    【评析】将Mysql常见的存储引擎的特点归纳表格如下

     

    myisam

    innodb

    memory

    archive

    存储限制

    256TB

    64TB

    事物安全

    支持

    支持索引

    支持

    支持

    支持

    不支持

    锁颗粒(锁力度)

    表锁

    行锁(没有索引的情况是表锁)

    表锁

    行锁

    数据压缩

    支持

    不支持

    支持

    不支持

    支持外键

    支持

     

    20   什么是读写分离?

     

    MySQL Proxy最强大的一项功能是实现“读写分离(Read/Write Splitting)”。基本的原理是让主数据库处理事务性查询,而从数据库处理SELECT查询。数据库复制被用来把事务性查询导致的变更同步到集群中的从数据库。 当然,主服务器也可以提供查询服务。使用读写分离最大的作用无非是环境服务器压力。

     

    21   读写分离的好处

    1.增加冗余

    2.增加了机器的处理能力

    3.对于读操作为主的应用,使用读写分离是最好的场景,因为可以确保写的服务器压力更小,而读又可以接受点时间上的延迟。

     

     

    22 读写分离提高性能之原因

     

    1.物理服务器增加,负荷增加

    2.主从只负责各自的写和读,极大程度的缓解X锁和S锁争用

    3.从库可配置myisam引擎,提升查询性能以及节约系统开销

    4.从库同步主库的数据和主库直接写还是有区别的,通过主库发送来的binlog恢复数据,但是,最重要区别在于主库向从库发送binlog是异步的,从库恢复数据也是异步的

    5.读写分离适用与读远大于写的场景,如果只有一台服务器,当select很多时,update和delete会被这些select访问中的数据堵塞,等待select结束,并发性能不高。 对于写和读比例相近的应用,应该部署双主相互复制

     

    6.可以在从库启动是增加一些参数来提高其读的性能,例如--skip-innodb、--skip-bdb、--low-priority-updates以及--delay-key-write=ALL。当然这些设置也是需要根据具体业务需求来定得,不一定能用上

     

    7.分摊读取。假如我们有1主3从,不考虑上述1中提到的从库单方面设置,假设现在1分钟内有10条写入,150条读取。那么,1主3从相当于共计40条写入,而读取总数没变,因此平均下来每台服务器承担了10条写入和50条读取(主库不承担读取操作)。因此,虽然写入没变,但是读取大大分摊了,提高了系统性能。另外,当读取被分摊后,又间接提高了写入的性能。所以,总体性能提高了,说白了就是拿机器和带宽换性能。MySQL官方文档中有相关演算公式:官方文档 见6.9FAQ之“MySQL复制能够何时和多大程度提高系统性能”

     

    8.MySQL复制另外一大功能是增加冗余,提高可用性,当一台数据库服务器宕机后能通过调整另外一台从库来以最快的速度恢复服务,因此不能光看性能,也就是说1主1从也是可以的。

     

    23 varchar与char的区别;varchar(50)中50的涵义;int(20)中20的涵义;

    char是定长变量,varchar是变长变量。 varchar(50)表示这一行的变量最大的存储字节是50个字节,int(20)同理。

    【评析】假设有一行是name char(8),如果有一个数据是叫 AAA,那么它仅仅只有三个字节被存储进去,但是依旧存储了8个字节,多余的5个字节空着也就空着了。而是name varchar(8),同样是AAA,由于是变长,所以只保存了3个字节,剩下5个字节是弹性的,有就用,没有就不用。

    在读取方面,char的读取速度要比varchar快,也就是常说的“用读取换容量”,但是还是多用varchar,当数据库内容成万上亿的时候,节省的容量是非常非常可观的。

    24 计划,mysqldump以及xtranbackup的实现原理;备份恢复时间;备份恢复失败如何处理。

    mysqldump是采用sql级别的备份机制,将数据表导成sql脚本文件,在不用的mysql版本之间升级时相对比较合适。

    xtranbackup是innodb的hotbackup工具,xtrbackup在启动的时候会复制所有的数据文件,同时会启动一个后台进程,用于监视事务日志,并且从事务日志复制最新的修改。所以xtrbackup在启动的开始,就不懂的将事务日志的每个数据文件的修改都记录下来。

    mysqldump的备份和恢复时间都很慢,任何数据的更新和变化都会被挂起。

    xtrabackup的恢复时间比mysqldump快一点,但是会锁表。

    备份恢复失败的话,其实原因很多,主要可能就是参数设置的不对,检查一下参数。

    【评析】使用mysqldump备份数据表的命令,在shell下执行:

    mysqldump -u用户名 -p密码(可以直接-p) -h主机名 --databases 数据库名 > 要备份的文件路径

    mysqldump -u用户名 -p密码 -h主机名 --all-databases >要备份的文件路径

    mysqldump -u用户名 -p密码 -h主机名 --no-data 数据库名 >要备份的文件路径

    这里并不全,另写文章专门补充。

     

    25 MySQL中InnoDB引擎的行锁是通过加在什么上完成(或称实现)的?为什么是这样子的?

    InnoDB的行锁是通过加在索引上实现的,为什么这么设计,我也不知道,去问mysql的设计公司。

     

    26 MySQL 数据库备份方式

        增量备份、差异备份、完整备份

     

     

    27  MySQL主从复制原理?

    答案:

    分为同步复制和异步复制,实际复制架构中大部分为异步复制。

    复制的基本过程如下:

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

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

    3)、Slave的IO进程接收到信息后,将接收到的日志内容依次添加到Slave端的relay-log文件的最末端,并将读取到的Master端的 bin-log的文件名和位置记录到master-info文件中,以便在下一次读取的时候能够清楚的告诉Master“我需要从某个bin-log的哪个位置开始往后的日志内容,请发给我”;

    4)、Slave的Sql进程检测到relay-log中新增加了内容后,会马上解析relay-log的内容成为在Master端真实执行时候的那些可执行的内容,并在自身执行。

    Mysql为了解决这个风险并提高复制的性能,将Slave端的复制改为两个进程来完成。提出这个改进方案的人是Yahoo!的一位工程师“Jeremy Zawodny”。这样既解决了性能问题,又缩短了异步的延时时间,同时也减少了可能存在的数据丢失量。当然,即使是换成了现在这样两个线程处理以后,同样也还是存在slave数据延时以及数据丢失的可能性的,毕竟这个复制是异步的。只要数据的更改不是在一个事物中,这些问题都是会存在的。如果要完全避免这些问题,就只能用mysql的cluster来解决了。不过mysql的cluster是内存数据库的解决方案,需要将所有数据都load到内存中,这样就对内存的要求就非常大了,对于一般的应用来说可实施性不是太大。

    复制常用架构

    Mysql复制环境90%以上都是一个Master带一个或者多个Slave的架构模式,主要用于读压力比较大的应用的数据库端廉价扩展解决方案。因为只要master和slave的压力不是太大(尤其是slave端压力)的话,异步复制的延时一般都很少很少。尤其是自slave端的复制方式改成两个进程处理之后,更是减小了slave端的延时。而带来的效益是,对于数据实时性要求不是特别的敏感度的应用,只需要通过廉价的pc server来扩展slave的数量,将读压力分散到多台slave的机器上面,即可解决数据库端的读压力瓶颈。这在很大程度上解决了目前很多中小型网站的数据库压力瓶颈问题,甚至有些大型网站也在使用类似方案解决数据库瓶颈。

     

     

     

    OPERATION

     

    1 简述Squid的优缺点有哪些

    参考答案

    优势:

    通过缓存增加访问速度;

    提高网络的安全性;

    Squid历史悠久,技术积淀深厚,同时无需支付任何费用。

    缺点:

    性能不足,借助于windows、linux等通用操作系统才能实现上网加速等功能。

    2 简述常见Web服务器软件有哪些

    参考答案

    Apache、 Nginx、 Lighttpd 、Tomcat、 IBM WebSphere、IIS。

    3 简述什么是LNMP

    参考答案

    LNMP是网站运行平台。

    L:操作系统(Linux)

    N:网站服务软件(Nginx)

    M:数据库服务软件(MySQL)

    P:网站开发语言(PHP、perl、python)

    4 地址重写的好处

    参考答案

    缩短URL,隐藏实际路径提高安全性;

    易于用户记忆和键入;

    易于被搜索引擎收录。

     

    5 简述什么是memcached

    参考答案

    memcached是高性能的分布式缓存服务器,是一个跨平台的、开源的实现分布式缓存服务的软件

    用来集中缓存数据库查询结果,减少数据库访问次数,以提高动态Web应用的响应速度

    memcached支持许多平台:Linux、FreeBSD、Solaris (memcached 1.2.5以上版本)、Mac OS X、Windows

    2 简述memcached什么情况下会删除缓存数据

     

    参考答案

    当分配的存储空间存满时,有新数据需要存储时,删除最近最少使用的数据。腾出空间存储新数据;

    重新启动memcached服务会删除缓存数据;

    运行memcached服务的操作系统重启后会删除缓存数据。

     

    6 部署实施CDN的优势是什么

    参考答案

    本地Cache加速,提升访问速度和稳定性

    网站镜像,消除不同地区、运营商网络互连的问题

    智能DNS解析,自动选择最快的Cache服务器

    负载优化,减轻后端源Web服务器的压力负载

    集群抗攻击,有效降低DDOS攻击的影响

     

    6,Nginx 的优点?

    答案:

    1. 它可以高并发连接:官方测试连接数(5万)实际生产环境中可支撑(2~4万)
    2. 内存消耗少
    3. 成本低廉
    4. 其他理由(配置文件非常简单,支持Rewrite重写规则)
    5. 内置的健康检查功能
    6. 节省宽带(支持GZIP压缩,可以添加浏览器本地缓存的 Header 头)
    7. 稳定性高
    8. 支持热部署

     

    7 Nginx和Apache的综合对比?

     

    Web服务器

    Nginx

    Apache

    反向代理

    非常好

    Rewrite规则

    非常好

    FastCGI

    热部署

    支持

    不支持

    系统压力比较

    很小

    稳定性

    非常好

    安全性

    一般

    技术资料

    很少

    非常多

    静态文件处理

    非常好

    一般

    虚拟主机

    支持

    支持

    内存消耗

    非常小

    很大

     

    8,什么是CDN?

    答案:CDN的全称是内容分发网络。其目的是通过在现有的Internet中增加一层新的网络架构,将网站的内容发布到最接近用户的网络“边缘”,使用户可以就近取得所需的内容,提高用户访问网站的响应速度。 CDN有别于镜像,因为它比镜像更智能,或者可以做这样一个比喻:CDN=更智能的镜像+缓存+流量导流。因而,CDN可以明显提高Internet网络中信息流动的效率。从技术上全面解决由于网络带宽小、用户访问量大、网点分布不均等问题,提高用户访问网站的响应速度。

    9,CDN的类型特点?

     

    答案:CDN的实现分为三类:镜像、高速缓存、专线。

     

    (1)镜像站点(Mirror Site):是最常见的,它让内容直接发布,适用于静态和准动态的数据同步。但是购买和维护新服务器的费用较高还必须在各个地区设置镜像服务器,配备专业技术人员进行管理与维护。对于大型网站来说,更新所用的带宽成本也大大提高了。

    (2)高速缓存:成本较低,适用于静态内容。Internet的统计表明,超过80%的用户经常访问的是20%的网站的内容,在这个规律下, 缓存服务器可以处理大部分客户的静态请求,而原始的服务器只需处理约20%左右的非缓存请求和动态请求,于是大大加快了客户请求的响应时间,并降低了原始服务器的负载。

    (3)专线:让用户直接访问数据源,可以实现数据的动态同步。

     

    10 CDN的工作原理?

     

    答案:

     

    若是忽略各种缓存,传统的网站访问过程为:
    1. 用户在浏览器中输入要访问的域名;
    2. 浏览器向域名解析服务器发出解析请求,获得此域名对应的IP地址;
    3. 浏览器利用所得到的IP地址,向该IP对应的服务器发出访问请求;
    4. 服务器对此响应,将数据回传至用户浏览器端显示出来。

      与传统访问方式不同,CDN网络则是在用户和服务器之间增加Cache层,将用户的访问请求引导到Cache节点而不是服务器源站点,要实现这一方式,主要是通过接管DNS实现。

     

     

     使用CDN缓存后的网站访问过程演变为:

    1.  用户在浏览器中输入要访问的域名;

    2.  浏览器向域名解析服务器发出解析请求,由于CDN对域名解析过程进行了调整,所以用户端一般得到的是该域名对应的CNAME记录,此时浏览器需要再次对获得的CNAME域名进行解析才能得到缓存服务器实际的IP地址。在此过程中,全局负载均衡DNS解析服务器会根据用户端的源IP地址,如地理位置(深圳还是上海)、接入网类型(电信还是网通)将用户的访问请求定位到离用户路由最短、位置最近、负载最轻的Cache节点(缓存服务器)上,实现就近定位。定位优先原则可按位置、可按路由、也可按负载等等;
    3.  再次解析后浏览器得到该域名CDN缓存服务器的实际IP地址,向缓存服务器发出访问请求;
    4.  缓存服务器根据浏览器提供的域名,通过Cache内部专用DNS解析得到此域名源服务器的真实IP地址,再由缓存服务器向此真实IP地址提交访问请求;
    5.  缓存服务器从真实IP地址得到内容后,一方面在本地进行保存,以备以后使用,同时把得到的数据发送到客户端浏览器,完成访问的响应过程;
    6.  用户端得到由缓存服务器传回的数据后显示出来,至此完成整个域名访问过程;

    不论是否使用CDN网络,用户客户端设置不需做任何改变,直接使用被加速网站原有域名访问即可。对于要加速的网站,只需修改整个访问过程中的域名解析部分,便能实现透明的网络加速服务。

     

     

     

     

    SECURITY

     

     

    1 简述信息安全防护的目标和一般原则。

    参考答案

    信息安全防护的目标:

    保密性,Confidentiality

    完整性,Integrity

    可用性,Usability

    可控制性,Controlability

    不可否认性,Non-repudiation

    信息安全防护的一般原则:

    权限最小化:受保护的敏感信息只应在一个有限的可控的小范围内被分享。

    分权制衡:所有权限应该适当划分给多个授权主体,达到既相互协作又相互制约、相互监督的效果,避免出现权限垄断

    安全隔离:将信息主体与客体分离,通过安全通道对双方之间的访问进行控制

    2 根据攻击/防护的对象不同,安全工作一般区分为哪些类别?

    参考答案

    物理安全:各种设备/主机、机房环境

    系统安全:主机或设备的操作系统

    应用安全:各种网络服务、应用程序

    网络安全:对网络访问的控制、防火墙规则

    数据安全:信息的备份与恢复、加密解密

    管理安全:各种保障性的规范、流程、方法

    3 简述实现SSH密钥对验证的基本过程。

    参考答案

    1)用户在客户端生成密钥对;

    2)用户将公钥上传至目标服务器;

    3)在服务器上将用户上传的公钥导入到指定用户的~/.ssh/authorized_keys中;

    4)客户端连接验证。

    4 简述RHEL6系统中SELinux机制的三种运行模式。

    参考答案

    三种运行模式:

    ENFORCING,强制模式:发生操作违规会禁止

    PERMISSIVE,警告模式:发生操作违规仍然可以继续,但是会写入日志

    DISABLED,禁用模式:即关闭,不使用SELinux机制

    切换规律:

    强制模式切换到禁用模式需要重启系统,反之亦然

    而强制和警告模式间的切换会立即生效

    5 简述向证书颁发机构(CA)申请数字证书的过程。

    参考答案

    1)在应用服务器上生成私钥

    2)利用私钥生成证书请求文件,CSR文件

    3)将CSR文件提交至CA

    4)CA核实CSR 请求

    5)CA签署数字证书

    6)CA将签署的数字证书颁发给请求者

    7)在应用服务器上部署数字证书

    6 简述基于Apache HTTP Server实现HTTPS安全通信的部署过程。

    参考答案

    1)在Web服务器上生成私钥

    2)利用私钥生成证书请求文件CSR

    3)将CSR文件提交给CA申请证书文件CRT

    4)在WEB服务器上将私钥和CRT文件拷贝至指定目录

    5)安装mod_ssl并修改配置文件

    7 加密的邮件通信协议及端口分别有哪些?

    参考答案

    SMTP(25)+ TLS/SSL

    POP3(110)、POP3S(995)

    IMAP(143)、IMAPS(993)

    8 在网络安全工作中,扫描技术可以达成哪些目标?

    参考答案

    检测潜在的风险

    查找可攻击目标

    收集设备/主机/系统/软件信息

    发现可利用的安全漏洞

    9 iptables默认的规则链有哪些,各自的作用是什么?

    参考答案

    INPUT:处理入站数据包

    OUTPUT:处理出站数据包

    FORWARD:处理转发的数据包

    POSTROUTING:路由选择之后处理

    PREROUTING:路由选择之前处理

    10 iptables处理数据包的基本目标操作有哪些,各自的作用是什么?

    参考答案

    ACCEPT:允许通过/放行

    DROP:直接丢弃,不给出任何回应

    REJECT:拒绝通过,必要时会给出提示

    LOG:记录日志,然后传给下一条规则

    11 iptables的filter过滤表包括的默认规则链是哪几个?

    参考答案

    INPUT:主要与想要进入 Linux 本机的数据包有关

    OUTPUT:主要与Linux  本机所要送初的数据包有关

    FORWARD:与 Linux 本机没有关系,它可以传递数据包到后端的计算机中,与NAT 的table 相关性较高

    12 简述iptables状态跟踪机制所处理的几种数据包类型。

    参考答案

    NEW,请求建立连接的包、完全陌生的包

    ESTABLISHED,将要或已经建立连接的包

    RELATED,与已知某个连接相关联的包

    INVALID,无对应连接,以及连接无效的包

    UNTRACKED,未跟踪状态的包

    13 简述基于DNAT策略发布私网服务器的工作原理。

    参考答案

    为只有私网IP地址的服务器在网关上建立DNAT端口映射;当互联网中的客户机访问网关的映射端口时,由网关修改数据包的目标IP地址和端口,改为私网服务器的真实IP地址和端口(从网关可达);私网服务器提供的响应包根据映射关系原路返回,从而实现了私网服务器的公开化访问。

     

     

     

    MONITOR

     

     

    1 监控描述Nagios与Cacti的区别

    参考答案

    Cacti:在监控方面绘图比较不错,在流量与图型展现比较存在优势;

    Nagios:在故障分析比较不错,报警机制相对来说比较好,报警机制:邮箱、短信等,而且也比Cacti灵活;同时适用监控大量服务器以及服务器上面大批服务状态是否正常,重点不在图形化,而在状态故障的监控。

    2 简单描述Zabbix具有哪些监控功能

    参考答案

    具备常见的商业监控软件所具备的功能

    主机性能监控、网络设备监控、数据库监控等

    支持多种报警机制

    支持自动发现网络设备和服务器

    可以通过配置自动发现服务器规则来实现

    支持分布式,能集中展示、管理分布式的监控点

    编写插件容易,可以自定义监控项

    具有实时绘图功能

     

    3 Nagios的系统特点?

    答案:

    1. 监控主机资源和网络服务
    2. 允许用户通过设计实现简单的插件来监控自己特定的服务
    3. 当被监控对象出现问题时,会及时通知管理人员
    4. 事先定义时间处理程序,当对象出现问题时自动调用对应用的处理程序
    5. 通过Web 页面来监视对象状态,警告提示和日志文件。

     

     

    CLUSTER

     

    1 服务器创建存储技术有哪些?

    参考答案

    DAS

    NAS

    SAN

    2 集群有哪些类别?

    参考答案

    高性能计算集群HPC:通过以集群开发的并行应用程序,解决复杂的科学问题。

    负载均衡(LB)集群:客户端访问负载可以在计算机集群中尽可能平均地分摊处理。

    高可用(HA)集群:当集群中的一个系统发生故障时,集群软件迅速做出反应,将该系统的任务分配到集群中其它正在工作的系统上执行。

    3  LVS的负载平衡方式有哪些?

    参考答案

    VS/NAT:通过网络地址转换实现的虚拟服务器。Director将用户请求报文的目的地址改成选定的Real Server地址后,转发给Real Server。大并发访问时,调度器的性能成为瓶颈。

    VS/DR:直接使用路由技术实现虚拟服务器。通过改写请求报文的MAC地址,将请求发至Real Server,Real Server直接响应客户端。

    VS/TUN:通过隧道方式实现虚拟服务器。Director采用隧道技术将请求发至Real Server后,Real Server直接响应客户端。

    4 写出至少四种LVS负载平衡的调度算法

    参考答案

    轮询(Round Robin)

    加权轮询(Weighted Round Robin)

    最少连接(Least Connections)

    加权最少连接( Weighted Least Connections )

    基于局部性的最少链接(Locality-Based Least Connections)

    带复制的基于局部性最少链接(Locality-Based Least Connections with Replication)

    目标地址散列(Destination Hashing)

    源地址散列(Source Hashing)

    最短的期望的延迟(Shortest Expected Delay Scheduling SED)

    最少队列调度(Never Queue Scheduling NQ)

    5 HAProxy工作模式有哪些?

    参考答案

    mode http:客户端请求被深度分析后再发往服务器。

    mode tcp:在客户端与服务器这间建立全双工会话,不检查第七层信息。

    mode health:仅做健康状态检查,已经不建议使用。

    2 HTTP Keep-alive事务模型的特点是什么?

     

    参考答案

    一次连接可以传输多个请求;

    客户端需要知道传输内容的长度,以避免无限期的等待传输结束;

    降低两个HTTP事务间的延迟;

    需要相对较少的服务器资源。

    6 HAProxy配置文件有哪些组成部分?

    参考答案

    default:为后续的其他部分设置缺省参数,缺省参数可以被后续部分重置;

    frontend:描述集群接收客户端请求的信息集合;

    backend:描述转发链接的后端服务器集合;

    listen:把frontend和backend结合到一起的完整声明。

    7 写出RHCS的核心组件名称?

    参考答案

    cman(cluster manager):集群管理器;

    rgmanger(Cluster resource group manager):集群资源管理器;

    corosync:集群间通信软件;

    rcci:集群远程管理器。

    8 写出RHCS高可用集群配置流程

    参考答案

    配置yum服务器和客户端;

    设置iSCSI共享存储;

    节点上设置iSCSI客户端连接;

    关闭node1~3节点上的NetworkManager服务;

    节点上安装ricci通信工具;

    安装luci Web界面集群管理工具;

    通过luci安装集群;

    配置fence;

    配置apache高可用集群。

     

    9 LVS 三种工作模式原理、以及优缺点比较

    一、NAT模式(VS-NAT)

     

    原理:就是把客户端发来的数据包的IP头的目的地址,在负载均衡器上换成其中一台RS的IP地址,并发至此RS来处理,RS处理完成后把数据交给经过负载均衡器,负载均衡器再把数据包的原IP地址改为自己的IP,将目的地址改为客户端IP地址即可。期间,无论是进来的流量,还是出去的流量,都必须经过负载均衡器。

     

    优点:集群中的物理服务器可以使用任何支持TCP/IP操作系统,只有负载均衡器需要一个合法的IP地址。

     

    缺点:扩展性有限。当服务器节点(普通PC服务器)增长过多时,负载均衡器将成为整个系统的瓶颈,因为所有的请求包和应答包的流向都经过负载均衡器。当服务器节点过多时,大量的数据包都交汇在负载均衡器那,速度就会变慢!

     

    二、IP隧道模式(VS-TUN)

     

    原理:首先要知道,互联网上的大多Internet服务的请求包很短小,而应答包通常很大。那么隧道模式就是,把客户端发来的数据包,封装一个新的IP头标记(仅目的IP)发给RS,RS收到后,先把数据包的头解开,还原数据包,处理后,直接返回给客户端,不需要再经过负载均衡器。注意,由于RS需要对负载均衡器发过来的数据包进行还原,所以说必须支持IPTUNNEL协议。所以,在RS的内核中,必须编译支持IPTUNNEL这个选项

     

    优点:负载均衡器只负责将请求包分发给后端节点服务器,而RS将应答包直接发给用户。所以,减少了负载均衡器的大量数据流动,负载均衡器不再是系统的瓶颈,就能处理很巨大的请求量,这种方式,一台负载均衡器能够为很多RS进行分发。而且跑在公网上就能进行不同地域的分发。

     

    缺点:隧道模式的RS节点需要合法IP,这种方式需要所有的服务器支持”IP Tunneling”(IP Encapsulation)协议,服务器可能只局限在部分Linux系统上。

     

    三、直接路由模式(VS-DR)

     

    原理:负载均衡器和RS都使用同一个IP对外服务。但只有DR对ARP请求进行响应,所有RS对本身这个IP的ARP请求保持静默。也就是说,网关会把对这个服务IP的请求全部定向给DR,而DR收到数据包后根据调度算法,找出对应的RS,把目的MAC地址改为RS的MAC(因为IP一致)并将请求分发给这台RS。这时RS收到这个数据包,处理完成之后,由于IP一致,可以直接将数据返给客户,则等于直接从客户端收到这个数据包无异,处理后直接返回给客户端。由于负载均衡器要对二层包头进行改换,所以负载均衡器和RS之间必须在一个广播域,也可以简单的理解为在同一台交换机上。

     

    优点:和TUN(隧道模式)一样,负载均衡器也只是分发请求,应答包通过单独的路由方法返回给客户端。与VS-TUN相比,VS-DR这种实现方式不需要隧道结构,因此可以使用大多数操作系统做为物理服务器。

     

    缺点:(不能说缺点,只能说是不足)要求负载均衡器的网卡必须与物理网卡在一个物理段上。

     

     

    10  LVS简介?

     

    答案:

    LVS 是 Linux  Virtual Server ,Linux 虚拟服务器;是一个虚拟的服务器集群【多台机器 LB IP】。LVS 集群分为三层结构:

     

    负载调度器(load balancer):它是整个LVS 集群对外的前端机器,负责将client请求发送到一组服务器[多台LB IP]上执行,而client端认为是返回来一个同一个IP【通常把这个IP 称为虚拟IP/VIP】

    服务器池(server pool):一组真正执行client 请求的服务器,一般是我们的web服务器;除了web,还有FTP,MAIL,DNS

    共享存储(shared stored):它为 server pool 提供了一个共享的存储区,很容易让服务器池拥有相同的内容,提供相同的服务[不是很理解]

     

    面试问答题

     

     

    常用服务的端口

     

    HTTP: 80 FTP: 21 DNS: 53  POP3:110 SMTP: 25

    SSH: 22 NGINX: 80 SQUID: 3128 NAGIOS: 5666 MEMCHACHED:11211

    MYSQL: 3360 TOMCAT: 8080 NFS: 2049 TLENET: 23 HTTPS:443

    SAMBA:  UDP 138    TCP 139    POSTFIX:  25     IMAP:  143    zabbix:10051  cacti:

    DHCP:68

     

     

     

     

    常说的1U,2U,3U,4U服务器是什么意思?

     

    这是指的服务器大小规格

    1U=4.45cm

    2U=8.9cm

    3U=4.45cm * 3

    4U=4.45cm * 4

    这指的是服务器的高度

     

    服务器的种类有哪些?

     

    1,机架式服务器

    2,刀片服务器

    3,塔式服务器

    4,机柜式服务器

     

     

     

     

     

    面试题

     

    1,双绞线的两种线序?

    答案:

    T568A:白绿、绿、白橙、蓝、白蓝、橙、白棕、棕

    T568B:白橙、橙、白绿、蓝、白蓝、绿、白棕、棕

     

     

    2,按照从高到低列出OSI七层模型?交换机主要工作在哪一层?路由器工作在哪一层?

    答案:

    物理层,数据链路层,网络层,传输层,会话层,表示层,应用层

     

    交换机:数据链路层

    路由器:网络层

     

    3,下列服务的默认端口是多少?SSH,TELNET,SMTP,POP3,DNS

    答案:  22、23、25、110、53

     

    4,各RAID 级别最少需要的硬盘数量:RAID0=    RAID1=    RAID5=

    答案:

    RAID0= 2   RAID1= 2   RAID5=3

     

    5,windows 服务器远程桌面的默认端口是多少?

    答案:3389

     

    6,在Linux 系统中 ,使用递归方式将 “/usr/src/”目录中的所有子目录及文件设置权限为“rw-r--r--”。

    答案:

    chmod  -R  644  /usr/src

     

    7,标准访问控制列表和扩展访问列表的区别?

    答案:

    标准访问控制列表 :
    根据数据包的源IP地址来允许或拒绝数据包。访问控制列表号是1-99。

    扩展访问控制列表:
    根据数据包的源IP地址、目的IP地址、指定协议、端口和标志来允许或拒绝数据包。访问控制列表号是100-199。

     

    8,机柜1U 是指什么? 数值是多少 ?

    答案: 是指服务器的厚度。  1U等于4.45厘米。

     

    9,一个 42U 标准, 机柜最多能放下几台 3U 服务器?

    答案:13台

     

    10,辨别一个硬盘参数有那些?

    答案:

    一个看 硬盘转速! 转速越高 读写速度越快!
    二个看 硬盘显存  显存大小 都会影响硬盘读写速度! 一般最小为2M 最大可以到32M
    三个看 硬盘的存储量! 更具你自己需要 选择 最小80G 最大到10T  10000G
    三个看 硬盘的接口  IDE  sata 前者俗称并口硬盘 后者为串口  一般来说前者比后者稳定 但是传输速度没有后者快  后者速度很理想  但是 不是很稳定 往往出现坏道的时间 比IDE 的要快

     

    11,简述 More 和less 命令的区别?

    答案:

    More  不能往前翻页,less  可以往前翻页

     

    12,热备硬盘的概念?

    答案:

    热备盘的作用相当于是在raid里面再做一个备份,比如说本来Raid里面是只允许坏一个盘的情况下系统和数据依然正常运行,但是坏两个就不行了,但是加了热备之后就可以同时坏两个盘都没问题,就多了个保险。

     

    原理:

    那个热备盘相当于帮Raid阵列多做多个备份,如果Raid陈列里其中一个盘坏了,这个热备盘就会顶替Raid里的那个坏盘,同时利用异或校验算法,把坏盘上面的数据原样做出来并存储在热备盘中。这样一来就等于Raid没受到损坏,然后你再找个一个同样的盘把坏盘替换掉,Raid和热备盘的状态又正常了!

     

    13,如何在 Linux 中永久设置网络信息, IP:192.168.1.10  ,子网掩码:255.255.255.0  网关:192.168.1.1

    答案:

    vim  /etc/sysconfig/network-scripts/ifcfg-eth0

    IPADDR=192.168.1.10

    NETMASK=255.255.255.0

    GATEWAY=192.168.1.1

     

    14,如何关闭防火墙?

    答案:/etc/init.d/iptables   stop

      永久关闭

      Chkconfig iptables  on

     

    15,查看内存运行状态的命令是什么?

    答案:free  

     

    16,RAID的含义及优势?RAID0、RAID1、RAID5分别指什么、各自的特点?

    参考答案

    1)RAID:廉价冗余磁盘阵列,指通过硬件/软件技术将多个较小/低速的磁盘整合成一个大磁盘使用的一种存储技术,其不仅可存储数据,还可以实现一定程度的冗余保障,具有“速度快、安全性高”的优势。

    2)RAID0、RAID1、RAID5的含义及特点如下:

    RAID0:条带模式,由两个或两个以上的磁盘组成,同一份文档分散在不同的磁盘中,并行写入,提高写效率。

    RAID1:镜像模式,由至少两个磁盘组成,同一份文件被分别写入到不同的磁盘中,每份磁盘数据一样,实现容错,提高读效率。

    RAID5:分布式奇偶校验的独立磁盘模式,结合RAID0和RAID1的好处,同时避免它们的缺点。由至少3块以上大小相同的磁盘组成,实现冗余。

     

     

    17,每天晚上00:00 执行mysql 数据备份,请写出 crontab 配置项

    答案:  0 0 * * * mysqldump -uroot -p123456 --flush-logs 数据库名 >  备份文件名

     

    18,写一个mysql 管理启动停止的脚本,mysql 安装路径 /opt/mysql

    答案:

     

    19, 查看iptables 默认策略的指令是什么?

    答案:  iptables   -L

     

    20,iptables 开放端口 80 端口的语句怎么写?

    答案: iptables -I INPUT -p tcp --dport 80 -j ACCEPT

     

    21,TCP和 UDP  的区别是什么 ?

    答案:

    TCP---传输控制协议,提供的是面向连接、可靠的字节流服务。当客户和服务器彼此交换数据前,必须先在双方之间建立一个TCP连接,之后才能传输数据。TCP提供超时重发,丢弃重复数据,检验数据,流量控制等功能,保证数据能从一端传到另一端。
    UDP---用户数据报协议,是一个简单的面向数据报的运输层协议。UDP不提供可靠性,它只是把应用程序传给IP层的数据报发送出去,但是并不能保证它们能到达目的地。由于UDP在传输数据报前不用在客户和服务器之间建立一个连接,且没有超时重发等机制,故而传输速度很快

    22,Linux主机需要上网,有那几个必须的网络项设置?分别是什么?

    答案:4  个 DNS,IP地址,子网掩码,网关,

     

    23,Apache 配置基于端口的虚拟主机,需要配置那几个项?

    答案:

     

     

    24,简要描述 Linux 的启动过程?

    答案:

    参考答案

    • 加载BIOS,检查硬件信息
    • 读取并执行第一个开机设备内MBR
    • 运行grub引导加载 kernel
    • 内核启动/sbin/init程序
    • init 系统初始化
    • 确定默认的运行级别
    • 触发runlevel事件,运行/etc/rc.d/rc
    • 最后执行/etc/rc.d/rc.local
    • 加载终端或X-Window接口

     

    25,简述你所理解的虚拟化?

    答案:

     

    26,简述TCP 三次握手的过程?

    答案:

    TCP 连接是通过三次握手进行初始化的。三次握手的目的是同步连接双方的序列号和确认号并交换 TCP 窗口大小信息。以下步骤概述了通常情况下客户端计算机联系服务器计算机的过程:

    1. 客户端向服务器发送一个SYN置位的TCP报文,其中包含连接的初始序列号x和一个窗口大小(表示客户端上用来存储从服务器发送来的传入段的缓冲区的大小)。

    2. 服务器收到客户端发送过来的SYN报文后,向客户端发送一个SYN和ACK都置位的TCP报文,其中包含它选择的初始序列号y、对客户端的序列号的确认x+1和一个窗口大小(表示服务器上用来存储从客户端发送来的传入段的缓冲区的大小)。

    3. .客户端接收到服务器端返回的SYN+ACK报文后,向服务器端返回一个确认号y+1和序号x+1的ACK报文,一个标准的TCP连接完成。

    TCP 使用类似的握手过程来结束连接。这可确保两个主机均能完成传输并确保所有的数据均得以接收

     

     

    27,简述 RAID0  RAID1  RAID5 三种工作原理及特点?

    答案:

    RAID 0:连续以位或字节为单位分割数据,并行读/写于多个磁盘上,因此具有很高的数据传输率,但它没有数据冗余,因此并不能算是真正的RAID结构。RAID 0只是单纯地提高性能,并没有为数据的可靠性提供保证,而且其中的一个磁盘失效将影响到所有数据。因此,RAID 0不能应用于数据安全性要求高的场合。

    RAID 1:它是通过磁盘数据镜像实现数据冗余,在成对的独立磁盘上产生互为备份的数据。当原始数据繁忙时,可直接从镜像拷贝中读取数据,因此RAID 1可以提高读取性能。RAID 1是磁盘阵列中单位成本最高的,但提供了很高的数据安全性和可用性。当一个磁盘失效时,系统可以自动切换到镜像磁盘上读写 ,而不需要重组失效的数据。简单来说就是:镜象结构,类似于备份模式,一个数据被复制到两块硬盘上。

    RAID5:分布式奇偶校验的独立磁盘结构,它的奇偶校验码存在于所有磁盘上,任何一个硬盘损坏,都可以根据其它硬盘上的校验位来重建损坏的数据。支持一块盘掉线后仍然正常运行

     

    28,tail 命令输出文件abc 最后 20行

    答案:  tail -20 2bc

     

    29,在 /var/log/  目录下查找文件名以 vmker 开头的文件并打印路径?

    答案:  ls  ar/log/ | grep ^vmker

     

    30,写一个脚本查找最后创建时间是 3天前,后缀是 *.log 的文件并删除。

    答案:    find   /  -name  ".log" -ctime +3 -exec rm -f {} \;

     

    31,写一个脚本将目录下大于 100K 的文件移动至 /tmp 下?

    答案:

    #!/bin/bash
    for file in `ls /root`
    do
           if [ -f $file ]; then
                  if [ `ls -l $file|awk '{print $5}'` -gt 10000 ];  then
                         mv $file /tmp/
                  fi
           fi
    done

     

    32,将本地 80 端口的请求转发到 8080 端口, 当前主机 IP 为 192.168.10.1

    答案:

    Iptables -A PREROUTING  -d 124.42.60.109 -p tcp -m tcp –dport 80 -j DNAT –to-destination 10.0.0.18:9000

    33, 除了 FAT32 和 ext3 ,还有那些文件系统格式 ?

    答案:ext4 ,  xfs  

     

    34,Linux 中每周六的 04点 20 分删除 /tmp/log_* 文件,怎样实现?

    答案:20 04 * * 6 rm -rf /tmp/log_*

     

    35,服务器除了 CPU 负载外, 还可能会在哪方面产生瓶颈?

    答案:  内存,硬盘。宽带。

     

    36,用什么命令可以立即查处服务器在昨天有没有被别人重启过系统?

    答案:

     

    37,怎么查询某 rpm 中包含那些文件?

    答案:rpm  -qpl    

          Rpm  -qpc  

     

    38,Linux 引导加载的先后排序是? 请标序号

    BIOS ( 1 ) Kernel ( 5 ) GRUB (4 ) MBR ( 3 ) RAID ( 2 )

     

    39,在 BASH  shell 中 2>&1 的作用?

    答案:

    是将标准出错重定向到标准输出,这里的标准输出已经重定向到了out.file文件,即将标准出错也输出到out.file文件中。最后一个&, 是让该命令在后台执行。

     

    40,如何在 Linux 中创建 /users 目录 ,并将目录赋予 775 权限?

    答案 :mkdir  -m   755   /users

     

    41,Linux 系统中 /etc/hosts  文件的作用?

    答案 :

    Linux 的/etc/hosts是配置ip地址和其对应主机名的文件,这里可以记录本机的或其他主机的ip及其对应主机名。不同的linux版本,这个配置文件也可能不同。比如Debian的对应文件是/etc/hostname。

     

    42, 每天凌晨 1点在 /data  目录新建当天日期文件夹?

    答案:   0 1 * * *  mkdir  /data/$(date "+%Y%m%d")

     

     

    43,如何查看占用端口 8080 的进程?

    答案 :netstat  -anutp    |  grep  :8080

          lsof -i:8080

     

    44,查看系统启动的服务列表,并新添  mysqld 服务随系统启动、

    答案: chkconfig    --list

        chkconfig   mysql   on

     

     

    45,httpd 有几种工作模式,每种模式的简单区别?

    答案:2中  

    最主要的两种模式是prefork 模式与worker 模式。prefork 每个子进程只有一个线 

    程,效率高但消耗内存大,是unix 下默认的模式;worker 模式每个子进程有多个线程, 内存消耗低,但一个线程崩溃会牵连其它同子进程的线程。 

     

     

    46,MySQL 如何给testuser 用户对 testdb 数据库所有表授权访问,密码为 testpwd,请写出命令?

    答案:   grant all on testdb.* to testuser@"localhost" identified by "testpwd"

     

     

    47、设置数据库管理员从本机登录的密码为999

    答案:mysqladmin  -hlocalhost  -uroot  -p  password  "999"

     

     

    48、授权管理员用户可以在网络中的所有主机登录,对所有库     、表有完全权限且有授权的权限、 登陆密码tarena

    答案:

    mysql  -hlocalhost  -uroot  -p999

    grant  all  on  *.*  to  root@"%"  identified by  "tarena"

    with  grant   option;

     

    49、查看当前登陆数据库服务器的用户是谁?

    答案:   select user();

     

    50、查看当前登陆数据库服务器用户的权限?

    答案: show  grants;

     

    51、查看当前数据库服务器有哪些授权用户。

    答案: select  user,host  from  mysql.user;

     

    52、不允许数据库管理员在数据库服务器本机登录。

    答案:

     delete  from  mysql.user where host in ("127.0.0.1","::1","localhost","svr5.tarena.com");

     flush  privileges;

     

    53、授权userweb用户可以从网络中的任意主机访问数据库服务器,对studb库下的tuser表有查看、更新username字段和age字段的权限   登录密码userweb888。

    答案:

    grant    select,update(username,age) on studb.tuser  to  userweb@"%"  identified by  "userweb888";

    mysql -h192.168.4.5  -uuserweb  -puserweb888

     

    54、授权用户userweb 重置自己的登陆密码为123456,并验证能否使用新密码登陆

    答案: set  password=password("123456");  

     

    1. 数据库管理员修改授权用户userweb的登录密码为654321,让授权用户userweb 使用新密码登陆数据库服务器。

    答案:

    mysql -h192.168.4.5  -uroot  -ptarena

     set  password   for   userweb@"%"=password("654321");

    mysql -h192.168.4.5  -uuserweb  -p654321

     

    56、撤销授权用户userweb 的所有授权并 使其不再能使用此用户连接数据库服务器。

    答案:

    mysql -h192.168.4.5  -uroot  -ptarena

    revoke  all on   studb.tuser    from  userweb@"%";

    delete  from mysql.user  where  user="userweb"  and  host="%";

    flush  privileges;

     

    57、授权webadmin用户可以从网络中的所有主机登录,对bbsdb库拥有完全权限,且有授权权限,登录密码为webadmin

    答案:

    grant     all     on  bbsdb.*     to    webadmin@"%"   identified by "webadmin"   with  grant  option;

    grant    insert     on  mysql.*     to    webadmin@"%" ;

     

    1. 在客户端使用授权用户webadmin登录,把自己的权限授权给userone 用户  登录密码是  userone。

    答案:

    mysql  -h192.168.4.5  -uwebadmin  -pwebadmin

    grant     all     on  bbsdb.*     to  userone@"%"   identified by  "userone";

     

    1. 撤销webadmin用户的授权权限。

    答案:

    mysql -h192.168.4.5  -uroot  -ptarena

     revoke   grant  option   on  bbsdb.*     to  webadmin@"%" ;

     

    1. 让所有授权用户连接数据库服务器后,对test库无任何权限

    答案:

    delete  from  mysql.db  where  user="";

    flush privileges;

     

    1. 只允许数据库管理员从数据库服务器本机登录且有授权的权限 , 登录的密码123plj456。

    答案:

    mysql -h192.168.4.5  -uroot  -ptarena

    grant   all  on *.*  to  root@"localhost"  identified by  "123plj456"  with  grant option;

    quit

    mysql  -hlocalhost  -uroot -p123plj456

    delete from mysql.user where host!="localhost";

     flush privileges;

     


    62,简述Linux文件系统通过i节点把文件的逻辑结构和物理结构转换的工作过程。
    参考答案:
    Linux通过i节点表将文件的逻辑结构和物理结构进行转换。
    i 节点是一个64字节长的表,表中包含了文件的相关信息,其中有文件的大小、文件所有者、文件的存取许可方式以及文件的类型等重要信息。在i节点表中最重要 的内容是磁盘地址表。在磁盘地址表中有13个块号,文件将以块号在磁盘地址表中出现的顺序依次读取相应的块。Linux文件系统通过把i节点和文件名进行 连接,当需要读取该文件时,文件系统在当前目录表中查找该文件名对应的项,由此得到该文件相对应的i节点号,通过该i节点的磁盘地址表把分散存放的文件物 理块连接成文件的逻辑结构。

    63.简述进程的启动、终止的方式以及如何进行进程的查看。
    参考答案:
    在Linux中启动一个进程有手工启动和调度启动两种方式:
    (1)手工启动
    用户在输入端发出命令,直接启动一个进程的启动方式。可以分为:
    ①前台启动:直接在SHELL中输入命令进行启动。
    ②后台启动:启动一个目前并不紧急的进程,如打印进程。
    (2)调度启动
    系统管理员根据系统资源和进程占用资源的情况,事先进行调度安排,指定任务运行的时间和场合,到时候系统会自动完成该任务。
    经常使用的进程调度命令为:at、batch、crontab。
    64. 简述DNS进行域名解析的过程。
    参考答案:
    首先,客户端发出DNS请求翻译IP地址或主机名。DNS服务器在收到客户机的请求后:
    (1)检查DNS服务器的缓存,若查到请求的地址或名字,即向客户机发出应答信息;
    (2)若没有查到,则在数据库中查找,若查到请求的地址或名字,即向客户机发出应答信息;
    (3)若没有查到,则将请求发给根域DNS服务器,并依序从根域查找顶级域,由顶级查找二级域,二级域查找三级,直至找到要解析的地址或名字,即向客户机所在网络的DNS服务器发出应答信息,DNS服务器收到应答后现在缓存中存储,然后,将解析结果发给客户机。
    (4)若没有找到,则返回错误信息。

    65.系统管理员的职责包括那些?管理的对象是什么?
    参考答案:
    系统管理员的职责是进行系统资源管理、设备管理、系统性能管理、安全管理和系统性能监测。管理的对象是服务器、用户、服务器的进程及系统的各种资源等。
    66.简述安装Slackware Linux系统的过程。
    参考答案:
    (1)对硬盘重新分区。 (2)启动Linux系统(用光盘、软盘等)。
    (3)建立Linux主分区和交换分区。(4)用setup命令安装Linux系统。
    (5)格式化Linux主分区和交换分区(6)安装Linux软件包
    (7)安装完毕,建立从硬盘启动Linux系统的LILO启动程序,或者制作一张启动Linux系统的软盘。重新启动Linux系统。
    67.什么是静态路由,其特点是什么?什么是动态路由,其特点是什么?
    参考答案:
    静态路由是由系统管理员设计与构建的路由表规定的路由。适用于网关数量有限的场合,且网络拓朴结构不经常变化的网络。其缺点是不能动态地适用网络状况的变化,当网络状况变化后必须由网络管理员修改路由表。
    动态路由是由路由选择协议而动态构建的,路由协议之间通过交换各自所拥有的路由信息实时更新路由表的内容。动态路由可以自动学习网络的拓朴结构,并更新路由表。其缺点是路由广播更新信息将占据大量的网络带宽。
    68.进程的查看和调度分别使用什么命令?
    参考答案:
    进程查看的命令是ps和top。
    进程调度的命令有at,crontab,batch,kill。
    69.当文件系统受到破坏时,如何检查和修复系统?
    参考答案:
    成功修复文件系统的前提是要有两个以上的主文件系统,并保证在修复之前首先卸载将被修复的文件系统。
    使用命令fsck对受到破坏的文件系统进行修复。fsck检查文件系统分为5步,每一步检查系统不同部分的连接特性并对上一步进行验证和修改。在执行 fsck命令时,检查首先从超级块开始,然后是分配的磁盘块、路径名、目录的连接性、链接数目以及空闲块链表、i-node。
    70.解释i节点在文件系统中的作用。
    参考答案:
    在linux文件系统中,是以块为单位存储信息的,为了找到某一个文件在存储空间中存放的位置,用i节点对一个文件进行索引。I节点包含了描述一个文件所必须的全部信息。所以i节点是文件系统管理的一个数据结构。
    71.什么是符号链接,什么是硬链接?符号链接与硬链接的区别是什么?
    参考答案:
    链接分硬链接和符号链接。
    符号链接可以建立对于文件和目录的链接。符号链接可以跨文件系统,即可以跨磁盘分区。符号链接的文件类型位是l,链接文件具有新的i节点。
    硬链接不可以跨文件系统。它只能建立对文件的链接,硬链接的文件类型位是-,且硬链接文件的i节点同被链接文件的i节点相同。
    72.在对linux系统分区进行格式化时需要对磁盘簇(或i节点密度)的大小进行选择,请说明选择的原则。
    参考答案:
    磁盘簇(或i节点密度)是文件系统调度文件的基本单元。磁盘簇的大小,直接影响系统调度磁盘空间效率。当磁盘分区较大时,磁盘簇也应选得大些;当分区较小时,磁盘簇应选得小些。通常使用经验值。
    73.简述网络文件系统NFS,并说明其作用。
    参考答案:
    网络文件系统是应用层的一种应用服务,它主要应用于Linux和Linux系统、Linux和Unix系统之间的文件或目录的共享。对于用户而言可以通过 NFS方便的访问远地的文件系统,使之成为本地文件系统的一部分。采用NFS之后省去了登录的过程,方便了用户访问系统资源。

    74.某/etc/fstab文件中的某行如下:
    /dev/had5 /mnt/dosdata msdos defaults,usrquota 1 2
    请解释其含义。
    参考答案:
    (1)第一列:将被加载的文件系统名;(2)第二列:该文件系统的安装点;
    (3)第三列:文件系统的类型;(4)第四列:设置参数;
    (5)第五列:供备份程序确定上次备份距现在的天数;
    (6)第六列:在系统引导时检测文件系统的顺序。
    75.Apache服务器的配置文件httpd.conf中有很多内容,请解释如下配置项:
    (1)MaxKeepAliveRequests 200 (2)UserDir public_html
    (3)DefaultType text/plain (4)AddLanguare en.en
    (5)DocumentRoot“/usr/local/httpd/htdocs”
    (6)AddType application/x-httpd-php.php.php.php4
    参考答案:
    (1)允许每次连接的最大请求数目,此为200;(2)设定用户放置网页的目录;
    (3)设置服务器对于不认识的文件类型的预设格式;
    (4)设置可传送语言的文件给浏览器;(5)该目录为Apache放置网页的地方;
    (6)服务器选择使用php4。
    76.某Linux主机的/etc/rc.d/rc.inet1文件中有如下语句,请修正错误,并解释其内容。
    /etc/rc.d/rc.inet1:
    ……
    ROUTE add –net default gw 192.168.0.101 netmask 255.255.0.0 metric 1
    ROUTE add –net 192.168.1.0 gw 192.168.0.250 netmask 255.255.0.0 metric 1
    参考答案:
    修正错误:
    (1)ROUTE应改为小写:route;(2)netmask 255.255.0.0应改为:netmask 255.255.255.0;
    (3)缺省路由的子网掩码应改为:netmask 0.0.0.0;
    (4)缺省路由必须在最后设定,否则其后的路由将无效。
    解释内容:
    (1)route:建立静态路由表的命令;(2)add:增加一条新路由;
    (3)-net 192.168.1.0:到达一个目标网络的网络地址;
    (4)default:建立一条缺省路由;(5)gw 192.168.0.101:网关地址;
    (6)metric 1:到达目标网络经过的路由器数(跳数)。

    77.试解释apache服务器以下配置的含义: 
    (1)port 1080 (2)UserDir userdoc
    (3)DocumentRoot “/home/htdocs”
    (4)<Directory /home/htdocs/inside>;
    Options Indexes FollowSymLinks
    AllowOverride None
    Order deny,allow
    deny from all
    allow from 192.168.1.5
    </Directory>;
    (5)Server Type Standlone
    参考答案:
    Apache服务器配置行含义如下:
    (1)将apache服务器的端口号设定为1080;
    (2)设定用户网页目录为userdoc;
    (3)设定apache服务器的网页根目录:/home/htdocs;
    (4)在此apache服务器上设定一个目录/home/htdocs/inside,且此目录只允许IP地址为192.168.1.5的主机访问;
    (5)定义apache服务器以独立进程的方式运行。
    78.简述使用ftp进行文件传输时的两种登录方式?它们的区别是什么?常用的ftp文件传输命令是什么?
    参考答案:
    (1)ftp有两种登录方式:匿名登录和授权登录。使用匿名登录时,用户名为:anonymous,密码为:任何合法email地址;使用授权登录时,用户名为用户在远程系统中的用户帐号,密码为用户在远程系统中的用户密码。
    区别:使用匿名登录只能访问ftp目录下的资源,默认配置下只能下载;而授权登录访问的权限大于匿名登录,且上载、下载均可。
    (2)ftp文件传输有两种文件传输模式:ASCII模式和binary模式。ASCII模式用来传输文本文件,其他文件的传输使用binary模式。
    (3)常用的ftp文件传输命令为:bin、asc、put、get、mput、mget、prompt、bye

    79.编写shell程序,实现自动删除50个账号的功能。账号名为stud1至stud50。

        参考程序:

        #!/bin/sh

        i=1

        while [ $i -le 50 ]

        do

        userdel -r stud${i}

        i=$(($i+1 ))

    Done

     

    80、查询file1里面空行的所在行号

    awk ‘{if($0~/^$/)print NR}’ file
    or
    grep -n ^$ file |awk ‘BEGIN{FS=”:”}{print $1}’

    81、查询file1以abc结尾的行
    grep abc$ file1


    82、打印出file1文件第1到第3行
    sed -n ’1,3p’ file1
    head -3 file1

     

    83、你对现在运维工程师的理解和以及对其工作的认识

    运维工程师在公司当中责任重大,需要保证时刻为公司及客户提供最高、最快、最稳定、最安全的服务。运维工程师的一个小小的失误,很有可能会对公司及客户造成重大损失,因此运维工程师的工作需要严谨及富有创新精神。

     

    84、linux下常用的DNS服务软件是什么,举出几种常用的DNS记录,如果域名abc.com配置好了一台邮件服务器,IP地址为202.106.0.20,我该如何做相关的解析?是否了解bind的智能解析,如果了解请简述一下其原理

    答案:

    1)常用的DNS软件是bind

    2)A记录 地址记录

    MX记录 邮件交换记录

    CNAME记录 别名域记录

    3)修改abc.com域名的配置文件,增加以下记录

       IN      MX      10      mail.abc.com.

    mail  IN   A        202.106.0.20

    4)bind根据请求解析客户端的IP地址,做出不同的解析,其原理是在配置文件中,设定了view,在每个view都有客户端的IP地址段,bind服务器根据请求解析客户端的IP地址,匹配不同的view,再根据该view的配置,到相应的配置文件进行查询,将结果返回给请求的客户端。

     

    85、通过apache访问日志access.log统计IP和每个地址访问的次数,按访问量列出前10名。

    日志格式样例如下

    192.168.1.247 – - [02/Jul/2010:23:44:59 +0800] “GET / HTTP/1.1″ 200 19

    答案:

    cat access_log | awk ‘{print $1}’ | uniq -c|sort -rn|head -10

    //这个别的方法也能统计,但有些命令是必要的 awk , sort,uniq ,主要看是否这些命令都使用了。

     

    86,在11 月份内,每天的早上6 点到12 点中,每隔2 小时执行一次/usr/bin/httpd.sh 怎么实现

    答案:  06-12/2 * 11 * /usr/bin/httpd.sh 

     

    87,oracle 数据库备份方式 

    答案:

    物理备份:开启网络监听,备份数据库文件。 

    RMAN 备份:通过表空间文件在RMAN 模式对ORACLE 数据备份。

     

    88,写出常见的服务对应端口的对照表至少10个。如:FTP 21

    答案:

    HTTP: 80 FTP: 21 DNS: 53  POP3:110 SMTP: 25

    SSH: 22 NGINX: 80 SQUID: 3128 NAGIOS: 5666 MEMCHACHED:11211

    MYSQL: 3360 TOMCAT: 8080 NFS: 2049 TLENET: 23 HTTPS:443

    SAMBA:  UDP 138    TCP 139    POSTFIX:  25     IMAP:  143    zabbix:10051  

     

    89.简述安装Linux至少需要哪两个分区?还有哪些常用分区?Windows与linux的主要区别是 什么?

    答案:  / 跟  、swap  、/boot、   /home      主要区别是Linux主要是在服务器领域,Windows主要是用在客户端。

     

     

    97.试解释apache服务器以下配置的含义

    (1)  port 1080

    (2)  UserDir userdoc

    (3)  DocumentRoot  /home/htdocs

    (4)<Directory /home/htdocs/inside>;

          Options Indexes FollowSymLinks

          AllowOverride None

          Order deny,allow

          deny from all

          allow from 192.168.1.5

    </Directory>;

    (5)Server Type Standlone

    答案:

    Apache 服务器配置行含义如下:

    (1)将apache 服务器的端口号设定为1080;

    (2)设定用户网页目录为userdoc;  

    (3)设定apache 服务器的网页根目录:/home/htdocs;  

    (4)在此apache 服务器上设定一个目录/home/htdocs/inside,且此目录只允许IP 地 址为192.168.1.5 的主机访问;  

    (5)定义apache 服务器以独立进程的方式运行

     

    98,列出你常用的10个linux命令

    答案:  cd 、ls 、pwd、du 、free、less、mkdir、touch、vim 、useradd

     

    99,linux下面有关查找的命令有哪些

    答案:  grep  find  which

     

    100,linux下面压缩的命令有哪些

    答案: tar  gzip  bzip2  zip air

     

    101,Linux下格式化/dev/sdc1为ext3文件系统,并挂载到/tmp下。

    答案: mkfs.ext3   /dev/sdc1

           Mount   /dev/sc1  /tpm

     

    102,在LINUX系统下,要删除某一个目录下的所有目录,用什么命令来执行

    答案: rm -rf  目录/*

     

    103,Linux中权限最大的帐户是什么

    答案: root  

     

    104,在linux系统中如何重新启动网络服务

    答案: /etc/init.d/network   restart

        service  network   restart

     

    105,在VI编辑器中,末行模式下保存修改并退出的命令是什么

    答案:  x  、 wq

     

    106,说明下列Raid技术至少需要几块树盘

    答案:

    Raid 0 2块

    Raid 1 2块

    Raid 5 3块

    Raid 0+1 4块

    Raid 1+0 4块

     

    ---------------------------------------------------------------------------------------------------

     

    Linux运维工程师面试题第一套

     

    1)Linux启动大致过程?

    加载BIOS–>读取MBR–>Boot Loader–>加载内核–>用户层init依据inittab文件来设定系统运行的等级(一般3或者5,3是多用户命令行,5是界面)–>init进程执行rc.syninit–>启动内核模块–>执行不同级别运行的脚本程序–>执行/etc/rc.d/rc.local(本地运行服务)–>执行/bin/login,就可以登录了。

     

    【评析】基本看过《鸟哥私房菜》的目录就能知道,这是第五章管理员的第一个内容。这道题可以扩展一下:init系统运行等级一共有几种,每一种都是什么?

     

    0:关机,只要是0就不能开机   

    1:单用户模式,不能被远程登陆

    2:多用户不能上网模式    

    3:多用户可以上网模式    

    4:未使用   

    5:有图形的linux  

    6:重启,只要是6就会不断的重启,子子孙孙无穷匮焉的重启

     

    2)Linux系统是由那些部分组成?

    Linux系统内核,shell,文件系统和应用程序四部分组成。

     

    3)apache有几种工作模式,分别简述两种工作模式及其优缺点?

    apache主要有两种工作模式:prefork(apache的默认安装模式)和worker(可以在编译的时候添加--with-mpm=worker选项)

    prefork的特点是:(预派生)

    1.这种模式可以不必在请求到来时再产生新的进程,从而减小了系统开销

    2.可以防止意外的内存泄漏

    3.在服务器负载下降的时候会自动减少子进程数

    worker的特点是:支持混合的多线程多进程的多路处理模块

    如果对于一个高流量的HTTP服务器,worker MPM是一个比较好的选择,因为worker MPM占用的内存要比prefork要小。

    【评析】我没有怎么深入的接触apache,我是半路出家,接触的是nignx,于是这道题就那么回事吧。

     

    4)LVS三种模式的工作过程?

    NAT (Network Address Translation)模式。LB收到用户请求包后,LB将请求包中虚拟服务器的IP地址转换为某个选定RS的IP地址,转发给RS;RS将应答包发给 LB,LB将应答包中RS的IP转为虚拟服务器的IP地址,回送给用户。

    IP隧道 (IP Tunneling)模式。LB收到用户请求包后,根据IP隧道协议封装该包,然后传给某个选定的RS;RS解出请求信息,直接将应答内容传给用户。此时要求RS和LB都要支持IP隧道协议。

    DR(Direct Routing)模式。LB收到请求包后,将请求包中目标MAC地址转换为某个选定RS的MAC地址后将包转发出去,RS收到请求包后 ,可直接将应答内容传给用户。此时要求LB和所有RS都必须在一个物理段内,且LB与RS群共享一个虚拟IP。

    【评析】LVS就是Linux Virtual Server,linux虚拟服务器,这道题要是不明白就记下来,详细内容可以看看http://www.it165.net/admin/html/201401/2248.html  和 http://edu.51cto.com/course/course_id-5787.html?edu_recommend_adid=99

     

    5)列出linux常见打包工具并写相应解压缩参数(至少三种)?

    这个没啥说的,tar命令就是打包工具,对应的解压缩参数 tar -cvf、 tar -zcvf、 tar -jcvf是对应拆包解压什么文件的要对应记住,不要记混。

     

    6)一个EXT3的文件分区,当用touch新建文件时报错,错误信息是磁盘已满,但是使用df -H查看分区信息时只使用了50%,请分析具体原因?

    答:两种情况,一种是磁盘配额问题,另外一种就是EXT3文件系统的设计不适合很多小文件跟大文件的一种文件格式,出现很多小文件时,容易导致inode耗尽了。

     

    7)请使用Linux系统命令统计出establish状态的连接数有多少?

    netstat -an |grep ESTABLISHED |wc -l

    【评析】netstat命令-a参数是“显示所有链接”(all),-n是不要域名解析,即都是以数字IP的显示。这俩是高频参数。

    这里要用大写的ESTABLISHED,因为小写的established显示出来的东西是不对的,可以自己动手试试,所以这里的大小写是一个隐藏点。

    然后再用wc -l来统计数。如果这道题要再多补充“查80端口的establish”,那么就是netstat -an|grep 80 |grep ESTABLISHED |wc -l

    补充一句,现实生产的时候,如果服务器维持的链接是成千上万的话,少用netstat,多用ss。不过ss命令面试的时候考的不多,有个大概了解即可。

     

    8)统计出一台web server上的各个状态(ESTABLISHED/SYN_SENT/SYN_RECV等)的个数?

    netstat -antl|grep ESTABLISTHED|wc -l

    netstat -antl|grep SYN_SENT|wc -l

    netstat -antl|grep SYN_RECV|wc -l

    【评析】这道题跟上一道题的相似度很高,netstat命令的-t参数是查询tcp协议的链接,-l参数是查询listen状态下的链接。netstat -an的话会出现大概三个部分的内容,一部分是tcp协议内容,一部分是udp协议的内容,还有一部分是unix socket方面的链接,Active UNIX domain sockets (servers and established)。unix那部分内容很多,如果用了-t /-u的参数,那么后面的unix内容就会不显示。

     

    9)查找/usr/local/apache/logs目录最后修改时间大于30天的文件并删除

    find /usr/local/apache/logs -type f -mtime +30 -ok rm {} \;

    【评析】find命令以及相关搭配命令是笔试中的重点,因为在现实中运用的情况最多,所以必考必考必考!!!

    使用mtime +30来描述“修改时间大于30天”,使用-type -f来描述“文件”,然后使用-ok命令将所有满足的文件都执行下一步操作。这里是删除文件,所以比较人性化的用ok,删之前询问一下,如果简单暴力就可以直接-exec,直接枪毙掉。用了-exec 的话是不用-f的,多此一举。

     

    10)编写个shell脚本将/usr/local/test 目录下大于100K的文件转移到/tmp目录

    touch AAA.sh

    #!/bin/bash

    find /usr/local/test/ -size +100K -exec mv {} /tmp \;

     

    【评析】-exec and -ok后面的花括号里面的内容就是使用find命令查找出来的文件名。

     

    11)添加一条到192.168.3.0/24的路由,网关为192.168.1.254?

    route add  -net 192.168.3.0 netmask 255.255.255.0 gw 192.168.1.254  或者  route add -net 192.168.3.0/24 gw 192.168.1.254

    【评析】route命令是临时性的增加路由,如果需要永久性的添加路由,方法一,#vim etc/rc.local,在文件里加上 route add -net 192.168.3.0/24 gw 192.168.1.254。方法二,#vim etc/sysconfig/network 在后面加上GATEWAY=192.168.1.254,用这个方法来增加网关。然后# route -n检查一下。

     

     

    12)在每周6的凌晨3:15执行/home/shell/collect.pl,并将标准输出和标准错误输出到/dev/null设备,请写出crontab中的语句?

    15 3 * * 6 sh /home/shell/collect.pl  > /dev/null  2>&1  

    【评析】每一个命令的执行肯定都会有“成功”or“失败”,系统默认1是“stdout标准输出”,2是“stderr标准错误”,&的含义是“等同”,2>&1的意思就是“将错误的信息重定向输出的地方跟1一样,都是去空设备文件”。

     

    13)在11月份内,每天的早上6点到12点中,每隔2小时执行一次/usr/bin/httpd.sh 怎么实现 ?

    crontab -e

    1 6-12/2 * 11 *  bash /usr/bin/httpd.sh

    【评析】crontab、at这种计划任务命令也是面试高频题目,crontab一共有5个*,分别表示“分钟”、“小时”,“日期”、“月份”、“星期几”。基本的结构要明白,而且“当大数有条件,小数任意”的情况下,小数不要用*,用0or 1,如果这道题写成“* 6-12/2 * 11 * bash /usr/bin/httpd.sh”,你的apache会很爽,它会在满足条件的情况下每一分钟都启动一下。

     

    14)匹配AAA文本中的key并打印出该行及下面的5行?

    grep -A 5 key AAA

    【评析】-A是查找关键词下面的行,-B是查找关键词上面的行,-C是上下的行,注意这里是grep,而不是find。

     

    15)查询AAA文件里以abc结尾的行?

    grep "abc$" AAA

    【评析】这里不是grep "abc$" | AAA!,这里没有“|”的,要注意。

     

    16)打印出AAA文件第1到第3行?

    head -3 AAA

    【评析】没啥说的,太基础了。用sed -n '1,3p' AAA更稍微的有一点技术含量。但是用sed命令,要注意搭配-n,要是不搭配-n,你可以试试。

     

    17)查询AAA里面空行的所在行号?

    grep -n "^$" AAA

    【评析】同样这是基础中的基础,送分中的送分。但是要注意grep -n和cat -n这两个输出结果的区别。

     

    18)利用sed命令将test.txt中所有的回车替换成空格?

    sed -e "s/\n/ /g" test.txt

    【评析】sed的-e参数是指多重编辑,也就是说可以sed -e ... -e .... -e....一次性完成三个动作。

     

    19)使用ab命令进行100000次请求,同时每秒40次并发的频率访问http://www.123.com/AAA.txt

    ab -n 100000 -c 40 http://www.123.com/AAA.txt

    【评析】ab命令好像是apache自带的,同一个IP地址并发的访问网站的同一个内容其实是一个隐患,但是现在用路由器上网的情况满地走,所以优化网页的内容是码农的责任,但是适当的缩小准许并发范围是运维人员应该掌握的。

     

     

    20)按照以下要求配置一个防火墙规则

    1.对所有地址开放本服务器的80端口、22端口、10~21端口。

    2.其他机器可以用ping命令来探测本服务器的链接情况

    3.其他没有被准许的端口将禁止访问

    iptables -I INPUT -p tcp -dport 80 -j ACCEPT

    iptables -I INPUT -p tcp -dport 22 -j ACCEPT

    iptables -I INPUT -P tcp -dport 10:21 -i ACCEPT

    iptables -I INPUT -p icmp -j ACCEPT

    iptables -I INPUT -j REJECT

    【评析】iptables也是面试考察的一个重点内容。iptables的内容主要包括“四表+五链”,不过具体问道哪四表哪五链的可能性很小,倒是这种结合实际情况直接让写一连串的规则考题蛮常见的。这道题很基础,写iptables有点在CCNP里写acl 控制访问列表的意思。

     

     

    Linux运维工程师面试题第二套

    python

    1、python是强类型还是弱类型的语言?

    强类型

    【评析】这种问题其实面试出来很没意思,因为太过理论,而且业界对于这个东西的定义没有一个统一的说法。所以这个题问出来挺无语的。记住,目前阳光面的说法:python是动态强类型语言。其中动态静态是针对变量的绑定方式,静态是指在编译的时候绑定变量,而动态是指在运行的时候可以绑定变量。

    强弱类型是指变量的类型一旦一个变量被指定了某个数据类型,如果不经过强制转换,那么它就永远是这个数据类型了。而弱类型语言,一个数字类型的变量即可以是字符串也可以是数字类型,可以容忍隐式类型转换。 python是一个比较严谨的语言,所以它是强类型语言,而不是弱类型语言。

    弱类型语言的话,“1”+2=12,而强类型的话,“1”+2=“大哥,你输入的语法有毛病,你知道不?”

    补充一下,perl和php是弱类型动态语言,c和c++是弱类型静态语言。

     

    2、python的动态性体现在哪?

    动态性体现在:python在运行的时候可以改变原来的函数定义,也可以引进新的代码和对象。

    【评析】首先C和C++不是动态语言。然后,python是可以动态的给实例绑定属性,比如

    class undead:    #先class一个“不死族”

    def __init_(self,name=None,attitude=None):  

     #设定一个类,这个类就是不死族的类.init是初始属性、默认属性

    name=name               #这里设定名字是名字,态度是态度

    attitude=attitude

    P=undead("食尸鬼","hostile")      #将类实例化,食尸鬼是不死族的一员,他的态度是敌对的

     

    但是这个时候已知设定了name和attitude这两个属性,但是我们可以后补新的属性。

    P.attack="爪击"      #设定食尸鬼的攻击方式

    然后我们就可以访问attack这个属性了,虽然它并没有在最原始的时候被设定。

    P.attack回车一下就可以看到结果。这就是可以动态的补充变量的属性,即一次没有整明白,可以后续补齐。

    在实际生产的时候注意一下,在上面的例子里P.name回车的结果和print (P.name)的结果是有那么一点不同的,可以自己动手试试。

     

    3、python的namespace:四种;len()等函数的命名空间

    【评析】命名空间就是名字和对象的映射。也就是可以把一个namespace理解为一个字典,实际上很多当前的Python实现namespace就是用的字典。那么哪些可以是一个namespace呢,比如Python的built-in names(包括内置函数,内置常量,内置类型);一个模块的global names(这个模块定义的函数,类,变量);一个函数的所有local names;还有一个类对象的所有属性(数据成员,成员函数)都组成一个命名空间。

    len()等函数的命名空间这玩意自己查一下就好。

     

    4、range和xrange的区别

    【评析】我找的这个面试题挺新的,2015年10月份左右的试题,但是不得不说搞python就是这一点不好:版本之间不兼容。3.5的版本里xrange已经被枪毙了,range的功能就是xrange。所以在面试的时候大家要注意python2.7和3.5的差别,一旦面试官问你没听过的语句或者是命令,第一反应别说不知道,而是要说“这丫是2.7的吧”。

    继续说,在python 2.7版本里:xrange能用就多用,这玩意比range更好,因为在生成一个大数字序列的时候,xrange的性能更优秀。虽然他俩在for in语句里的输出效果是一样的,但是主要区别是xrange会返回一个整体,这个比较类似于人类的思维,而range返回的是list。比如:

    a=range(10)

    type a 回车的结果是“list”,print a回车的结果是一个list,(1,2,3。。。9,10)。

    a=xrange(10)

    type (a)回车的结果是"xrange",print(a)回车的结果是一个xrange(10)

    而且xrange的效率比range更快,用timeit一下效果更加明显,本机是3.5,range就是xrange,使用timeit.timeit('for i in range(100000000):pass',number=1),看一下查一亿个数用xrange消耗时间仅仅是5秒左右。如果在2.7的环境下,用真实的range试一下上面的命令,估计要20多分钟。

     

    5、于是问怎么实现迭代器,然后又问了生成器,yield语句

    迭代器是一种访问集合元素的方式,从第一个元素开始访问直至到最后一个元素访问完毕,迭代器的访问只能前进不能后退。迭代器主要用于数学里面不断地“后项加前项”的场合里。

    定义__init__()对象就可以使用迭代器访问。

    带有yield的函数在python里就被叫做生成器,或者(n for n in aaa if n >0)这种类型的列表生成式也是生成器。它准许停止函数并且立即返回结果。

    【评析】这里又是一个python 2.7与python 3.5的不同,py2.7里是可以调用.next函数的,但是在py3.5里调用的是next()函数,举个例子,在py2.7里:

    AAA="秦时明月汉时关"      

    AAA.next  回车的话,会把上面的诗句每个字都显示一遍

    也可以next(AAA),效果同样。但是在python 3.5里只能使用next(AAA),用.next的话,会报错。

    而且在实际生产中,宁可有大量可迭代的简单参数,也不要有一个超大量的最后返回一个值的函数。

     

    6、将list的中的一万条字符串合成一条字符串的方法

    可以使用string里的join函数,举个例子

    AAA=["zabbix","ngnix","python","Apache","nocchi"]

    BBB="".join(AAA)

    print (BBB)

    【评析】刚才的例子显示出来的结果是无缝连接AAA里的元素。如果BBB="¥¥¥".join(AAA),这时候再print一下,效果就是"zabbix¥¥¥ngnix¥¥¥python¥¥¥Apache¥¥¥nocchi"

     

    7、python的三目运算符有吗? 怎么用一行代码实现三目运算?

    三目运算符是c的东西,python里是没有的,但是可以用判断语句来模拟达到这个效果。

    【评析】and前后如果有一个值是假,那么返回第一个假值,如果都是真,那么返回最后一个真值。or只要接一个真值,就返回真值,否则返回最后一个假值。

     

    result = XX if True/False else result = YY   当True的时候是XX,如果是False的时候是YY。

     

    -------------------------------------------------------------------------------------------

    linux

    1、top和ps在进程占有资源率的统计方式有什么不同?

    ps是显示在执行ps这个命令时刻所有进程的情况,而top是动态的监控进程的情况(windows的任务管理器)。

     

    top显示系统总的统计信息,比如时间,CPU情况,内存状态和分区信息等等。ps没有这么个功能。

    【评析】ps -ef这个是一个比较常见的搭配方式,-e是“所有进程”,-f是文件之间的关系;ps -aux也是很常用的,意思是“显示包含其他使用者的进程”。ps命令也可以搭配 -more和管道符使用,也可以搭配输出重定向。

    top -n 2指的是更新两次之后就停;top -d 3指的是更新周期是三秒;top -p 574 指的是显示pid为574的进程。top状态下按b是显示高亮。

     

    2、谈谈/proc目录

    Linux 内核提供了一种通过 /proc 文件系统,在运行时访问内核内部数据结构、改变内核设置的机制。proc文件系统是一个伪文件系统,它只存在内存当中,而不占用外存空间。它以文件系统的方式为访问系统内核数据的操作提供接口。

    【评析】更多信息在http://blog.csdn.net/zdwzzu2006/article/details/7747977

     

    3、/proc存在哪里?

    上面已经说了,存在内存里。

     

    4、谈谈页表,内存管理,TLB

    【评析】这道题蛮难的,几句话很难说明白,估计面试官主要想看看你的语言组织能力和沟通能力。答案的话,可以看一下:http://blog.chinaunix.net/uid-26009500-id-3089718.html

     

    5、inode存储了哪些东西?目录名,文件名存在哪里?

    inode存储了文件大小、user id、group id、文件的读写执行权限、软连接硬链接被引用的次数、时间戳、block的位置。唯独没有文件名!!!

     

    目录名、文件名存在“目录项”里。

    【评析】ls -i这个是显示inode号码的查询方法,我个人比较喜欢用ll -hi这个命令。

    stat这个可以查询inode信息,使用方法stat AAA 即可。

    这道题是可以扩展的,“如果出现了系统使用df-h发现/data分区有空余内存,但是却无法建立新文件,这是什么原因,如何解决?”

    答:这个基本就是inode号码已经用完了,所以不能建立新文件。删除掉/ data/cache/目录中的部分文件来释放一部分/data分区的inode,或者把其他分区的inode引进到/data 分区里,操作如下:

    ln -s /AAA/cache/ /data/cache         #这样就达到了使用AAA分区的inode为data分区所用的效果

     

     

    Linux运维工程师面试题第三套

    1、linux如何挂在windows下的共享目录?

    mount -t cifs -o username=windows登陆账号,password="windows账号对应的密码"//16.187.190.50/test /mnt/linux目标文件夹

    或者  muout.cifs  //本机IP地址/test /mut/linux目标文件夹 -o username="windows登陆账号",password="windows账号对应的密码"

    【评析】这套题其实是蛮有难度,从第一题就能看出来,有点下马威的意思。挂载本身不难,但是挂载到windows共享目录在实际中应用到场合不多,所以这道题有条件可以自己试试,没条件就背下来。注意空格,注意逗号。

     

    2、查看http的并发请求数与其TCP连接状态

    netstat -n | awk '/^tcp/ {++b[$NF]} END {for(a in b) print a, b[a]}'

     

    3、用tcpdump嗅探80端口的访问看看谁最高

    tcpdump -i eth0 -tnn dst port 80 -c 1000 | awk -F"." '{print $1"."$2"."$3"."$4}' | sort | uniq -c | sort -nr |head -10

     

    4、查看当前系统每个IP的连接数

    netstat -n | awk '/^tcp/ {print $5}'| awk -F: '{print $1}' | sort | uniq -c | sort -rn

     

    5、shell下32位随机密码生成并且保存到/mima.txt文件里

    cat /dev/urandom|head -1|md5sum|head -c 32 >/mima.txt

     

    【评析】/dev/urandom这个文件可以尝试cat一下,里面的东西我是看不懂,即使后面加上head -1我依旧看不懂,但是加上md5sum我就能看懂了。其实第一个head后面-1也行,-2也行,-100也行,只要别是太大的数字都可以。head -c 32的意思就是从头到第32个字节,如果是head -c 100就是从头到第100个字节,也是“100位密码”的意思

    /dev/urandom这个东西要比/dev/random好用,因为后者会有堵塞的问题,前者一样安全而且速度还很快。

     

    6、统计出apache的access.log中访问量最多的5个IP

    cat access_log | awk  '{print $1}' | sort | uniq -c | sort -n -r | head -5

     

    7、CentOS查看/监测网卡流量的命令

    watch more /proc/net/dev

     

    【评析】现在有的面试官自觉不自觉的就把“网络工程师”的任务跟“运维工程师”的任务混为一谈,如果面试官顺便问cisco机器如何监察网络流量,步骤如下:

    执行命令:configure terminal 回车进入全局配置模式;

    执行命令:interface fastEthernet 0/1 回车进入端口0/1;

    执行命令:ip accounting 回车;

    exit:退出全局配置模式;

    执行:show ip accouting , 回车就可以查看了。

     

    8、ps aux 中的VSZ代表什么意思?RSS代表什么意思?

    VSZ:虚拟内存集,进程所占用的虚拟内存的大小

    RSS:实际内存集,进程所占用的实际内存的大小

     

    9、符号链接与硬链接的区别

    硬链接是复制,享用同一个inode,不能跨分区,不能连目录,a变b也变,但是a删b不删。

    符号链接就是-s,不享用同一个inode,可以跨分区可以连目录,等于“快捷方式”。

     

    10、保存当前磁盘分区的分区表

     

    11、如何在文本里面进行复制、粘贴,删除行,删除全部,按行查找和按字母查找。

    在vim的命令状态下,先用:set nu显示每一行对应的行号,然后使用"5G"这种格式对应到第五行,若要删除该行就是dd;如果复制4行,那就是“4yy”,然后再需要复制的地方按p。如果需要在1~20行里把“AAA”替换成“BBB”那么命令就是:/1,20s/AAA/BBB/gc

    【评析】如果遇到的是比较有板有眼的块型文档,可以使用awk命令直接切块,也可以在vim状态下使用ctrl+v切块,然后y一下确定所切块的范围,最后在需要粘贴的地方p一下。

     

    12、手动安装grub

    grub-install /dev/sda/

     

    13、检测并修复/dev/hda5

    e2fsck -p /dev/hda5

    【评析】如果要求是“检查 /dev/hda5 是否正常,如果有异常便自动修复,并且设定若有问答,均回答[是] ”,那么语句就是e2fsck -a -y /dev/hda5

     

    14、在1-39内取随机数

    echo $[$RANDOM%39]

     

    【评析】echo $RANDOM就是随机在0~32767出数。这个知识点和上面那个随机出32位密码的还是蛮常考的。

     

    15、限制apache每秒新建连接数为1,峰值为3

    iptables -A INPUT -d 172.16.100.1 -p tcp --dport 80 -m limit --limit 1/second  -j ACCEPT

     

    16、FTP的主动模式和被动模式

    主动模式:客户机向服务器的21端口主动发送请求,账户密码验证成功之后,客户机打开一个随机端口(应该是大于1024的口)然后用port命令通知服务器端,“我已经摆好姿势,一个大于1024的口在等待你”,然后服务器端的20口跟客户端的口建立连接,开始数据的传输。在主动模式里,是服务器端主动把数据给客户端。

     

    被动模式:客户机向服务器的21端口主动发送请求,账户密码验证成功之后,服务器端开启一个随机端口,然后用pasv命令告诉给客户端,“我已经摆好姿势,一个随机口在等待你”,然后服务器端也开启一个随机的端口,然后两个随机的端口连接起来用来互通数据。在被动模式里,是客户端把数据从服务器端拉取到自己的电脑内。

    【评析】无论是主动模式还是被动模式都是针对服务器而言的,画个图来解释一下主动模式:

    被动模式的图如下:

     

    补充一下,如果服务器端的iptables只开启了20端口和21端口,其他的全部都reject的话,是无法启动被动模式的,因为没有一个随机端口去用来发送数据,而且被动模式能用就用,主动模式能不用就不用。

    17、显示/etc/inittab中以#开头,且后面跟了一个或者多个空白字符,而后又跟了任意非空白字符的行

    grep '^# \{1,\}[^ ]' /etc/inittab

     

    18、显示/etc/inittab中包含了:一个数字:(即两个冒号中间一个数字)的行

    grep '\:[1-9]\{1\}\:' /etc/inittab

     

    19、统计/data/mysql目录里的普通文件个数

    find /data/mysql/ -type f|wc -l

     

    【评析】是-type f不是type -f,这个细节上别犯错。

     

    20、用33m的颜色打出“天下英雄唯使君与操耳”这句话。

    echo -e "\E[1;33m 天下英雄唯使君与操耳 \E[1;31m"

    或者 echo -e "\E[1;33m" "天下英雄唯使君与操耳" $(tput sgr0)

     

    21、怎么把脚本添加到系统服务里,即用service来调用

     

    #!/bin/bash

    chkconfig: - 90 10

    description: just a test

    echo "Hello,$1"

    mv test /etc/init.d/

    chmod +x /etc/init.d/test

    chkconfig --add test

    service test start        //可以看到Hello,start表示成功

     

    22、写一个脚本,实现批量添加20个用户,用户名为user1-20,密码为user后面跟5个随机字符

    Shell

    #!/bin/bash

    #description: useradd

    for i in `seq -f"%02g" 1 20`;do

        useradd user$i

        echo "user$i-`echo $RANDOM|md5sum|cut -c 1-5`"|passwd –stdinuser$i >/dev/null 2>&1

    done

     

    23、写一个脚本,实现判断192.168.1.0/24网络里,当前在线的IP有哪些

    #!/bin/bash

    for ip in `seq 1 255`

      do

        {

         ping -c 1 192.168.1.$ip > /dev/null 2>&1

         if [ $? -eq 0 ]; then

              echo 192.168.1.$ip UP

         else

              echo 192.168.1.$ip DOWN

         fi

       }&                    #多进程启动

    done

     

     

    24、写一个脚本,判断一个指定的脚本是否是语法错误;如果有错误,则提醒用户键入Q或者q无视错误并退出其它任何键可以通过vim打开这个指定的脚本

    #!/bin/bash

    read -p "please input check script->" file

    if [ -f $file ]; then

        sh -n $file > /dev/null 2>&1

    if [ $? -ne 0 ]; then

        read -p “You input $file syntax error,[Type q to exit or Type vim toedit]” answer

        case $answer in

            q | Q)

                exit 0;;

            *)

                vim $file;;

        esac

     

     

     

    25、数据中有10000个数,其中某个数重复率达到50%以上,求快速找出这数的方法的思路

    10000个数分成两两一组,然后比较不相同去掉,相同的留下,如果一次不能得到结果,再做一次,最终会得到结果。

    【评析】上面这个方法好像很屌,但是说实话,在python里是没有最屌只有更屌!这种找出现次数最多的元素有一个模块可以直接抓取,不用这么费劲。

    假设aaa就是这个多达10000个数的list。(如果数据不是list就转成list。)

    >>> from collections import Counter

    >>> word_counts=Counter(aaa)

    >>> top_one=word_counts.most_common(1)

    >>> print(top_one)

     

     

    Linux运维工程师面试题第四套

    Python

    1、假设 AAA=[1,1,1,3,5,2,6,1,7,3,45],请问使用python如何在将list里重复的数字过滤掉?

     

    1 >>>list(set(AAA))

     

    【评析】注意,虽然set(list(AAA))的结果好像也是一样的,但是注意set是{},list是[]。而且如果AAA里是中括号套中括号的话,那么不可以使用set(list()),因为没法比。不是哈希。

     

    2、简述一下list和tuple的不同

    list是动态的,设定完了可以删减元素,而tuple是静态的,不能删减元素。

    【评析】tuple的调用速度更快,如果是一个需要反复调用的数组,用tuple效果更好。

    tuple不能索引也不能删减元素,但是其实是可以增加元素的,举个例子:

    123 >>>AAA=(1,2,4,5)

    >>>AAA=AAA[:2]+(3,)+AAA[2:]

    >>>print(AAA)              #看看结果。

     

    3、简述一下search()和match()的区别

    match()函数只检测RE是不是在string的开始位置匹配,search()会扫描整个string查找匹配, 也就是说match()只有在0位置匹配成功的话才有返回,如果不是开始位置匹配成功的话,match()就返回none

     

    4、如何在生成一个随机数?

    12 >>>import random

    >>>random.random()

     

    【评析】这样会生成一个在0~1之间的浮点数。如果要生成一个1~10的整数,那么就是print(random,randint(1,10))。

    如果要是在固定的几个元素中随机抽取一个值,比如aaa=["林志玲","贾静雯","刘涛","关咏荷","高圆圆"],要从这几个女性中随机抽取一个值,同样先import random,然后random.choice(aaa)。

     

     

    5、假设 AAA=["梅西","内马尔","苏亚雷斯","皮克","布斯克茨","伊涅斯塔"],BBB=["皮克","德赫亚","拉莫斯","伊涅斯塔","法布雷加斯","布斯克茨"],如何求出两个list之间的交集和差集?

    交集:CCC=[val for val in AAA if val in BBB]

    差集:DDD=[val for val in AAA if val not in BBB]

    【评析】DDD这个差集是AAA这个list里有但是BBB里没有的,如果要显示出BBB有而AAA没有的元素,那么就调换一下 DDD=[val for val in BBB if val not in AAA]

    本题里AAA和BBB都是list,所以要用“列表生成式”;如果这里AAA和BBB都是set,即AAA={"梅西","内马尔","苏亚雷斯","皮克","布斯克茨","伊涅斯塔"},BBB={"皮克","德赫亚","拉莫斯","伊涅斯塔","法布雷加斯","布斯克茨"},那么这样求交集就是AAA&BBB,而差集就是AAA|BBB。

     

    6、反转由单词和不定个数空格组成的字符串,要求单词中的字母顺序不变。如:"I love    this      game!"反转成“game!      this    love I”。

    1234 >>> import re

    >>> AAA = "I love    this      game!"

    >>> BBB= ''.join(re.split(r'(\s+)',AAA)[::-1])

    >>> print(BBB)

     

    【评析】这道题虽然寥寥几个字,但是真心有难度。

     

    7、deepcopy和copy的区别?

    copy:只拷贝父对象,不去深入挖掘里面的子对象

    deepcopy:父对象子对象都拷贝,有点坚守原样的意思。

    【评析】

    1234567 >>>import copy

    >>>a=[1,2,3,4,["a","b"]]

    >>>b=a    #与a同进共退

    >>>c=copy.copy(a)    #浅拷贝

    >>>d=copy.deepcopy(a)    #深拷贝

    >>>a.append(5)

    >>>a[4].append("c")    # 此时分别输出一下a,b,c,d看一下结果。

     

    Mysql

    1、MySQL中myisam与innodb的区别,至少5点

    【评析】将Mysql常见的存储引擎的特点归纳表格如下

     

    2、varchar与char的区别;varchar(50)中50的涵义;int(20)中20的涵义;

    char是定长变量,varchar是变长变量。 varchar(50)表示这一行的变量最大的存储字节是50个字节,int(20)同理。

    【评析】假设有一行是name char(8),如果有一个数据是叫 AAA,那么它仅仅只有三个字节被存储进去,但是依旧存储了8个字节,多余的5个字节空着也就空着了。而是name varchar(8),同样是AAA,由于是变长,所以只保存了3个字节,剩下5个字节是弹性的,有就用,没有就不用。

    在读取方面,char的读取速度要比varchar快,也就是常说的“用读取换容量”,但是还是多用varchar,当数据库内容成万上亿的时候,节省的容量是非常非常可观的。

    3、问了下MySQL数据库cpu飙升到500%的话他怎么处理?

    4、explain出来的各种item的意义;profile的意义以及使用场景;explain中的索引问题。

    5、备份计划,mysqldump以及xtranbackup的实现原理;备份恢复时间;备份恢复失败如何处理。

    mysqldump是采用sql级别的备份机制,将数据表导成sql脚本文件,在不用的mysql版本之间升级时相对比较合适。

    xtranbackup是innodb的hotbackup工具,xtrbackup在启动的时候会复制所有的数据文件,同时会启动一个后台进程,用于监视事务日志,并且从事务日志复制最新的修改。所以xtrbackup在启动的开始,就不懂的将事务日志的每个数据文件的修改都记录下来。

    mysqldump的备份和恢复时间都很慢,任何数据的更新和变化都会被挂起。

    xtrabackup的恢复时间比mysqldump快一点,但是会锁表。

    备份恢复失败的话,其实原因很多,主要可能就是参数设置的不对,检查一下参数。

     

    【评析】使用mysqldump备份数据表的命令,在shell下执行:

    mysqldump -u用户名 -p密码(可以直接-p) -h主机名 --databases 数据库名 > 要备份的文件路径

    mysqldump -u用户名 -p密码 -h主机名 --all-databases >要备份的文件路径

    mysqldump -u用户名 -p密码 -h主机名 --no-data 数据库名 >要备份的文件路径

    这里并不全,另写文章专门补充。

     

    6、MySQL中InnoDB引擎的行锁是通过加在什么上完成(或称实现)的?为什么是这样子的?

    InnoDB的行锁是通过加在索引上实现的,为什么这么设计,我也不知道,去问mysql的设计公司。

     

     

    Linux运维工程师面试题第五套

    1、编写个shell脚本将当前目录下大于10K的文件转移到/tmp目录下。

    1234567891011 #Author:Name

    #E-mail:E-mail Address

    #Description:Move some files        #写程序的时候加上姓名,联系方式和描述是一个好习惯。

    #!/bin/bash

    ls -l|awk '$5>10240 {print $9}' >name.txt    #先把大于10K的文件名都保存到name.txt的文件

    for filename in $(cat name.txt)    #for循环,注意$()

        do

            mv $filename /tmp

            echo $filename "is ok."

        done

    ls /tmp

     

    【评析】第一套里的第十题跟这道题是一样的,bash是可以使用find语句的,那样写比较省事。而且要注意像答案那么写的话,文件夹也是有可能被选中,但是不用担心,文件夹不会被mv,会提示“略过目录”。

    2、编写shell脚本获取本机的网络地址。

    12345678 #Auther:ChrisChan

    #E-mail:chenx1242@163.com

    #Description:Check IP address and Netmask

    #!/bin/bash

    IP=$( ifconfig eth0|grep inet|head -1|cut -d : -f 2|sed 's/Bcast//g' )

    echo "这台机器的IP地址是"$IP

    NETMASK=$( ifconfig eth0|grep inet|head -1|cut -d : -f 3|sed 's/Mask//g' )

    echo "这台机器的网关是"$NETMASK

     

    【评析】一条命令,用三个方法去不断的缩小范围,直到最后确定那几个数字。

     

    3、用Shell编程,判断一文件是不是字符设备文件,如果是将其拷贝到 /dev 目录下。

     

    123456789101112 #Auther:ChrisChan

    #E-mail:chenx1242@163.com

    #Description:Jurde a file is a c-file or not

    #!/bin/bash

    read -t 10 -p "请输入一个文件名:" Fname

    if [ -c $Fname ]

        then

        cp $Fname /dev

       else

           echo "WRONG!"

           exit 88

    fi

     

     

     

    【评析】给一个变量赋值有两种方法,一种就是上面列出的read -p的形式,还有一种是这样的

     

    4.请为下列shell程序添加注释,并说明程序的功能和调用方法:

    1234567891011121314151617181920212223 #!/bin/sh    #这是一个bash语言

    # /etc/rc.d/rc.httpd    #启动Apache

    # Start/stop/restart the Apache web server.    #启动/停止/重启Apache

    # To make Apache start automatically at boot, make thisfile executable: chmod 755 /etc/rc.d/rc.httpd    #若要apache开机自启动,就要让rc.httpd这个文件有755

    case "$1" in

    'start')  #若第一个变量是start  

    /usr/sbin/apachectl start ;;    #apache就启动   

    'stop')    #若第一个变量是stop  

    /usr/sbin/apachectl stop ;;    #apache就停止   

    'restart')    #若第一个变量是restart    

    /usr/sbin/apachectl restart ;;    #apache就重启  

    *)    #若第一个变量不是上面的任意一个

    echo "usage $0 start|stop|restart" ;;    #提示操作人员    

    esac    #结构结束,这是case的反写

     

    功能就是控制apache程序的,调用方法就是启动/停止/关闭

    5、设计一个shell程序,添加一个新组为class1,然后添加属于这个组的30个用户,用户名的形式为stdxx,其中xx从01到30。

    开头略

    1234567891011121314151617 !#/bin/sh    #解释器是sh

    groupadd class1    #建立一个群组

    i=1

    while [ i -le 30 ]

        do

        if [i -le 9 ]

        then

            Username=std0$i

        else

            Username=std$i

        fi

        Useradd $Username

        mkdir /home/$Username

        chown -R $Username /home/$Username    #-R是改变用户和群组

        chgrp -R class1 /home/$Username

        let i =i+1    #我喜欢用这个叠加,简单粗暴还好用但是要注意格式。

    done

     

    6、编写shell程序,实现自动删除50个账号的功能。账号名为stud1至stud50。

    #开头省略

    1234567 #!/bin/bash

    i=1

    while [ $i -le 50 ]

        do

        userdel -r stud$i    #这里使用stud${i}

        let i=i+1

        done

     

    7.某系统管理员需每天做一定的重复工作,请按照下列要求,编制一个解决方案:

    (1)在下午4 :50删除/abc目录下的全部子目录和全部文件;

    (2)从早8:00~下午6:00每小时读取/xyz目录下x1文件中每行第一个域的全部数据加入到/backup目录下的bak01.txt文件内;

    (3)每逢星期一下午5:50将/data目录下的所有目录和文件归档并压缩为文件:backup.tar.gz;

    (4)在下午5:55将IDE接口的CD-ROM卸载(假设:CD-ROM的设备名为hdc);

    (5)在早晨8:00前开机后启动。

    #crontab -e先

    (1)50 16 * * * rm -rf /abc/*

    (2)1 8-18/1 * * * cut /xyz/x1 -f 1 >>/backup/bak01.txt

    (3)50 17 * * 1 tar zcvf backup.tar.gz /data

    (4)55 17 * * * umount /dev/hdc

    (5)这个需要在root用户登录的前提下操作, 而且这题出的有问题,不知道要启动什么。

    【评析】每个用户都会生成一个自己的crontab文件,这个文件一般位于/var/spool/cron,这个文件里的计划任务是专门针对于root这个用户的,如果使用#crontab -r那就会删除掉当前用户的crontab的文件。

     

    8、有一普通用户想在每周日凌晨零点零分定期备份/user/backup到/tmp目录下,该用户应如何做?

     

    crontab -e

     

    0 0 * * 0 cp /user/backup /tmp

    【评析】五个*里最后一个*的取值范围是0~7,其中0和7都是代表星期天,可以写成sun,/etc/crontab的文档原话是这么写的:day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat

     

    9、设计一个Shell程序,在/userdata目录下建立50个目录,即user1~user50,并设置每个目录的权限,其中其他用户的权限为:读;文件所有者的权限为:读、写、执行;文件所有者所在组的权限为:读、执行。

    123456789 #开头略

    #!/bin/bash  

    i=1

    while [ i -le 50 ]

        do

            mkdir -p -m 764 /userdata/user$i

            echo"第"$i"个目录已经生成,权限是764."

            let i=i+1

        done

     

    【评析】mkdir -p是递归生成目录,再加上-m 就是在生成目录的时候直接赋予权限。

    如果要是使用mkdir下生成一个树形的目录,mkdir -vp BBB/{CCC/,EEE/{FFF/,GGG/},KKK/,III/{OOO/,PPP/}},这样生成了一个树形文件。

    如果只是在/userdata/下生成user1~user50的文件,其实不用那么费劲,#cd /userdata/ && touch user{1..50}即可。

     

    10、设计一个shell程序,在每月第一天备份并压缩/etc目录的所有内容,存放在/root/bak目录里,且文件名为如下形式yymmdd_etc,yy为年,mm为月,dd为日。Shell程序fileback存放在/usr/bin目录下。

    做一个脚本先

     

    #cd /usr/bin

    #vim fileback.sh

    12345 #!/bin/bash

    YY=$( date + %y )

    MM=$( date + %m )

    DD=$( date + %d )    #注意格式,注意格式~

    tar -zcvf /root/bak/$YY$MM$DD /etc/*    #将/etc目录下的所有文件都打包压缩成etc.bak文件

     

     

    Linux运维工程师面试题第六套

    1、有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?

    【思路】设定a是range(1,5)的一个,b和c也是。互不相同且不重复,那就是a不等于b也不等于c,同时b也不等于c。

    >>> for a in range (1,5):

    for b in range (1,5):

    for c in range(1,5):

    if (a!=b)and(b!=c)and(c!=a):

    print (a,b,c)

     

    2、输入某年某月某日,判断这一天是这一年的第几天?

    【思路】YY=int(input("请输入一个年份"))    #硬性语言要求要加上int

        MM=int(input("请输入一个月份"))

        DD=int(input("请输入一个日期"))

        上来先读取三个数字,然后先判断 YY %4==0 还是 !=0,如果是等于0,那么2月份就是29天,不然就是28天。

     

        YY除以4是否有余数作为第一个判断,然后再将每一个月的天数累计相加对应每一个月,比如当YY %4=0的时候,MM=1,天数的起始值是31,MM=2,天数的起始值是60,以此类推,手动把12个月的天数先算出来,然后在加上DD的天数,就能得到总的天数。

     

    3、输入三个整数x,y,z,请把这三个数由小到大输出。

    【思路】列表的功能是可以排列的,.sort()是从小到大排列,.reverse()是从大到小排列。于是乎,先设定一个空列表,然后不断地往里面添加元素,最用.sort()一下即可。

     

    AAA=[]

    a=int(input("sign a number:"))

    AAA.append(a)

    b=int(input("sign the second number:"))

    AAA.append(b)

    c=int(input("sign the third number:"))

    AAA.append(c)

    AAA.sort()

    print(AAA)【注意】这个如果打算用笨招---用if把一种情况一种情况纷纷写出来的话是可以的,但是要注意,print(abc)是会出错误的,因为abc是一个新的变量了。

     

    4、输出9*9乘法口诀表。

    【思路】这个跟第一个题很相似。

    for i in range(10):

      for j in range(10):

        AAA=i*j

        print(str(i)+"乘以"+str(j)+"等于"+str(AAA))这里的难点就是如何把“数字”和“字符串”整合在一起输出。

     

    5、显示当前时间,然后暂停10秒输出下10秒时间。

    【思路】Python time.strftime() 函数是一个挺难记的函数,不过这个就是实用性的考题,不会有哪个公司蛋疼的拿出来当真考试用。

    import time

    AAA=(time.strftime('%Y-%m-%d %H:%M:%S',time.localtime(time.time())))

    time.sleep(10)    # 中间休息10秒

    BBB=(time.strftime('%Y-%m-%d %H:%M:%S',time.localtime(time.time())))

    print(AAA)

    print(BBB)

     

    6、输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。

    【思路】不用傻乎乎的if x in [1,2,3,4,5,6,7,8,9],然后判断是否是数字等等。用.isalpha()来判断是不是字母,用.isspace()来判断是不是空格,用.isdigit()来判断是不是数字。当然这个可以用正则来做,然后len一下就搞定,这里用的方法是.isdigit()。

    AAA=input("请输入一行字符")

    x=0

    y=0

    z=0

    for i in AAA:

        if i.isalpha():

        x=x+1

        if i.isspace():

        y=y+1

        if i.isdigit():

        z=z+1

        print("字母的个数是"+str(x))

        print("空格的个数是"+str(y))

        print("数字的个数是"+str(z))

     

    7、一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在第10次落地时,共经过多少米?第10次反弹多高?

    【思路】若H=100,第一次弹起的高度L=H/2,第二次就是L=H/4,第三次L=H/8,分母是2的幂关系,同时共经过的距离就是H不断的加上这些L,这是一个无脑重复性任务,所以可以用for in语句。

    H=100

    L=H/2

    for i in range (2,11):

        H=H+L/2

        L=L/2

        print("第"+str(i)+"次总共经过了"+str(H)+"米")

        print("第"+str(i)+"次的球反弹了"+str(L)+"米")

     

    8 、给一个不多于5位的正整数,要求:一、求它是几位数,二、逆序打印出各位数字。

    【思路】对于列表来说,.sort()是正序,而.reverse()是逆序

     

    I=[]

    i=0

    AAA=input("请输入一个正整数:")

    for x in AAA:

        i=i+1

        I.append(x)

        

    print("这是一个"+str(i)+"位数")    #注意这个print的位置,如果不是顶头的话,会是什么呢?

    I.sort()      

    I.reverse()

    print(I)

     

    9、按相反的顺序输出列表的值。

    【思路】先设定一个空列表,然后一个一个的.append进去,然后使用[::-1]就是相反顺序输出。

    AA=[]

    JJC=input("come:")

    for i in JJC:

        AA.append(i)

    print(AA[::-1])

     

    10、以下函数的输出结果是什么呢?

     

    def hello_world():

        print ('hello world')

     

     

    def three_hellos():

        for i in range(3):

            hello_world()

    if __name__ == '__main__':

        three_hellos()

    【思路】hello_world这个函数的效果就是输出"hello,world",但是在three_hellos套用了这个hello_world这个函数,而且在for in语句里,这里没有i,于是就是重复三次hello_world函数

     

    Linux运维工程师面试题第七套

    1、解释top命令和vmstat命令

    top命令是实时监控当前系统的总体进程状态以及各个程序的进程状态,vmstat可以展现给定时间间隔的服务器的状态值,包括服务器的CPU使用率,内存使用,虚拟内存交换情况,IO读写情况。其中它主要用途是查看虚拟内存情况。

    【评析】vmstat若是直接使用的话,就是现在当前那一刻的服务器状态值,一般来说vmstat都是搭配时间和采集次数使用,比如#vmstat 2 5,就是每两秒采集一下服务器状态,一共采集5下。如果是#vmstat 2,那就是一直在采集。

     

    2、VPN的常见端口是多少?Mysql的缺省端口是多少?ORACLE的缺省端口是多少?NFS的常见端口是多少?FTP的常见端口是多少?SVN服务器的缺省端口是多少?

    LLTP的vpn端口一般是1723;Mysql的缺省端口是3306;ORACLE的缺省端口是1521;NFS的常见端口是123(UDP);FTP的常见端口是21和20端口,SVN服务器的缺省端口是3690。

     

    【评析】这些都要记,比较难记的是vpn和oracle,用一点历史联系法:

    1723年,雍正实行摊丁入亩-----VPN。

    1521年,朱厚照挂了,嘉靖上来了-----oracle。

     

    3、Linux怎么查看用户登录日志

    less /var/log/secure

    【评析】检查系统的各管理员登陆情况的命令有很多,比如last,last -x这个显示的更全一点,或者使用who /var/log/wtmp,但是who /var/log/wtmp没有last看着舒服,/var/log/mtmp是一个乱码文件,用cat命令打开是看不懂的。

     

    4、服务器间怎么实现无密码登录?列举操作步骤。

    假设存在服务器A和服务器B,其中服务器A的服务器名称就是A,对应IP地址是192.168.1.10,同理服务器B的名称是B,其IP地址是192.168.1.20。

     

    1)先在两台机器上#yum install -y openssh-clients

    2)然后在各自服务器上的/etc/sysconfig/network上把HOSTNAME对应填好A和B,再在各自服务器上把/etc/hosts里,把A和B的服务器名和IP地址都添加到文件的末尾,如下

    A 192.168.1.10

    B 192.168.1.20

    3)在A服务器上,#ssh-keygen,然后一路回车。在B服务器也是如此操作。

    4)在A服务器上,#ssh-copy-id -i .ssh/id_rsa.pub root@B,中途输入一次B服务器的root密码。B也是照葫芦画瓢,ssh-copy-id -i .ssh/id_rsa.pub root@A,中途也输入一次A服务器的root密码。

    5)搞定,现在AB之间的互相登陆已经不再需要密码了。

     

    5、简单描述OSI参考模型的七个层次

    物理层:网线、光缆、铜线这些肉眼能看得见的东西

    数据链路层:帧,mac地址

    网络层:数据包,IP地址

    传输层:TCP协议,UDP协议

    会话层:建立会话、维护会话

    表示层:完成数据转换、格式化和文本压缩。

    应用层:具体服务

     

    6、设计一个PV为2千万的网站架构

    http://blog.liuts.com/post/234/

     

    7、简单叙述tcp协议的三次握手过程

    第一次握手:客户机向服务器发送一个syn的数据包,进入SYN_SEND状态;

    第二次握手:服务器收到包,确认之后,向客户机返回一个ack(和一个syn,此时的服务器处于SYN_RECV状态;

    第三次握手:客户端收到了服务器返回的syn+ack之后,再向服务器发送一个ack,这时候服务器和客户机的链接状态是ESTABLISHED

     

    8、如何将本地80端口的请求转发到8080端口,当前主机IP为192.168.2.1。

    iptables -t nat -A PREROUTING -d LOCALIP -p tcp -m tcp --dport 80 -j DNAT --to-destination 192.168.2.1:8080

    iptables -t nat -A POSTROUTING -d 192.168.2.1 -p tcp -m tcp --dport 8080 -j SNAT --to-source LOCALIP:80

     

    9、简述RAID 0,RAID 1,RAID 5,RAID 01,RAID 10的含义

    RAID 0:把两个以上的硬盘整合成一个逻辑的硬盘,每个硬盘自己存储自己的数据,但是合起来就是一个完整的文件。这样带宽加倍,读写能力也加倍,但是要注意,这种方法是没有数据保护功能的,一个硬盘down掉,另外一个也可以“比翼双飞”的扔了。所以,RAID 0这个方法是不可以应用于主要数据的存储区域。

     

    RAID 1:两个硬盘,当一个读写的时候,另一个作为镜像,同时也在读写,也就是说两个盘的内容其实是一模一样的,这样的话数据有个备份。A盘坏了但是B盘还能直接操作,方法比较原始。

    RAID 5:RAID 5跟RAID 0的读取速度差不多,写入速度要慢一点点,并且多了一个奇偶校验信息。数据用块的形式保存到硬盘上,RAID 5不做数据备份,把数据和对应的奇偶校验信息对应存储到硬盘上,用奇偶校验信息来代替“镜像”的功能,这样数据损坏或者丢失,那么可以利用奇偶校验信息修复。

    RAID 0+1:就是RAID 0和RAID 1的合体,多个硬盘互相补充互相做彼此的镜(天)像(使),不但读写更快速,而且更加安全。“0+1”是先0(条带化),然后再1(镜像)。

    RAID 10:这个就是RAID 1+0的意思,先1(镜像),再0(条带化),只要不是两个盘同时坏掉,就可以恢复,而且数据恢复速度要比RAID 0+1恢复的快得多。

     

    10、使用正则表达式匹配电子邮箱或者电子邮件地址

    /^[a-z]([a-z0-9]*[-_]?[a-z0-9]+)*@([a-z0-9]*[-_]?[a-z0-9]+)+[\.][a-z]{2,3}([\.][a-z]{2})?$/i

     

    【评析】

    ①/内容/i 构成一个不区分大小写的正则表达式;^ 匹配开始;$ 匹配结束。

    ②[a-z] E-Mail前缀必需是一个英文字母开头

     

     

    ③([a-z0-9]*[-_]?[a-z0-9]+)* 和_a_2、aaa11、_1_a_2匹配,和a1_、aaff_33a_、a__aa不匹配,如果是空字符,也是匹配的,*表示0个或者多个。

    ④*表示0个或多个前面的字符.

    ⑤[a-z0-9]* 匹配0个或多个英文字母或者数字;[-_]? 匹配0个或1“-”,因为“-”不能连续出现。

    ⑥[a-z0-9]+ 匹配1个或多个英文字母或者数字,因为“-”不能做为结尾

    ⑦@ 必需有个有@

    ⑧([a-z0-9]*[-_]?[a-z0-9]+)+ 见上面([a-z0-9]*[-_]?[a-z0-9]+)*解释,但是不能为空,+表示一个或者为多个。

    ⑨[\.] 将特殊字符(.)当成普通字符;[a-z]{2,3} 匹配2个至3个英文字母,一般为com或者net等。

    ⑩([\.][a-z]{2})? 匹配0个或者1个[\.][a-z]{2}(比如.cn等) 我不知道一般.com.cn最后部份是不是都是两位的,如果不是请修改{2}为{起始字数,结束字数}

     

     

    Linux运维工程师面试题第八套

     

    1、从AAA.log文件中提取“james”或者“curry”,同时不包含“kobe”的行,然后提取“:”分割的第五个字段

    #cat AAA.log|grep -E "james|curry"|grep -v "kobe"|awk -F ":" '{print $5}'

    【评析】搜寻"A or B"的方法就是grep -E "A|B"的方法,-E必须写。不包含某某的方法是grep -v。分割有两个方法,一个是cut,一个是awk。注意cut和awk命令参数的不同。

    上面的命令用cut写是 cat AAA.log|grep -E "james|curry"|grep -v "kobe"|cut -d : -f 2

     

    2、请用shell查询文件AAA.log里面空格开始的所在行号

    #grep -n ^$ AAA.log |cut -d : -f 1

     

    【评析】为什么cat -n AAA.log|grep ^$得不到这个效果呢?思考一下

     

    3、Linux如何在shell环境得知远程计算机的运行时间

    比较有逼格的方法是这样的:

    #cat /proc/uptime| awk -F. '{run_days=$1 / 86400;run_hour=($1 % 86400)/3600;run_minute=($1 % 3600)/60;run_second=$1 % 60;printf("系统 已运行:%d天%d时%d分%d秒",run_days,run_hour,run_minute,run_second)}'

    【评析】其实linux有很多方法可以查看远程计算机的运行时间,#uptime也可以,#top也可以,#w也可以。而且这三种方法直接显示小时,不像/proc/uptime,用秒显示,还要换算一下。

     

    4、如何查看当前Linux系统状态,如cpu,内存,负载,版本

    前三个用top直接就看了,版本用#uname -a

    【评析】如果想了解更多服务器的硬件信息。使用 cat /proc/cpuinfo

     

    5、用一条命令查看目前系统已启动服务所监听的端口

    #netstat -antp|grep LISTEN

     

    【评析】netstat -antl的结果和上面的不一样,#diff -y一下,就发现 -antl会有 ESTABLISHED的项。

     

    6、sed将文件test中第50行中的“haiwao”改为“haiwai”

    #sed -e '50s/haiwao/haiwai/g' test

    【评析】 如果是在vim状态下,需要替换当前行的nba改成NBA,那么就是:s/nba/NBA/gc,如果不加c就是直接替换,加c就是确认一下的意思,c是confirm。若是要替换所有的nba成NBA,语句是:%s/nba/NBA/gc。

     

    7、在每个月的第一天备份并压缩/etc目录下面的所以内容,存放在/root/backup目录下,文件名为yymmdd_etc,并且发邮件通知维护工程师,shell程序filebach存放在/usr/bin目录下

    先写一个filebach.sh

    #vim /usr/bin/filebach.sh    #进入脚本编辑界面

    Author:管理员名称

    E-mail:XXX@163.com    #sh前写好名称和邮件地址是一个好习惯

    #!/bin/bash

    YY=$(date +%y)

    MM=$(date +%m)

    DD=$(date +%d)

    filename=$YY$MM$DD

    tar -zcvf /data/filename 888.log 999.log NBA.txt

    echo "今天的文件已经打包保存完毕,请放心"|mutt -s "主人,OK" XXX@163.com

    echo "程序已运行成功"

    exit 27

     

    :wq保存完毕之后,#crontab -e

    1 0 1 */1 * sh /usr/bin/filebach.sh    #在每个月的第一天0点1分的时候启动计划任务

     

    8、用awk命令在NBA.txt文件里不显示4的倍数行

    #awk 'NR%4' NBA.txt

    【评析】如果说是“显示4的倍数行” #cat -n NBA.txt|awk 'NR%4==0'

    NR表示执行awk命令之后系统读取的数据行数,如果读取多个文件,行数会叠加。

    FNR表示执行awk命令之后系统读取的数据行数,如果读取多个文件,行数不会叠加,每个文件都新起头。

    如果题目没有写明非要用awk的话,可以使用sed命令,#sed 'n;n;n;d' NBA.txt

    假如说“查看NBA.txt文件的前三行”,#awk 'NR<4 {print $0}' NBA.txt

     

    9、在NBA.txt文件里匹配式样“JORDAN”的行之后插入一空行

    #sed 's/JORDAN/JORDAN \n/g' NBA.txt

     

    【评析】sed中的整行更改的参数是c,匹配单个词的更改是g,shell里的替换用的是gc,注意区别。

     

     

    10、只保留Fifa.log文件里重复行中的一行,其他都删除

    #sort Fifa.log|sed '$!N;/\(.*\)\n\1$/!{x;//P;x};h;D' > 新的文件路径

    【评析】这道题比较难,一道题考验了sed几乎全面的知识,而且上面的那个语句的前提就是一定要先 sort,把重复的行放在相邻的位置上。

    删除重复行就比较简单,sort Fifa.log|uniq > 新的文件路径,或者使用 awk '!a[$0]++' NBA.txt 也能达到一样的效果。

     

    11、同一端口可否同时被两个应用监听?

    别说两个,一百个都可以。但是不可以有两个以上的动态进程监听,也就是说,可以一个动态进程+若干个静态进程。

     

    12、假设有如下内容的name.txt和team.txt,然后对应球员和所属球队进行整合

    [root@ChrisChan mysql]# cat name.txt

    1 curry

    2 harden

    3 kobe

    4 durant

     

     

    [root@ChrisChan mysql]# cat team.txt

    4 thunders

    1 warriors

    2 rockets

    3 lakers

    #!/bin/bash

    for ((i=1;i<=4;i=i+1))

            do

                    a=$(grep $i employee.txt)

                    b=$(grep $i team.txt|awk '{printf $2}')

                    echo $a $b

            done

     

     

    Linux运维工程师面试题第九套

     

    本次全部都是mysql的题,非常的基础,enjoy it~

    1、SELECT id,name FROM test1; 和 SELECT id name FROM test1;这两个语句有什么区别?

     

    第一个语句会出现两个列,第二个只有一个列,列的内容是id的内容,但是列的名称是name,也就是说第二句话其实就是"SELECT id AS name FROM test1"。

     

     

     

    2、如果想把test1表格里满足age大于等于30的username都迁移到test2表格里的username列,需要什么命令?

    INSERT test2(username) SELECT username FROM test1 WHERE age >=30;

    【评析】这种方法注意,新表/旧表有更新的时候,旧表/新表不随之更新。因为没有链接,仅仅是一个一次性的复制而已。

     

    3、列举出A表里满足价格(price)大于A表里所有货品平均价格的id,name,age。

    SELECT id,name,age FROM A WHERE > (SELECT AVG(price) FROM A)

    【评析】 其实可以先求出来AVG(price),然后直接大于那么值就好,但是要注意SELECT ,SELECT的结果才是一个数。

    如果需要把平均值四舍五入,并且保留小数点后两位,那就ROUND(AVG(price),2)

     

    4、test1表里有一个叫"country"的列,现在需要做一个test2,专门放这些"country",并且实现这两个表的多表连接。

    1)CREATE一个TABLE叫test2,里面有一列叫id,另一列叫country。

    2)INSERT test2(country) SELECT country FROM test1 GROUP BY country;

    3)UPDATE test1 AS OLD INNER JOIN test2 AS NEW ON test1.country = test2.country

    ->SET old.country = new.id

    【评析】“增删改查”,mysql难就难在这个“查”上。

     

    5、Mysql自增长的关键字

    AUTO_INCREMENT

     

    6、mysql备份实例,自动备份mysql,并删除30天前的备份文件

     

    #!/bin/bash

    #Description:Auto backup mysql

    MYSQLDB=Test1

    MYSQLUSR=Username

    MYSQLPASSWORD=PASSWORD    #定义账号、密码和需要备份的数据库名

    BACKUPDIR=backupDIR=/data/backup/mysql/$(date +%Y-%m-%d)   

    if[ $UID -ne 0 ];then    #UID是USERID的意思,0是ROOT的ID号

        echo This script must use administrator or root user ,please exit!    

    #提示当前账户不是ROOT,需要切换成ROOT用户

        sleep 2  

    exit 0  

    fi  

      

    if[ ! -d $BAKDIR ];then  

    mkdir -p $BAKDIR  

    else  

    echo This is $BAKDIR exists ,please exit ….  

    sleep 2  

    exit  

    fi

     

    /usr/bin/mysqldump -u$MYSQLUSR -p$MYSQLPW -d $MYSQLDB >/data/backup/mysql/`date +%Y-%m-%d`/www_db.sql  

    cd $BAKDIR ; tar -czf  www_mysql_db.tar.gz *.sql  

    cd $BAKDIR ;find  . -name “*.sql” |xargs rm -rf[ $? -eq 0 ]&&echo “This `date +%Y-%m-%d` RESIN BACKUP is SUCCESS”  

    cd /data/backup/mysql/ ;find . -mtime +30 |xargs rm -rf  

     

     

    7、讲述一下cookie和session的区别。

     

    cookie机制采用的是在客户端保持状态的方案,而session机制采用的是在服务器端保持状态的方案。

    cookie不是很安全,别人可以分析存放在本地的cookie并进行cookie欺骗,考虑到安全应当使用session。

    session会在一定时间内保存在服务器上。当访问增多,会比较占用你服务器的性能,考虑到减轻服务器性能方面,应当使用COOKIE。

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

    【评析】cookie如果没有设置生存时间,那么关闭浏览器的瞬间,cookie就会消失,下一次登陆依旧要输入账号密码,cookie默认是存储在硬盘里而不是内存里,如果是设置了生存时间,那么就会保存在内存里,下一次继续使用。

    session有一个session id,要是服务器能查询的到id,就会按这个id号的内容体现数据,如果查询不到就会新建一个id,session id是可以用cookie的形式保存的。

     

    8、讲述一下服务器缓存的原理。

     

     

     

     

    9、如何查看系统资源占用状态。

    top      uptime    vmstat    free   很多命令都可以

     

    10、如果一个网站平时业务不是很多,但是有时候业务会急剧增长,例如淘宝之类电商网站,遇到特价的时候,流量会特别大,遇到这种情况,在尽量低的成本下,应该如何做。

    rsync命令去同步数据,然后dns轮询。

    【评析】sync的远距离版本就是rsync,r在这里是remote的缩写。

    它可以当cp这个功能用,rsync -a /A /B   将B的内容拷贝到A文件夹下。或者rsync main.c machineB:/home/userB,把main.c拷贝到B机器的userB里,他拷贝速度很快,因为他发现有不同的内容就会拷贝,相同的就跳过。

     

    Linux运维工程师笔试题第十套

    1、Nginx是如何实现高并发的?

     

    service nginx start之后,然后输入#ps -ef|grep nginx,会发现Nginx有一个master进程和若干个worker进程,这些worker进程是平等的,都是被master fork过来的。在master里面,先建立需要listen的socket(listenfd),然后再fork出多个worker进程。当用户进入nginx服务的时候,每个worker的listenfd变的可读,并且这些worker会抢一个叫accept_mutex的东西,accept_mutex是互斥的,一个worker得到了,其他的worker就歇菜了。而抢到这个accept_mutex的worker就开始“读取请求--解析请求--处理请求”,数据彻底返回客户端之后(目标网页出现在电脑屏幕上),这个事件就算彻底结束。

     

    nginx用这个方法是底下的worker进程抢注用户的要求,同时搭配“异步非阻塞”的方式,实现高并发量。

     

    【评析】在nginx.conf里第二行就是work_process,有默认是4的,也可以更改成auto,这个值不是越大越好,要可实际服务器CPU的情况而定,一般是CPU有几个,工作进程就有几个。

     

    2、编写一个Nginx的access模块,要求准许192.168.3.29/24的机器访问,准许10.1.20.6/16这个网段的所有机器访问,准许34.26.157.0/24这个网段访问,除此之外的机器不准许访问。

     

    location/{

    access 192.168.3.29/24;

    access 10.1.20.6/16;

    access 34.26.157.0/24;

    deny all;

    }【评析】防火墙是层层深入的,可以从硬件上用acl(访问控制列表)实现,如果没有钱买一个防火墙,那么还可以在linux上设置iptables,如果iptables不设置,还可以在nginx上设置。

     

    nginx本身工作很少,内部的各个模块是实际的参与工作的,模块英文信息:http://nginx.org/en/docs/

     

    3、给favicon.ico和robots.txt设置过期时间; 这里为favicon.ico为99天,robots.txt为7天并不记录404错误日志

     

     

    location ~(favicon.ico) {

        log_not_found off;

        expires 99d;

        break;

    }

    location ~(robots.txt) {

        log_not_found off;

        expires 7d;

        break;

    }

    4、设定某个文件的浏览器缓存过期时间;这里为600秒,并不记录访问日志

     

    location ^~ /html/scripts/loadhead_1.js {

        access_log off;

        expires 600;

        break;

    }

    5、只充许固定ip访问网站,并加上密码,设定账号是james,密码是123456

    printf "james:$(openssl passwd -crypt 123456)\n" >>/usr/local/nginx/conf/passwd

    location \ {

        allow 22.27.164.25; #允许的ipd

        deny all;

        auth_basic “KEY”; #登陆该网页的时候,会有这个“KEY”的提示,提示只能是英文,中文不识别。

        auth_basic_user_file /conf/htpasswd;

    }

     

    6、如果访问服务器的ip地址是203.46.97.124的话,给他展现的主页是/123.html,其他人就展现index.html。

    location / {

            if ($remote_addr = 203.46.97.124 ) {

                rewrite ^.*$ /123.html;

                    }

            root /usr/local/nginx/html;

            index index.html;

            }

     

    Linux运维工程师笔试题第十一套

     

    试题

    【试题1】缺省安装的 nginx + php-fpm 环境,假设用户浏览一个耗时的网页,但是却在服务端渲染页面的中途关闭了浏览器,那么请问服务端的 php 脚本是继续执行还是退出执行?

    【解答】正常情况下,如果客户端client异常退出了,服务端的程序还是会继续执行,直到与IO进行了两次交互操作。服务端发现客户端已经断开连接,这个时候会触发一个user_abort,如果这个没有设置ignore_user_abort,那么这个php-fpm的程序才会被中断。

    拓展阅读:http://www.cnblogs.com/yjf512/p/5362025.html?foxhandler=RssReadRenderProcessHandler

     

    【试题2】首先,Nginx 日志格式中的 $time_local 表示的是什么时间?请求开始的时间?请求结束的时间?其次,当我们从前到后观察日志中的 $time_local 时间时,有时候会发现时间顺序前后错乱的现象,请说明原因。

    【解答】$time_local:在服务器里请求开始写入本地的时间,因为请求发生时间有前有后,所以会时间顺序前后错乱。

     

    【试题3】在Nginx+PHP环境中,Web错误日志里偶尔会出现如下错误信息:「recv() failed (104: Connection reset by peer) while reading response header from upstream」,请分析可能的原因是什么。

    【解答】遇到这种情况,第一解决方法是重启php服务,service php5-fpm restart,但是这个治标不治本,相对治本的方法是把php的pm.max_requests值改大一点,比如500;第二个方法,修改php-fpm的request_terminate_timeout,把值改成=0。

     

    这个情况要看后端的php,要么是链接不上,要么是php服务挂了,要么就是链接超时。

    worker数不够挂掉就会504,worker处理超时就会502。

    拓展阅读:http://serverfault.com/questions/543999/nginx-errors-recv-failed-104-connection-reset-by-peer-while-reading-respon

     

     

    【试题4】已知Nginx和PHP-FPM安装在同一台服务器上,Nginx连接PHP-FPM有两种方式:一种是类似127.0.0.1:9000的TCP socket;另一种是类似/tmp/php-fpm.sock的Unix domain socket。请问如何选择,需要注意什么。

    【解答】Unix domain socket的流程不会走到TCP 那层,直接以文件形式,以stream socket通讯。如果是TCP socket,则需要走到IP层。说的通俗一点,追求可靠性就是tcp(需要占用一个端口,更稳),追求高性能就是Unix Socket(不需要占用端口,更快)。有图有真相:

     

    上面的是tcp/ip模式,每秒钟解决不到140个请求。

     

    这个是socket模式,一秒钟解决5700+个请求,高下立判!

    拓展阅读:https://blog.linuxeye.com/364.html

     

    http://www.cnxct.com/default-configuration-and-performance-of-nginx-phpfpm-and-tcp-socket-or-unix-domain-socket/ (这篇文章强烈推荐,写得特别好!)

     

     

    【试题5】在Nginx中,请说明Rewrite模块里break和last的区别。

    【解答】官方文档的定义如下:

    last:停止执行当前这一轮的ngx_http_rewrite_module指令集,然后查找匹配改变后URI的新location;

    break:停止执行当前这一轮的ngx_http_rewrite_module指令集;

    千言万语举个例子:

    location /test1.txt/ {

     

            rewrite /test1.txt/  /test2.txt break;

     

    }

     

            location ~ test2.txt {

            return 508;

    }

     

     

    使用break会匹配两次URL,如果没有满足项,就会停止匹配下面的location,直接发起请求www.xxx.com/test2.txt,由于不存在文件test2.txt,则会直接显示404。

    使用last的话,会继续搜索下面是否有符合条件(符合重写后的/test2.txt请求)的location,匹配十次,如果十次没有得到的结果,那么就跟break一样了。返回上面的例子,/test2.txt刚好与面location的条件对应上了,进入花括号{}里面的代码执行,这里会返回508。(这里的508是我自己随便设定的)

     

    拓展阅读:http://nigelzeng.iteye.com/blog/1731317

     

    【试题6】有时候nginx运行很正常,但是会发现错误日志中依旧有报错connect() failed (111: Connection refused) while connecting to upstream.请问肿么办?

    【解答】一般情况下我们的upstream都是fastcgi://127.0.0.1:9000. 造成这个问题的原因大致有两个:1)php-fpm没有运行:执行#netstat -ant | grep 9000命令查看是否启动了php-fpm,如果没有则启动你的php-fpm即可,2)php-fpm队列满了:php-fpm.conf配置文件pm.max_children修改大一点,重启php-fpm并观察日志情况。

     

     

    【试题7】简单描述一下nginx里root和alias的区别。

    【解答】root与alias主要区别在于nginx如何解释location后面的uri,这会使两者分别以不同的方式将请求映射到服务器文件上。root是全路径定位,alias是当前路径定位。

    举个例子

    location ~ ^/weblogs/

    {

     root /data/nginx/html;

     autoindex on;

    }

    这里匹配是分大小以/weblogs的路径,当在浏览器地址栏申请/weblogs/a/b/c/123.txt的时候,服务器查找的是/data/nginx/html/weblogs/a/b/c/123.txt文件,并把它重现给web服务器,这就是全路径定位,即完整的URI映射。

    location ^~ /binapp/ {  

     internal;  

     alias /data/nginx/conf/html/;

    }

    这时候浏览器地址栏申请/binapp/a/456.jpg的时候,服务器查找的是/data/nginx/conf/html/a/456.jpg,看到了吗!没有location后面的直连的/binapp/了,也就是说alias会把location后面配置的路径丢弃掉,把当前匹配到的目录指向到指定的目录。

     

    注意!使用alias时,目录名后面一定要加"/",否则会找不到文件,而root不一定。

     

     

    Linux运维工程师笔试题第十二套

    本套都是shell的命令,enjoy it~

    1)假设某变量aaa="史蒂芬周星驰",现在只想要输出后面的"周星驰",应该怎么办?

    aaa="史蒂芬周星驰"

    echo ${aaa:3:3}【评析】已知变量总字符数和要切的起始字符数,就可以用这种方法切变量了。这种方法比较常见的应用于变量是长路径的情况下。

     

    2)使用curl获取www.163.net的响应头信息

     

    curl -I http://www.163.net【评析】curl -i 网址除了有网站的响应头信息之外,还有网站的全部内容。如果要获得http status code的内容:curl -sL -w "%{http_code}\\n" www.163.net -o /dev/null。

     

    3)执行历史纪录里的第505条命令

    !505

    【评析】打印历史纪录里最后一次cat的命令是!cat:p,如果是执行历史记录里最后一次cat的命令是!cat。执行之前操作最后一次的命令是!!。

     

    4)已知当前时间是2016年5月16日,想要以年月日的形式输出当前时间后十天的日期。

    date +%y%m%d -d 10day

    【评析】如果是前十天,那就是# date +%y%m%d -d -10day

     

    5)重复的执行"ps -ef",观察实时情况。

    watch ps -ef  (默认时间是2秒一次)

     

    6)显示剩余内存

    free -m |grep cache|awk '/[0-9]/{print $4"MB"}'

     

    7)打开/a/wow.txt,同时要跳到文件末端

    vim + /a/wow.txt

    【评析】如果是要把文章里的tab转换成空格的话,命令是# expand wow.txt wow2.txt。

     

    8)grep的精确查找命令

    grep -w

     

    【评析】grep在默认情况下是包含查找,比如111.txt有单词"james",#grep "me" 111.txt,是可以查到james的,但是要精确查找,只查找me这个单词,那么就要用#grep -w "me" 111.txt。

     

     

    9)扫描203.90.146.0/24网络里所有开放8081端口的ip

    nmap -p 8081 203.90.146/24

    【评析】nmap命令不是linux自带的,需要#yum install -y nmap安装一下。 8081端口什么都不是,仅仅是一个用来测试时候的端口,而tomcat默认是8080端口,这个不要记混。

     

    10)并排显示1.txt和2.txt

    paste 1.txt 2.txt

    【评析】这个方法其实用的非常少,因为排版效果很差,说是并排,其实两段文件都粘乎在一起了,非常不容易分辨,如果想要更好的排版方式,推荐#diff -y 1.txt 2.txt。

     

    11)拆分大体积的tar.gz文件,每个是100MB,然后再合并。

    split -b 100m

    /path/to/large/archive

    /path/to/output/filescat files*>archive

     

    12)获取wow.txt文件的owner

    stat -c %U wow.txt

    【评析】这玩意是不是比cut awk等切来切去的更有逼格?

     

    13)找出文件名结尾有空格的文件

    find . -type f -exec egrep -l "+$" {} \;

     

    14)输入多行文字

    cat >test.txt (ctrl+d保存退出)

     

    【评析】如果想清空一个文件,最无脑的方法就是# >test.txt,或者是#echo /dev/null > test.txt。而用#echo > test.txt的话,其实还是有一个空格行的,这个方法并不太严谨。

     

    15)将/A/B下的当前文件夹(不包括子文件夹)所有.sh文件都转移到/C/D里去,然后把.sh后缀全部改成.log。

    #!/bin/bash

    @written by ChrisChan

    cd /A/B && find ./ -maxdepth 1 -name "*.sh" -exec mv {} /C/D \;

    cd /C/D

    files=$(find ./ -name "*.sh")

    for i in files:

        do

            mv $i ${i%sh}log

        done【评析】更改文件名的后缀最简单的方法就是{变量%要换的内容}换后的内容。但是要注意这里要用for in循环,不然的话,files是那一大串的文件名,改的也只会是最后一个文件的后缀。

     

     

    16)假设name.txt的内容如下,请做一个脚本能够统计所搜索的单词出现的次数。

    [root@ChrisChan mysql]cat name.txt

     

    james

    james

    james

    wade

    wade

    bosh

    curry

    curry

    curry

    curry

     

    #!/bin/bash

    read -p "plwase enter a word: " word

    a=0

    for i in $(cat name.txt)

            do

                    if [ $i == $word ]

                            then

                                    let a=a+1

                    fi

            done

    echo $word出现了$a次。

     

     

     

     

     

    2  选择题:

     

    (以下均为单选题)

    1. cron 后台常驻程序 (daemon) 用于:
      A. 负责文件在网络中的共享
      B. 管理打印子系统
      C. 跟踪管理系统信息和错误
      D. 管理系统日常任务的调度
    2. 在大多数Linux发行版本中,以下哪个属于块设备 (block devices) ?
      A. 串行口
      B. 硬盘
      C. 虚拟终端
      D. 打印机
    3. 下面哪个Linux命令可以一次显示一页内容?
      A. pause
      B. cat
      C. more 
      D. grep
    4. 怎样了解您在当前目录下还有多大空间?
      A. Use df
      B. Use du /
      C. Use du .
      D. Use df .
    5. 怎样更改一个文件的权限设置?
      A. attrib
      B. chmod
      C. change
      D. file
    6. 假如您需要找出 /etc/my.conf 文件属于哪个包 (package) ,您可以执行:
      A. rpm -q /etc/my.conf
      B. rpm -requires /etc/my.conf
      C. rpm -qf /etc/my.conf
      D. rpm -q | grep /etc/my.conf
    7. 假如当前系统是在 level 3 运行,怎样不重启系统就可转换到 level 5 运行?
      A. Set level = 5
      B. telinit 5
      C. run 5
      D. ALT-F7-5
    8. 那个命令用于改变 IDE 硬盘的设置?
      A. hdparam
      B. ideconfig
      C. hdparm
      D. hddparm
    9. 下面哪个命令可以列出定义在以后特定时间运行一次的所有任务?
      A. atq
      B. cron
      C. batch
      D. at
    10. 下面命令的作用是:set PS1="[\u\w\t]\\$" ; export PS1
      A. 改变错误信息提示
      B. 改变命令提示符
      C. 改变一些终端参数
      D. 改变辅助命令提示符
    11. 作为一个管理员,你希望在每一个新用户的目录下放一个文件 .bashrc ,那么你应该在哪个目录下放这个文件,以便于新用户创建主目录时自动将这个文件复制到自己的目录下。
      A. /etc/skel/
      B. /etc/default/
      C. /etc/defaults/
      D. /etc/profile.d/
    12. 在bash中,export命令的作用是:
      A. 在子shell中运行命令
      B. 使在子shell中可以使用命令历史记录
      C. 为其它应用程序设置环境变量
      D. 提供NFS分区给网络中的其它系统使用
    13. 在使用了shadow口令的系统中,/etc/passwd和/etc/shadow两个文件的权限正确的是:
      A. -rw-r----- , -r--------
      B. -rw-r--r-- , -r--r--r--
      C. -rw-r--r-- , -r--------
      D. -rw-r--rw- , -r-----r--

    14.下面哪个参数可以删除一个用户并同时删除用户的主目录?
    A. rmuser -r
    B. deluser -r
    C. userdel -r
    D. usermgr -r

    1. 有一个备份程序mybackup,需要在周一至周五下午1点和晚上8点各运行一次,下面哪条crontab的项可以完成这项工作?
      A. 0 13,20 * * 1,5 mybackup
      B. 0 13,20 * * 1,2,3,4,5 mybackup
      C. * 13,20 * * 1,2,3,4,5 mybackup
      D. 0 13,20 1,5 * *  mybackup
    2. 如何从当前系统中卸载一个已装载的文件系统
      A. umount
      B. dismount
      C. mount -u
      D. 从 /etc/fstab 中删除这个文件系统项
    3. 如果你的umask设置为022,缺省的你创建的文件的权限为:
      A. ----w--w-
      B. -w--w----
      C. r-xr-x---
      D. rw-r--r--
    4. 在一条命令中如何查找一个二进制命令 Xconfigurator 的路径?
      A. apropos Xconfigurator
      B. find Xconfigurator
      C. where Xconfigurator
      D. which Xconfigurator
    5. 哪一条命令用来装载所有在 /etc/fstab 中定义的文件系统?
      A. amount
      B. mount -a
      C. fmount
      D. mount -f
    6. 运行一个脚本,用户不需要什么样的权限?
      A. read
      B. write
      C. execute
      D. browse on the directory
    7. 在Linux中,如何标识接在IDE0上的slave硬盘的第2个扩展分区?
      A. /dev/hdb2
      B. /dev/hd1b2
      C. /dev/hdb6
      D. /dev/hd1b6
    8. 在应用程序起动时,如何设置进程的优先级?
      A. priority
      B. nice
      C. renice
      D. setpri
    9. 在 bash 中, 在一条命令后加入 "1>&2" 意味着:
      A. 标准错误输出重定向到标准输入
      B. 标准输入重定向到标准错误输出
      C. 标准输出重定向到标准错误输出
      D. 标准输出重定向到标准输入
    10. 下面哪条命令可以把f1.txt复制为f2.txt?
      A. cp f1.txt | f2.txt
      B. cat f1.txt | f2.txt
      C. cat f1.txt > f2.txt
      D. copy f1.txt | f2.txt
    11. 显示一个文件最后几行的命令是:
      A. tac
      B. tail
      C. rear
      D. last

    26.如何快速切换到用户John的主目录下?
    A. cd @John
    B. cd #John
    C. cd &John
    D. cd ~John

    27.把一个流中所有字符转换成大写字符,可以使用下面哪个命令?
    A. tr a-z A-Z
    B. tac a-z A-Z
    C. sed /a-z/A-Z
    D. sed --toupper

    28.使用什么命令可以查看Linux的启动信息?
    A. mesg -d
    B. dmesg
    C. cat /etc/mesg
    D. cat /var/mesg

    29.运行级定义在:
    A. in the kernel
    B. in /etc/inittab
    C. in /etc/runlevels
    D. using the rl command

    30.如何装载(mount)上在 /etc/fstab 文件中定义的所有文件系统?
    A. mount -a
    B. mount /mnt/*
    C. mount
    D. mount /etc/fstab

    31.使用ln命令将生成了一个指向文件old的符号链接new,如果你将文件old删除,是否还能够访问文件中的数据?
    A. 不可能再访问
    B. 仍然可以访问
    C. 能否访问取决于文件的所有者
    D. 能否访问取决于文件的权限

    32.xt2fs文件系统中,缺省的为root用户保留多大的空间?
    A. 3%
    B. 5%
    C. 10%
    D. 15%

    33.哪个命令用来显示系统中各个分区中inode的使用情况?
    A. df -i
    B. df -H
    C. free -b
    D. du -a -c /

    34.多数Linux发行版本中,图形方式的运行级定义为?
    A. 1
    B. 2
    C. 3
    D. 5

    35.在系统文档中找到关于print这个单词的所有说明?
    A. man print
    B. which print
    C. locate print
    D. apropos print

    36.man 5 passwd 含义是?
    A. 显示 passwd 命令的使用方法
    B. 显示 passwd 文件的结构
    C. 显示 passwd 命令的说明的前五行
    D. 显示关于passwd的前五处说明文档。

    37.如何在文件中查找显示所有以"*"打头的行?
    A. find \* file
    B. wc -l * < file
    C. grep -n * file
    D. grep ‘^\*’ file

    38.在ps命令中什么参数是用来显示所有用户的进程的?
    A. a
    B. b
    C. u
    D. x

    39.显示二进制文件的命令是?
    A. od
    B. vil
    C. view
    D. binview

    40.如何显示Linux系统中注册的用户数(包含系统用户)?
    A. account -l
    B. nl /etc/passwd |head
    C. wc --users /etc/passwd
    D. wc --lines /etc/passwd

    41.在一行结束位置加上什么符号,表示未结束,下一行继续?
    A. /
    B. \
    C. ;
    D. |

    42.命令 kill 9 的含义是:
    A. kills the process whose PID is 9.
    B. kills all processes belonging to UID 9.
    C. sends SIGKILL to the process whose PID is 9.
    D. sends SIGTERM to the process whose PID IS 9.

    43.如何删除一个非空子目录/tmp?
    A. del /tmp/*
    B. rm -rf /tmp
    C. rm -Ra /tmp/*
    D. rm -rf /tmp/*

    44.使用什么命令可以在今天午夜运行命令 cmd1 ?
    A. at midnight cmd1
    B. cron -at "00:00" cmd1
    C. batch -t "00:00" < cmd1
    D. echo "cmd1" | at midnight

    45.你的系统使用增量备份策略,当需要恢复系统时,你需要按什么顺序恢复备份数据?
    A. 最后一次全备份,然后从最早到最近的增量备份
    B. 最后一次全备份,然后从最近到最早的增量备份
    C. 最早到最近的增量备份,然后最后一次全备份
    D. 最近到最早的增量备份,然后最后一次全备份

    46.对所有用户的变量设置,应当放在哪个文件下?
    A. /etc/bashrc
    B. /etc/profile
    C. ~/.bash_profile
    D. /etc/skel/.bashrc

    47.Linux系统中,一般把命令 ls 定义为 ls --color 的别名,以便以不同颜色来标识不同类型的文件。但是,如何能够使用原先的ls命令?
    A. \ls
    B. ;ls
    C. ls $$
    D. ls --noalias

    48.在Linux系统中的脚本文件一般以什么开头?
    A. $/bin/sh
    B. #!/bin/sh
    C. use /bin/sh
    D. set shell=/bin/sh

    49.下面哪种写法表示如果cmd1成功执行,则执行cmd2命令?
    A. cmd1&&cmd2
    B. cmd1|cmd2
    C. cmd1;cmd2
    D. cmd1||cmd2

    50.在哪个文件中定义网卡的I/O地址?
    A. cat /proc/modules
    B. cat /proc/devices
    C. cat /proc/ioports
    D. cat /io/dma

    51.Linux中,提供TCP/IP包过滤功能的软件叫什么?
    A. rarp
    B. route
    C. iptables
    D. filter

    52.如何暂停一个打印队列?
    A. lpr
    B. lpq
    C. lpc
    D. lpd

    53.在vi中退出不保存的命令是?
    A. :q
    B. :w
    C. :wq
    D. :q!

    54.在 XFree86 3.x 中, 缺省的字体服务器为:
    A. xfs
    B. xfserv
    C. fonts
    D. xfstt

    55.使用什么命令检测基本网络连接?
    A. ping
    B. route
    C. netstat
    D. ifconfig

    56.下面哪个协议使用了二个以上的端口?
    A. telnet
    B. FTP
    C. rsh
    D. HTTP

    57.在PPP协议中,哪个认证协议不以明文传递密码?
    A. PAM
    B. PAP
    C. PGP
    D. CHAP

    58.下面哪个文件系统应该分配最大的空间?
    A. /usr
    B. /lib
    C. /root
    D. /bin

    59.如何在Debian系统中安装rpm包?
    A. alien pkgname.rpm
    B. dpkg --rpm pkgname.rpm
    C. dpkg --alien pkgname.rpm
    D. alien pkganme.rpm ; dpkg -i pkganme.deb

    60.在安装软件时下面哪一步需要root权限?
    A. make
    B. make deps
    C. make config
    D. make install

    61.什么命令用来只更新已经安装过的rpm软件包?
    A. rpm -U *.rpm
    B. rpm -F *.rpm
    C. rpm -e *.rpm
    D. rpm -q *.rpm

    62.在 windows 与 Linux 双起动的系统中,如果要让 LILO 管理引导,则 LILO 应该放在:
    A. MBR
    B. /
    C. root分区的首扇区
    D. /LILO

    63.ldconfig的配置文件是
    A. /lib/ld.so
    B. /etc/ld.so.conf
    C. /etc/ld.so.cache
    D. /etc/modules.conf

    64.下面哪个命令可以压缩部分文件:
    A. tar -dzvf filename.tgz *
    B. tar -tzvf filename.tgz *
    C. tar -czvf filename.tgz *
    D. tar -xzvf filename.tgz *

    65.网络服务的daemon是:
    A. lpd
    B. netd
    C. httpd
    D. inetd

    66.Linux与windows 的网上领居互联,需要提供什么daemon?
    A. bind
    B. smbd
    C. nmbd
    D. shard

    67.对于Apache服务器,提供的子进程的缺省的用户是:
    A. root
    B. apached
    C. httpd
    D. nobody

    68.sendmail中缺省的未发出信件的存放位置是:
    A. /var/mail/
    B. /var/spool/mail/
    C. /var/spool/mqueue/
    D. /var/mail/deliver/

    69.apache的主配置文件是:
    A. httpd.conf
    B. httpd.cfg
    C. access.cfg
    D. apache.conf

    70.关于可装载的模块,装载时的参数,如I/O地址等的存放位置是:
    A. /etc/conf.modules
    B. /etc/lilo.conf
    C. /boot/System.map
    D. /etc/sysconfig

    71.在 Linux 中,如何关闭邮件提示?
    A. biff n
    B. mesg n
    C. notify off
    D. set notify=off

    72.在 bash shell 环境下,当一命令正在执行时,按下 control-Z 会:
    A. 中止前台任务
    B. 给当前文件加上 EOF.
    C. 将前台任务转入后台
    D. 注销当前用户

    73.定义bash环境的用户文件是:
    A. bash & .bashrc
    B. bashrc & .bash_conf
    C. bashrc & bash_profile
    D. .bashrc & .bash_profile

    74.下面哪条命令用来显示一个程序所使用的库文件?
    A. ldd
    B. ld so
    C. modprobe
    D. ldconfig

    75.如何查看一个RPM软件的配置文件的存放位置?
    A. rpm -qc rpm1
    B. rpm -Vc rpm1
    C. rpm --config rpm1
    D. rpm -qa --config rpm1

    76.如何查看一个RPM软件的修改记录?
    A. rpm -Vc postfix
    B. rpm -qpil postfix
    C. rpm --changelog postfix
    D. rpm -q --changelog postfix

    77.通过Makefile来安装已编译过的代码的命令是:
    A. make
    B. install
    C. make depend
    D. make install

    78.什么命令解压缩tar文件?
    A. tar -czvf filename.tgz
    B. tar -xzvf filename.tgz
    C. tar -tzvf filename.tgz
    D. tar -dzvf filename.tgz

    79.在 XF86Config 配置文件中,哪个段用来设置字体文件?
    A. The Fonts section.
    B. The Files section.
    C. The xfsCodes section.
    D. The Graphics section.

    80.8 bit color 指的是:
    A. 64K colors
    B. 16K colors
    C. 256 colors
    D. 16M colors

    81.下面哪个文件用来设置 X window 的显示分辨率?
    A. xinit
    B. xinitrc
    C. XF86Setup
    D. XF86Config

    82.哪个变量用来指定一个远程X应用程序将输出放到哪个X server上?
    A. DISPLAY
    B. TERM
    C. ECHO
    D. OUTPUT

    83.在xdm的配置目录中,哪个文件用来设置在用户通过xdm登录后自动起动的应用程序?
    A. The Xsession file
    B. The Xsetup_0 file
    C. The Xstart_up file
    D. The GiveConsole file

    84.命令 netstat -a 停了很长时间没有响应,这可能是哪里的问题?
    A. NFS.
    B. DNS.
    C. NIS.
    D. routing.

    85.ping使用的协议是:
    A. TCP
    B. UDP
    C. SMB
    D. ICMP

    86.下面哪个命令不是用来查看网络故障的?
    A. ping
    B. init
    C. telnet
    D. netstat

    87.拨号上网使用的协议通常是:
    A. PPP
    B. UUCP
    C. SLIP
    D. Ethernet

    88.TCP/IP中,哪个协议是用来进行IP自动分配的?
    A. ARP
    B. NFS
    C. DHCP
    D. DNS

    89.下面哪个文件定义了网络服务的端口?
    A. /etc/netport
    B. /etc/services
    C. /etc/server
    D. /etc/netconf

    90.下面哪个功能用来生成一个文件的校验码?
    A. md5
    B. tar
    C. crypt
    D. md5sum

    91.缺省的,用户邮件放在:
    A. ~/mail/
    B. /var/mail/
    C. /var/mail/spool/
    D. /var/spool/mail/

    92.下面哪个文件包含了供 NFS daemon 使用的目录列表?
    A. /etc/nfs
    B. /etc/nfs.conf
    C. /etc/exports
    D. /etc/netdir

    93.如何停止一台机器的telnet服务?
    A. Put NONE in /etc/telnet.allow
    B. Put a line 'ALL:ALL' in /etc/hosts.deny
    C. Comment the telnet entry in /etc/inittab
    D. Comment the telnet entry in /etc/xinetd.conf

    94.在哪个文件中保存了sendmail的别名?
    A. /etc/aliases
    B. /etc/mailaliases
    C. /etc/sendmail.aliases
    D. /etc/sendmail/aliases

    95.smbd and nmbd daemons 的配置文件是:
    A. /etc/exports
    B. /etc/smb.conf
    C. /etc/samba/config
    D. /usr/local/samba.cfg

    96.下面哪个命令用来卸载一个内核模块?
    A. rmmod
    B. unmod
    C. delmod
    D. modprobe

    97.什么情况下必须运行lilo
    A. once a day from cron
    B. once a week from cron
    C. after installing a new kernel
    D. after installing a new module

    98.什么命令显示所有装载的模块?
    A. lsmod
    B. dirmod
    C. modules
    D. modlist

    99.下面哪个命令刷新打印机队列?
    A. lpflush
    B. lprm -
    C. lpclear
    D. lprm all

    100.下面哪个命令可以查看网卡的中断?
    A. cat /proc/ioports
    B. cat /proc/interrupts
    C. cat /proc/memoryinfo
    D. which interrupts

    专业:移动通信 科目:M y S Q L 数据库

    一、单项选择题

    1.以下聚合函数求数据总和的是 ( )

    A.M A X

    B.S U M

    C.C O U N T

    D.A V G

    答案:B

    2.可以用 ( )来声明游标

    A.C R E A T E C U R S O R

    B.A L T E R C U R S O R

    C.S E T C U R S O R

    D.D E C L A R E C U R S O R

    答案:D

    3.S E L E C T 语句的完整语法较复杂,但至少包括的部分是 ( )

    A.仅 S E L E C T

    B.S E L E C T ,F R O M

    C.S E L E C T ,G R O U P

    <