linux test1

初级:

Windows :
Windows
上运行 IIS(asp asp.net php) 由于部分站点经常挂马,请问如何让该类事情有效发生率降低或避免
CPU
占有率忽高忽低,导致系统 报警,初步判断是某个 IIS 网站程序编写不规范造成的,请问如何找出该站具有的进程,并对其进行限制?
请列出以下几类虚拟主机托管站点的 (1) IIS+mssql  (2)php+mysql  (3)java+oracle   采用的 web 容器、数据库 ,如何管理,自己日常工作中
  
所遇到的问题是如何解决 ( 每个子类举个例子 )
列出日常管理 windows 所用的工具 ,远程, ftp web 接口是什么应用程序,如果有多个请列出并说明各个工具之间的差别
Linux

列出自己管理 linux 服务器 的工具及日常应用哪些功能,如果有多个简要说明各个之间的差异
vi
编辑器 ( 涉及到修改,添加,查找 )
用过 awk sed 吗?说明其不同及相同点
用过 linux 监控工具吗?列出所用及所知道的并分析优势
linux
服务器之间相互复制文件 命令 是什么?
su
su - 有什么区别,用过 sudo 吗?和 su 有什么区别?
Oracle

Oracle instance
Oracle database 有什么不同与联系
权限相同的两个 oracle 用户 ,其中一个用户导入的数据 ,另一个用户登录后看不到导入的数据,为什么?
怎么更改 mysql root 密码 ( 至少使用两种方法 )


mysql
有哪些引擎,列出并说明之间的差异
mysql
如何实现 mysql 多机之间的复制,基于什么实现的
通常都有什么模型来解决 mysql 高可用性
mysql
创建可以允许远程登录,只能管理 test 数据库下所有表的用户,写出命令
用过 memecached 吗?它是用来解决什么问题的?
了解 nginx 吗?说明 nginx 为什么比 apache web 容器高效率
列出 nginx 常用生产环境 中的几个不同应用
了解群集及负载技术 吗?列出自己所熟悉的相关技术

-------------------------------------------------------------

aix ibm 各硬件平台
Solaris sun
硬件平台
Hpux hp
  HP 公司硬件平台
Redhat Linux INTEL
AMD 平台
UBUNTU
  INTEL AMD 平台
2.
请写出几个常用的类 Unix 命令(共 10 分,写对一个得 1 分,写错一个扣 1 分)
ls
cd pwd find man tar who hostname rm top
3.
简答题:(共 10 分,每题 2 分)
a) uname –a
可以查看什么信息?
显示主机名相关全部信息
b)
什么是 awk ?它的主要功能是什么?
awk
是一种编程语言,用于在 linux/unix 下对文本和数据进行处理。
c) echo PATH
echo $PATH 有什么区别?
echo PATH
在当前 屏幕 列出 PATHL 四个字
echo $PATH
显出出当前路径
d)
可以在 Windows 系统下访问 Linux 系统的文件吗?如果可以,请至少列出 2 种方法。
可以,在 WINDOWS 下加装相应软件
explore2fs Ext2IFS
e) Xmanger
这个软件的主要作用是什么?
一款 WINDOWS 下的可以远程管理 UNIX 的软件
4.
我们希望在 Windows2000Server 上实现对目录 /beta 的自动、定时备份,但是 /beta 目录下有文件与 Windows 服务 beta 相关,请简述实现的步骤(共 5 分)
首先用 sc stop net stop 停止该服务
Cp /beta/*
所有目录到一个位置
Sc start
net start 开启该服务
将上面做成一个脚本,再用 AT 调用
5.
以下为 oracle 下新建用户的方法,请说明每条命令的含义( 7 分):
sqlplus /nolog
以系统用户进入 sqlplus 界面
connect /as sysdba
作为 sysdba 连接数据库
CREATE USER btim IDENTIFIED BY btim;
创建用户名 btim ,口令 btim
GRANT CONNECT TO btim;
connect 权限授予 btim
GRANT RESOURCE TO btim;
resource 权限授予 btim
GRANT SELECT_CATALOG_ROLE TO btim;
select_catalog_role 权限授予 bitm
GRANT SELECT ANY TABLE TO btim;
select any table 权限授予 btim
6.
一台使用 SCSI 硬盘的 Linux 服务器,当插上一个新购买的 SCSI 磁带机后(注:没有对磁带机做任何设置,也没有跳线),发现服务器不能启动,报告找不到启动设备,请分析最可能的原因是:
磁带机的 SCSIID 跟原主机的硬盘重复冲突
7.
什么是 MIB 文件 , 它有什么作用?
MIB
:全称是( Management Information Base ),是一种 SNMP RMON 使用的网络设备定义格式 ===============================================

中级:

看题目,应该是 linux 运维方面的。 Sanding 根据具体题目,对其中一些答案做了修改。做 Baidu 面试真题的价值,我认为不在于能作对几个题目,而在于把握考点和出题思路。
1.
假设 Apache 产生的日志文件名为 access_log, apache 正在运行时 , 执行命令 mv access_log access_log.bak, 执行完后 , 请问新的 apache 的日志会打印到哪里 , 为什么 ?
新的日志会打印在 access_log.bak 中,因为 apache 启动时会找到 access_log 文件,随时准备向文件中加入日志信息,虽然此时文件被改名,但是由于服务正在运行,因为它的 inode 节点的位置没有变,程序打开的 fd 仍然会指向原来那个 inode ,不会因为文件名的改变而改变。 apache 会继续向已改名的文件中追加日志,但是若重启 apache 服务,系统会检查 access_log 文件是否存在,若不存在则创建。
2.
Shell 环境下 , 如何查看远程 Linux 系统运行了多少时间 ?
监控主机执行: ssh user@ 被监控主机 ip "uptime"
3.
处理以下文件内容 , 将域名取出并进行计数排序 , 如处理 :
http://www.baidu.com/index.html
http://www.baidu.com/1.html
http://post.baidu.com/index.html
http://mp3.baidu.com/index.html
http://www.baidu.com/3.html
http://post.baidu.com/2.html
得到如下结果 :
域名的出现的次数 域名
3 www.baidu.com
2 post.baidu.com
1 mp3.baidu.com
可以使用 bash/perl/php/c 任意一种
CODEcut -d "/" -f3 shu.txt | sort | uniq -c | sort -r | awk ‘{print $1"t"$2}’
3        www.baidu.com
2        post.baidu.com
1        mp3.baidu.com
4.
如果得到随机的字串 , 长度和字串中出现的字符表可定义 , 并将字串倒序显示 ,
0123456789 作为基准的字串字符表 , 产生一个 6 位的字串 642031, 打印出的字串为
130246,
可使用 bash/perl/php/c 任意一种 .
这道题我选择用 C
 
CODE#include
int main()
{
    int a=123456;
    while(a%10>0)
    {  
        printf("%d",a%10);
        a/=10;
    }  
    printf("n");
}
 
5.
如何查看当前 Linux 系统的状态 , CPU 使用 , 内存使用 , 负载情况等 .
Linux
系统中 “/proc” 是个伪文件目录 , 不占用系统空间,及时的反应出内存现在使用的进程情况 …… 其中许多文件都保存系统运行状态和相关信息
对于 “/proc” 中文件可使用文件查看命令浏览其内容,文件中包含系统特定信息:
cpuinfo         
主机 CPU 信息
filesystems      
文件系统信息
meminfo         
主机内存信息
version           Linux
内存版本信息
diskstatus       
磁盘负载情况
另外 top 命令可以动态的显示当前系统进程用户的使用情况 , 而且是动态的显示出来,尤其是在该命令显示出来的对上方对系统的情况进行汇总 .
free
命令呢可以查看真实使用的内存   一般用 free -m
使用 lsof ps -aux 可以查看详细的每个进程的使用状况
6.
10 台被监控主机、一台监控机,在监控机上编写脚本,一旦某台被监控机器 / 分区适用率大于 80% 就发邮件报警放到 crontab 里面, 10 分钟检查一次
#
测试机器:虚拟机 Linux as 4 
#1.
首先建立服务器间的信任关系。拿两台机器做测试
本机 ip:192.168.1.6
[root@localhost ~]# ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
/root/.ssh/id_rsa already exists.
Overwrite (y/n)? y (
以为我是第 2 次建立关系所以此处覆盖原来的文件 )
Enter passphrase (empty for no passphrase):(
直接回车无须输入密钥 )
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
04:37:13:2a:4b:10:af:c1:2b:03:3f:6b:27:ce:b9:62 root@jiayi
[root@localhost ~]# cd .ssh/
[root@localhost .ssh]# ll
-rw——-  1 root root 883 Apr 25 17:51 id_rsa
-rw-r–r–  1 root root 221 Apr 25 17:51 id_rsa.pub
-rw-r–r–  1 root root 442 Apr 25 17:37 known_hosts
id_rsa
是密钥文件, id_rsa.pub 是公钥文件。
[root@localhost .ssh]# scp id_rsa.pub192.168.1.4:/root/.ssh/192.168.1.6
[email protected]’s password:
id_rsa.pub                                    100%  221     0.2KB/s   00:00
这里把公钥文件取名为本机的 ip 地址就是为了以后和更多的机器建立信任关系不发生混淆。
现在登陆到 192.168.1.4 机器
[root@localhost ~]# cd .ssh/
[root@localhost .ssh]# cat 192.168.1.6 >> authorized_keys
然后回到 192.168.1.6 机器直接
[root@loc .ssh]# ssh 192.168.1.4
Last login: Wed Aug  8 12:14:42 2007 from 192.168.1.6
这样就可以了,里面偶尔涉及到权限问题。一般 ./ssh 文件夹是 755 authorized_keys 600 或者 644
脚本 diskcheck.sh 如下
 
CODE#!/bin/bash           
FSMAX="80"
remote_user=‘root’  #####
完全可以不用 root
remote_ip=(192.168.1.5 192.168.1.6 192.168.1.7 192.168.1.8 192.168.1.9 192.168.1.10 192.168.1.11 192.168.1.12 192.168.1.13 192.168.1.14  )  ###
这里填写你要监控的主机 ip
ip_num=‘0′
while [ "$ip_num" -le "$(expr ${#remote_ip[@]} – 1)" ]
do      
        read_num=‘1′      
        ssh "$remote_user"@"${remote_ip[$ip_num]}" df -h > /tmp/diskcheck_tmp
        grep ‘^/dev/*’ /tmp/diskcheck_tmp|awk ‘{print $5}’|sed ’s/%//g’ > /tmp/diskcheck_num_tmp        
        while [ "$read_num" -le $(wc -l < /tmp/diskcheck_num_tmp) ]      
        do
                size=$(sed -n "$read_num"‘p’ /tmp/diskcheck_num_tmp)              
                if [ "$size" -gt "$FSMAX" ];then              
                        $(grep ‘^/dev/*’ /tmp/diskcheck_tmp|sed -n $read_num‘p’ > /tmp/disk_check_mail)
                        $(echo ${remote_ip[$ip_num]} >> /tmp/disk_check_mail)              
                         $(mail -s "diskcheck_alert" admin < /tmp/disk_check_mail)              
                fi      
                read_num=$(expr $read_num + 1)      
        done      
        ip_num=$(expr $ip_num + 1)
done
脚本每十分钟执行一次,在 cron 表中加入
0/10 * * * * /home/jiayi/diskcheck.sh 2>&1
7.
比如, ext2 文件系统, 如果异常死机,开机如何修复文件系统?
如果异常关机,比如断电,通知机房的人开机之后,我们需要远程修复、检查文件系统。
除了 / 分区之外, 其他的分区:
umount /home
fsck -y /home
/
分区需要开机之后, 由机房的人来扫描
随后我们再登录并扫描 /home 等其他分区
8.
如何查看一个进程所使用的文件句柄?
看这里面 /proc/ 进程号 /fd/ 的个数就行了
简单的比如如何查看 apache 进程数
[root@localhost fd]# ps -ef | grep httpd | wc -l
1
9.
如何统计 apache 的每秒访问数?
tail access_log  | awk ‘{print $1,$4}’
[root@localhost logs] grep -c $(date -d ‘3 second ago’ +%T) access_log
10./proc/sys
子目录的作用
该子目录的作用是报告各种不同的内核参数,并让您能交互地更改其中的某些。与 /proc 中所有其他文件不同,该目录中的某些文件可以写入,不过这仅针对 root
其中的目录以及文件的详细列表将占据过多的篇幅,而且该目录的内容是依赖于系统的,而大部分的文件也仅仅对某些特殊的应用程序有用。然而,以下是该子目录的两个最常见的用途:
允许路由:即便是 Mandrakelinux 默认的内核也是允许路由的,您必需显式允许它这么做。为此,您只要以 root 身份键入以下命令:
$ echo 1 >/proc/sys/net/ipv4/ip_forward
 
如果您要禁用路由,请将上述命令中的 1 改为 0
阻止 IP 欺骗: IP 欺骗会让人认为某个来自于外部的某个数据包是来自于它到达的那个接口。这一技术常被骇客 (cracker) 所使用。您可以让内核阻止这种入侵。请键入:
$ echo 1 >/proc/sys/net/ipv4/conf/all/rp_filter
 
这样,这种攻击就不再可能了。
这些改变仅当系统运行时有效。在系统重新启动之后,它们会改会它们的默认值。要在启动时就改动这些值,您可以将您在 shell 提示符后键入的命令添加到 /etc/rc.d/rc.local 中以免每次都键入它们。另一个方法是修改
/etc/sysctl.conf
11.
将一个文本的奇数行和偶数行合并,第 2 行和第 3 行合并
[root@localhost bin]# cat filename
48      Oct     3bc1997 lpas    68.00   lvx2a   138
484     Jan     380sdf1 usp     78.00   deiv    344
483     nov     7pl1998 usp     37.00   kvm9d   644
320     aug     der9393 psh     83.00   wiel    293
231     jul     sdf9dsf sdfs    99.00   werl    223
230     nov     19dfd9d abd     87.00   sdiv    230
219     sept    5ap1996 usp     65.00   lvx2c   189
216     Sept    3zl1998 usp     86.00   kvm9e   234
[root@localhost bin]# sed ‘$!N;s/n/  /g’ filename
48      Oct     3bc1997 lpas    68.00   lvx2a   138  484     Jan     380sdf1 usp     78.00   deiv    344
483     nov     7pl1998 usp     37.00   kvm9d   644  320     aug     der9393 psh     83.00   wiel    293
231     jul     sdf9dsf sdfs    99.00   werl    223  230     nov     19dfd9d abd     87.00   sdiv    230
219     sept    5ap1996 usp     65.00   lvx2c   189  216     Sept    3zl1998 usp     86.00   kvm9e   234
[root@localhost bin]# sed -n -e 2p -e 3p filename|sed ‘$!N;s/n/ /’
484     Jan     380sdf1 usp     78.00   deiv    344 483     nov     7pl1998 usp     37.00   kvm9d   644
12.read
命令 5 秒后自动退出
[root@localhost bin]# read -t5
13.
自动 ftp 上传
CODE#!/bin/sh
ftp -n<
$0  $?   $!  $$   
就是这个符号看看你能知道这几个系统变量的意义,
变量是随系统运行而变化的,灵活使这些变量可简化我们的操作和更好地控制 bash shell 的行为。
$#
脚本的参数个数
$*
以一个单字符串显示所有向脚本传递的参数。与位置变量不同,此选项参数可超过 9
$$
脚本运行的当前进程 ID
$!
后台运行的最后一个进程的进程 ID
$@
$* 相同,但是使用时加引号,并在引号中返回每个参数
$-
显示 shell 使用的当前选项,与 set 命令功能相同
$?
显示最后命令的退出状态。 0 表示没有错误,其他任何值表明有错误。
$0
脚本名称
$1..$9
N 个参数
=====================================================
1.
怎样将当地 80 端口的哀求转发到 8080 端口 , 时下主机 IP 192.168.16.1, 此中当地网卡 eth0:
答:
#iptables -t nat -A PREROUTING -d 192.168.16.1 -p tcp –dport 80 -j DNAT –to 192.168.16.1:8080
或:
#iptables -t nat -A PREROUTING -i eth0 -d 192.168.16.1 -p tcp -m tcp –dport 80 -j REDIRECT –to-ports 8080
2.
啥子是 NAT, 常见分为那几种, DNAT SNAT 有啥子差别,应用可作例子的事有那一些?
3.
包过淋防火墙与代办别人代理应用防火墙有啥子区分,能枚举几种响应的产物吗?
4.iptables
是否撑持 time 时间控制用户举动,若有请开具具体操作步调
5.
说出你懂得的几种 linux/unix 刊行版本
6.
列出 linux 常见打包工具并写响应解压缩参量 ( 至少三种 )
7.
规划每礼拜日早 8 点办事器按时重启 , 怎样实现?
8.
列出作为完备邮件系统的 software, 至少二类
9
,当用户在浏览器当中输入 1 个网站,说说计较机对 dns 解释颠末那一些流程?注:本机跟当地 dns 尚无缓存。
答: a. 用户输入网址到浏览器
b.
浏览器拍发 DNS 哀求信息
c.
计较机起首查询本机 HOST 文件,看是否存在,存在直接归回成果,不存在,接续下一步
d.
计较机按照当地 DNS 的挨次,向正当 dns 办事器查询 IP 成果,
e.
正当 dns 归回 dns 成果给当地 dns ,当地 dns 并缓存本成果,直至 TTL 过期,才再次查询此成果
f.
归回 IP 成果给浏览器
g.
浏览器按照 IP 信息,获取页面
10
,我们都懂得, dns 既采用了 tcp 和谈,又采用了 udp 和谈,啥子时候采用 tcp 和谈?啥子时候采用 udp 和谈?为啥子要恁地预设?
答:这个题需要理解的东西比力的多,分一下几个方面
a
,从数值包巨细上分: UDP 的最大包长度是 65507 个字节,响应 dns 查询的时候数值包长度超过 51 二个字节,而归回的只要前 51 二个字节,这
时名儿解释器通常使用 TCP 从发本来的哀求。
b
,从和谈本身来分 :大部门的环境下使用 UDP 和谈,各人都懂得 UDP 和谈是一种靠不住的和谈, dns 不像其它的使用 UDP Internet 应用 (
如: TFTP BOOTP SNMP ) ,大部门集中在局域网, dns 查询和响应需要颠末广域网,分组丢掉和来回时间的不确定性在广域网比局域网上更大
,这就要求 dns 客户端需要好的重传和超时算法,这时使用 TCP
11
1 EXT3 的文件分区,当使用 touch test.file 号令创立 1 个新文件时报错,报错的信息是提醒磁盘已经满,可是采用 df -h 号令查看磁盘大
钟头,只使用了, 60% 的磁盘空间,为啥子会呈现这个环境,说说你的理由。
答:两种环境,一种是磁盘配额需要别人解答的题目,别的一种就是 EXT3 文件系统的预设不舒服合许多小文件跟大文件的一种文件格局,呈现许多小文件时,
容易导致 inode 耗尽了。
12
,我们都懂得 FTP 和谈有两种事情标准样式,说说它们的梗概的 1 个事情流程?
FTP
两种事情标准样式:主动标准样式( Active FTP )和不主动标准样式( Passive FTP
在主动标准样式下, FTP 客户端 RAND 开启 1 个大于 1024 的端口 N 向办事器的 21 号端口倡议连接,然后开放 N+1 号端口进行监听,并向办事器拍发 PORT
N+1
号令。
办事器接收到号令后,会用其当地的 FTP 数值端口(一般为 20 )来连接客户端指定的端口 N+1 ,进行数值传道输送。
在不主动标准样式下, FTP 客户端 RAND 开启 1 个大于 1024 的端口 N 向办事器的 21 号端口倡议连接,同时会开启 N+1 号端口。然后向办事器送出 PASV 号令,
报信办事器自己处于不主动标准样式。
办事器收到号令后,会开放 1 个大于 1024 的端口 P 进行监听,然后用 PORT P 号令报信客户端,自己的数值端口是 P 。客户端收到号令后,融会贯通过
N+1
号端口连接手事器的端口 P ,然后在两个端口之间进行数值传道输送。
总的来讲,主动标准样式的 FTP 是指办事器主动连接客户端的数值端口,不主动标准样式的 FTP 是指办事器不主动地等待客户端连接自己的数值端口。
不主动标准样式的 FTP 通常用在处于防火墙之后的 FTP 客户访问外界 FTp 办事器的环境,由于在这种环境下,防火墙通常配备布置为不许可外界访问防火墙之
后主机,而只许可由防火墙之后的主机倡议的连接哀求通过。
是以,在这种环境下不克不及使用主动标准样式的 FTP 传道输送,而不主动标准样式的 FTP 可以良好的事情。
13.
编写个 shell 剧本将时下目次下大于 10K 的文件转移到 /tmp 目次下
  1. #/bin/sh
  2. #Programm :
  3. # Using for move currently directory to /tmp
  4. for FileName in `ls -l |awk ‘$5>10240 {print $9}’`
  5. do
  6. mv $FileName /tmp
  7. done
  8. ls -al  /tmp
  9. echo “Done! “
复制代码
14.apache
有几种事情标准样式,别离先容下其独特之处,并申明啥子环境下采用差别的事情标准样式?
apache
首要有两种事情标准样式: prefork(apache 的默许安装标准样式 ) worker( 可以在编译的时候加参量 –with-mpm-worker 选择事情标准样式 )
prefork
的独特之处是: ( 预派生 )
1.
这种标准样式可以没必要在哀求到来时再产生新的进程,从而减小了系统开消
2.
可以防止不测的内存走漏
3.
在办事器负载降落的时候会自动削减子进程数( prefork 的具体道理可以看我的博客别的一篇文章 apache 的机能优化)
worker
的独特之处是:撑持混合的多线程多进程的多路处理模块
要是对 1 个高流量的 HTTP 办事器, worker MPM 1 个比力好的选择,由于 worker MPM 占用的内存要比 prefork 要小。
15.
名词解释 HDLC,VTP,OSPF,RIP,DDOS,system V,GNU,netscreen,ssh,smartd,apache,WAIT_TIME 等等
16.
编写 shell 剧本获取本机的收集地址。比如:本机的 ip 地址是: 192.168.100.2/255.255.255.0 ,那末它的收集地址是
192.168.100.1/255.255.255.0
要领一:
  1. #!/bin/bash
  2. #T
你好 s script print ip and network
  3. file=”/etc/sysconfig/network-scripts/ifcfg-eth0″
  4. if [ -f $file ] ;then
  5. IP=`grep “IPADDR” $file|awk -F”=” ‘{ print $2 }’`
  6. MASK=`grep “NETMASK” $file|awk -F”=” ‘{ print $2 }’`
  7. echo “$IP/$MASK”
  8. exit 1
  9. fi
复制代码
要领二:
  1. #!/bin/bash
  2. #T
你好 s programm will printf ip/network
  3. #
  4. IP=`ifconfig eth0 |grep ‘inet ‘ |sed ’s/^.*addr://g’|sed ’s/  Bcast.*$//g’`
  5. NETMASK=`ifconfig eth0 |grep ‘inet ‘|sed ’s/^.*Mask://g’`
  6. echo “$IP/$NETMASK”
  7. exit
复制代码
17.
在号令行下发一邮件,发件人: [email protected], 收信人: [email protected]
二简述题:
1.linux
下怎样改 IP, 主机名, DNS
2.linux
下怎样添加路由
3.
简述 linux 下编译内核的意义与步调
4.
简述 Linux 开始工作历程
5.
简述 DDOS 进犯的道理
6.
简述 Tcp 三次握手的历程
7.
简述 VPN ,常见有哪几种?
8.
三:预设题:
1.
系统预设
请考虑以下系统的预设 . 您可以翻阅资料,查询不论什么您有利的资料、指南等。
您有的资源:
8
台安装 Linux (2.6 内核 ) 的双网卡 PC 办事器和相干开源 software ,互换机
Apache 2.2.x
Tomcat 5.5.X
数值库系统
至多 8 Internet IP 地址 , 请您预设 1 个系统:
一、使用双 apache web server 前端;
2
、采用 AJP 连接后段的3台 Tomcat 应用办事器,这些个 tomcat 被配备布置成 cluster, 是以需要考虑 apache 对后端的分配, 分配采用完全均衡的要领
; 配备布置使用 cookie 来实现 session stickness;
三、1台数值库办事器只有 tomcat 才需要连接,也不需要对 Internet 供给办事。
四、考虑系统的安全性和维护方便性;
5
、通过 rewrite 规则配备布置把下属 URL 规则改写成友善的 URL
http://server/webapp/getinfo?id=XXXX&name=YYYY –> http://server/getinfo/YYYY/XXXX
您需要提交处理
一、办事器规划,包孕:
* 收集布局图
* 每台机器的 IP 地址分配
* 每台机器上运行的要害 software
* 您从安全性和维护性方面的考虑
2
Apache 的以下配备布置文件给我们:
*  extra/http-proxy-ajp.conf
*  extra/http-rewrite.conf
2.
你可以采纳不论什么装备和差别操作系统办事器预设对两台 WWW 办事器和两台 FTP 办事器做负载均衡,用收集拓扑图暗示并加以申明!(要领越多越好)
 这个面试已经颠着末快 1 个月了,前段时间没有发上来,今日稍为打叠整顿了以下发上来了。本来是想写感想那,可是自小学起头语文都欠好。也不懂得从那里写起。呵呵!
 
  这家公司挺大的,听旁人说和 sina1 个级别的。具体的就在这搭不说出来了。我从哪内里试出来之后我就想这是面试的 SA ,仿佛不是项目司理吧,外企就是不同样啊!
 
  还有就是他在问了需要别人解答的题目之后,我答完之后就接着下 1 个,中心没有不论什么啥子其它的话,脸上也没有心情。面试完之后完回抵家里靠自己的影象记下了
面试中的 16 道面试题。发给伴侣看看,他们有的说变态,有的说这仿佛不是 SA 面试题吧。
  ===================================================
几道 linux c 的面试题
如何获知系统 C 库版本,如何获知系统 C 编译器版本,如何动态获知运行环境的 C 编译器版本
strip
是干什么的,已经被 strip 过的动态库,是否仍然能够查看其符号信息,如何查看
如果一个程序在运行过程中崩溃了,那么该如何进行调试,如果没有源代码呢,如果没有调试工具( debu
  汗 …… 照旧自己的能力不行啊。
一道有难度的面试题。
写一个 Bash 脚本执行以下命令:
Merge [-i -o -t time] sourcedirectory1 sourcedirectory2 destinationdirectory
通过各选项 , sourcedirectory1  sourcedirectory2 复制并且合并到一个新的目录 destinationdirectory , 源目录内容不改变。这三个选项要实现:默认情况 merge
一个联合操作,即一个文件只要存在于源目录中的任何一个中则它就应该包含在新目录中。如果用 -i 选项,那么 merger 是一个交集运算,即只有文件都存在于源目录才能包含
在新目录中。当一个文件存在于两个源目录,默认情况下,该文件的最新版本被复制。如果使用 -O 选项,则该文件的旧版本应该复制到新目录。最后 -t 选项 , 用一个时间变量作
为参数值 , 如果执行此选项,文件将被复制到已经被创建或者超过最近特定时间修改过的目标目录中。时间参数的选项应指定为实数,表示在过去的设置时间截止的天数。
百度面试题整理 ——linux 内核部分(转载)
1.
高端内存在线性地址中如何被映射,
内核可以访问所有的物理页,也就是说内核页面的映射应该囊括所有的物理内存
区,而线性地址映射的情况是内核映射 1G 大小的空间,另外 3G 大小的空间为用户地址空间。如果物理内存的大小大于 1G 内核如何映射呢?
   
实际上, 内核映射空间 也达不到 1G 还得留点线性空间给 内核动态映射空间 。因此, Linux 规定 内核直接映射空间 最多映射 896M 物理内存。那么如何完成映射呢,
大家可以去看 linux 内核的书,我的描述比较浅薄,所以部分转载,部分自己写:
(强调一下,以下内容大部分为转载)
   
对于高端内存,可以通过 alloc_page() 或者其它函数获得对应的 page ,但是要想访问实际物理内存,还得把 page 转为线性地址才行,也就是说,我们需要为高端内存
对应的 page 找一个线性空间,这个过程称为高端内存映射。线性地址空间 PAGE_OFFSET + 896M 4G 的最后 128M 线性地址   <== 映射 ==>  896M 以上的物理页框,
非直接映射。有 3 种方法:非连续内存区映射,永久内核映射,临时内核映射(固定映射) PAGE_OFFSET 开始的线性地址区域为: PAGE_OFFSET(3G)| 物理内存映射
 --8M-- vmallot
--4K-- vmallot --8K-- 永久内核映射( 4M -- 临时内核映射(固定映射 4M |4G 
1
、映射到 内核动态映射空间
这种方式很简单,因为通过 vmalloc() ,在 内核动态映射空间 申请内存的时候,就可能从高端内存获得页面(参看 vmalloc 的实现),因此说高端内存有可能映射到 内核动态映射空间 中。
2
、永久内核映射
如果是通过 alloc_page() 获得了高端内存对应的 page ,如何给它找个线性空间?内核专门为此留出一块线性空间,从 PKMAP_BASE FIXADDR_START ,用于映射高端内存。
2.4 内核上,这个地址范围是 4G-8M 4G-4M 之间。这个空间起叫 内核永久映射空间 或者 永久内核映射空间
这个空间和其它空间使用同样的页目录表,对于内核来说,就是 swapper_pg_dir ,对普通进程来说,通过 CR3 寄存器指向。通常情况下,这个空间是 4M 大小,因此仅仅需要一个页表即可,
内核通过来 pkmap_page_table 寻找这个页表 . 通过 kmap() 可以把一个 page 映射到这个空间来由于这个空间是 4M 大小,最多能同时映射 1024 page 。因此,对于不使用的的 page
及应该时从这个空间释放掉(也就是解除映射关系),通过 kunmap() ,可以把一个 page 对应的线性地址从这个空间释放出来。
3
、临时映射
内核在 FIXADDR_START FIXADDR_TOP 之间保留了一些线性空间用于特殊需求。这个空间称为 固定映射空间 在这个空间中,有一部分用于高端内存的临时映射。
这块空间具有如下特点:
1
  每个 CPU 占用一块空间
2
  在每个 CPU 占用的那块空间中,又分为多个小空间,每个小空间大小是 1 page ,每个小空间用于一个目的,这些目的定义在 kmap_types.h 中的 km_type 中。
 
当要进行一次临时映射的时候,需要指定映射的目的,根据映射目的,可以找到对应的小空间,然后把这个空间的地址作为映射地址。这意味着一次临时映射会导致以前的映射被覆盖。
    
 ----------------------------------------------------------------------------
linux c/
网络 / 网络编程面试题收集
1
connect 方法会阻塞,请问有什么方法可以避免其长时间阻塞?
: 最通常的方法最有效的是加定时器;也可以采用非阻塞模式。
2
、网络中,如果客户端突然掉线或者重启,服务器端怎么样才能立刻知道?
: 若客户端掉线或者重新启动,服务器端会收到复位信号,每一种 tcp/ip 得实现不一样,控制机制也不一样。
3.
在子网 /> :
:
30
表示的是网络号 (network number) 30 位,剩下 2 位中 11 是广播 (broadcast) 地址, 00 multicast 地址,只有 01 10 可以作为 host address
:
/>
代表的子网的网络号是 30 位,即网络号是 &
=
,此子网的地址空间是 2 位,即可以有 4 个地址: ,
, ,
。第一个地址的主机号 (host
number/id)
0 ,而主机号 0 代表的是 multicast 地址。最后一个地址的最后两位是 11 ,主机号每一位都为 1 代表的是广播
(broadcast)
地址。所以只有中间两个地址可以给 host 使用。其实那个问题本身不准确,广播或 multicast 地止也是可以使用的地址,所以
回答 4 也应该正确,当然问的人也可能是想要你回答 2 。我个人觉得最好的回答是一个广播地址,一个 multicast 地址, 2 unicast 地址。
是什么?有什么用处,通常那些工具会用到它?( ping? traceroute? ifconfig? netstat?
:
:TTL Time To Live ,一般是 hup count ,每经过一个路由就会被减去一,如果它变成 0 ,包会被丢掉。它的主要目的是防止包在有回路的网络上死转,浪费网络资源。 ping traceroute 用到它。
:
TTL
Time To Live ,目前是 hup
count
,当包每经过一个路由器它就会被减去一,如果它变成 0 ,路由器就会把包丢掉。 IP 网络往往带有环 (loop) ,比如子网 A 和子网 B 有两个路由器
相连,它就是一个 loop TTL 的主要目的是防止包在有回路的网络上死转,因为包的 TTL 最终后变成 0 而使得此包从网上消失 ( 此时往往路由器会送一个
ICMP
包回来, traceroute 就是根据这个做的 ) ping 会送包出去,所以里面有它,但是 ping 不一定非要不可它。 traceroute 则是
完全因为有它才能成的。 ifconfig 是用来配置网卡的, netstat -rn 是用来列路由表的,所以都用不着它
5.
路由表示做什么用的?在 linux 环境中怎么来配置一条默认路由?
:
: 路由表是用来决定如何将包从一个子网传送到另一个子网的,换局话说就是用来决定从一个网卡接收到的包应该送的哪一张网卡上的。在 Linux 上可以用 “route add default gw ” 来配置一条默认路由。
:
路由表是用来决定如何将包从一个子网传送到另一个子网的,换局话说就是用来决定从一个网卡接收到的包应该送的哪一张网卡上的。路由表的每一行至少有目标网
络号、 netmask 、到这个子网应该使用的网卡。当路由器从一个网卡接收到一个包时,它扫描路由表的每一行,用里面的 netmask 和包里的目标 IP
址做并逻辑运算 (&) 找出目标网络号,如果此网络号和这一行里的网络号相同就将这条路由保留下来做为备用路由,如果已经有备用路由了就在这两条路
由里将网络号最长的留下来,另一条丢掉,如此接着扫描下一行直到结束。如果扫描结束任没有找到任何路由,就用默认路由。确定路由后,直接将包送到对应的网
卡上去。在具体的实现中,路由表可能包含更多的信息为选路由算法的细节所用。题外话:路由算法其实效率很差,而且不 scalable ,解决办法是使用 IP
交换机,比如 MPLS
Linux 上可以用 “route add default gw ” 来配置一条默认路由。
6.
在网络中有两台主机 A B ,并通过路由器和其他交换设备连接起来,已经确认物理连接正确无误,怎么来测试这两台机器是否连通?如果不通,怎么来判断故障点?怎么排除故障?
: 测试这两台机器是否连通:从一台机器 ping 另一台机器
    
如果 ping 不通,用 traceroute 可以确定是哪个路由器不能连通,然后再找问题是在交换设备 /hup/cable 等。
7.
网络编程中设计并发服务器,使用多进程 多线程 ,请问有什么区别?
答案一 :
1
,进程:子进程是父进程的复制品。子进程获得父进程数据空间、堆和栈的复制品。
2
,线程:相对与进程而言,线程是一个更加接近与执行体的概念,它可以与同进程的其他线程共享数据,但拥有自己的栈空间,拥有独立的执行序列。
两者都可以提高程序的并发度,提高程序运行效率和响应时间。
线程和进程在使用上各有优缺点:线程执行开销小,但不利于资源管理和保护;而进程正相反。同时,线程适合于在 SMP 机器上运行,而进程则可以跨机器迁移。
答案二 :
根本区别就一点:用多进程每个进程有自己的地址空间 (address space) ,线程则共享地址空间。所有其它区别都是由此而来的:
1
。速度:线程产生的速度快,线程间的通讯快、切换快等,因为他们在同一个地址空间内。
2
。资源利用率:线程的资源利用率比较好也是因为他们在同一个地址空间内。
----------------------------------------
题目 1 很简单,某 mysql 数据库服务器 A ,出现 mysql 链接过多,导致前端 web 服务器无法打开数据库连接,现在,由你来解决这个问题。
题目 1 之问题 1 :你会以怎样的步骤来处理这个事情。请注意,步骤
题目 1 之问题 2 :如何分析这一问题,共有几种可能性,每种可能性的分析方式,判别标准是什么。
题目 1 之问题 3 :针对不同可能性,给出尽可能完整的解决途径。
不要告诉我您会修改 mysql 链接参数,如果您只想到这一条,不要来信了。
题目 2 linux 服务器平时负载很轻, cpu 10%-20% 之间,但是每周都会有几天在不定时间突然跃升到 100% ,然后导致该服务器拒绝一切响应(包括 ssh 链接在内),无奈之下只能电话通过机房重启。
现在,负载飙升时无法连接 ssh ,暂时无法确认负载飙升原因,请给出你想到的处理步骤和解决思路。
不要告诉我您会设置一个 24 小时短信提醒,那是最基本基本的了。
题目 3 :某 linux 服务器一直负载很轻,但是会突然拒绝正常的服务,此时仍然可以登录,仍然看到在线很轻的负载,请告诉我你分析排查的思路。
    
         
本站所有资源均出自网络,所有资源均为收集整理而来,仅供学习和研究使用。如有侵犯你的版权,请指出,本站将立即改正。本站不保证提供的资源的准确性、安全性和完整性。
   
3
。同步问题:线程使用公共变量 / 内存时需要使用同步机制还是因为他们在同一个地址空间内。
----------------------------------------------
1
、通过 SSH ,使用 Public-Key Infrastructure (PKI) 认证,怎么配置登陆 Linux 服务器?
2
、在 vi 中,用命令模式,替换多个移动的手机号码为 13800138000
3
、查看当前运行的 apache 所使用的多道处理模块( MPM )?
4
、显示 file 文件,并去除 file 中的过行符
5
、编写一个脚本,轮询 nginx 产生的日志 , 要求 1 个小时轮询一次,保留 72 个日志文件
6
&& || 的差别?
7
、简述通常在 Linux 上实现 VPN 服务器的方法?
8
、怎么查看当前运行的 MySQL 的编译参数?
9
、用 ethtool 命令,手动更改 eth0 网卡为全双工、 1000M 的模式
10
、怎么检查 MySQL replication 是否正常?
11
、在 mysql a 数据库中,添加 b 用户,并且只允许 b 用户从 1.2.3 .4 来源访问,只赋给 b 用户只读权限
12
、用 ifconfig eth0 网卡绑定另外一个 IP 地址
13
、描述设置 MySQL 主从 replication 的设置过程
14
、在 apache 的某个域名 www.abc.com 的根目录下,禁止用户访问 gif 图片
15
、请为服务器编写让内网通讯通过 eth1 网卡的静态路由?假设内网网关是 10.0.0.1 ,并且需要机器重启路由保持
    
---------------------------------
Linux
系统管理员面试题
系统设计
请考虑以下系统的设计 . 您可以翻阅资料,查询任何您有帮助的资料、指南等。
您有的资源:
1、8台安装 Linux (2.6 内核 ) 的双网卡 PC 服务器以及相关开源软件,交换机
2、 Apache 2.2.x
3、 Tomcat 5.5.X
4、数据库系统
5
最多 8 Internet IP 地址
请您设计一个系统:
1、使用双 apache web server 前端;
2、采用 AJP 连接后段的3台 Tomcat 应用服务器,这些 tomcat 被配置成 cluster, 因此需要考虑 apache 对后端的分配, 分配采用完全平衡的方法; 配置使用 cookie 来实现 session stickness;
3、1台数据库服务器只有 tomcat 才需要连接,也不需要对 Internet 提供服务。
4、考虑系统的安全性和维护方便性;
5、通过 rewrite 规则配置把下属 URL 规则改写成友好的 URL
http://server/webapp/getinfo?id=XXXX&name=YYYY –> http://server/getinfo/YYYY/XXXX
您需要提交
1
、服务器规划,包括:
* 网络结构图
* 每台机器的 IP 地址分配
* 每台机器上运行的关键软件
* 您从安全性和维护性方面的考虑
2
Apache 的以下配置文件给我们:
*  extra/http-proxy-ajp.conf
*  extra/http-rewrite.conf
2
你可以采取任何设备和不同操作系统服务器设计对两台 WWW 服务器和两台 FTP 服务器做负载均衡,用网络拓扑图表示并加以说明!(方法越多越好)
第一种方法 : DNS 轮巡
www1 IN A 192.168.1.1
www2 IN A 192.168.1.2
www3 IN A 192.168.1.3
ftp1 IN A 192.1.1.4
ftp2 IN A 192.1.1.5
ftp3 IN A 192.1.1.6
www IN CNAME www1
www IN CNAME www2
www IN CNAME www3
ftp IN CNAME ftp1
ftp IN CNAME ftp2
ftp IN CNAME ftp3
3
名词解释
HDLC,VTP,OSPF,RIP,DDOS,system V,GNU,netscreen,ssh,smartd,apache,WAIT_TIME
等等
简述 linux 下编译内核的意义与步骤
linux
下添加一条默认路由到 xxx.xxx.xxx.xxx
简述 DDOS 攻击的原理
TIME_WAIT
参数的意义
Tcp
握手的过程
Linux
启动过程
-------------------------------------------
LINUX
的启动过程,还写出来让你选择。(达人的飘过了。。)
原题大概是这样的
BIOS
自检, init,rcX.d,inittab,rc.sysinit,GRUB/LILO,login
问启动顺序是如何,大概描述一下各个部分是作用。
做这题的还是蛮有信心的,之前看过几遍,描述部分大概写了下,
过程大概是这样的:
1
,首先当然是 BIOS 自检了,不用问啊计了(当电脑开机的时候,电脑会进入 BIOS BIOS 的工作主要是侦测电脑的周边配套设备是否工作正常,如 CPU 的类型、速度、缓存等)
2
GRUB/LILO 都是引导操作系统的小程序, GRUB /ETC/GRUB/BRUB.CONFIG 下有详细的说明 , 在多系统下 , 这个引导器挺有用的 ,LILO LINUX LOAD 的缩写 , 配置文件在 /etc/lilo.conf
也可以作为一个多系统的引导程序
3,init,
加载完成内核之后, Kernel 会启动 init 程序 , 也是第一个程序 ,PID 永远是 1
4,inittab,
在执行 INIT 时,会调用 /etc/inittab 程序,读取配置文件的配置,其中包括系统的 runlevel
5,rc.sysinit,rcX.d
执行 inittab 时,同样会调用 rc.sysinit (在 inittab 在有 si::sysinit:/etc/rc.d/rc.sysinit
)来初始化系统环境;在决定了运行级别的时候或者返回到 INIT 的时候,系统会调用其它很多 rc 脚本。
6,
最后当然是 LOGIN 了。。选择你是超级用户(#)还是普通用户( $ )了 ....
网上很多这方面的资料,多详细的都有。
还有一道选择题:是问 inittab 这个文件有什么作用的。
与上面的重复了,会做上面的这个选择题当然是小菜一碟了,
就是决定加载系统的 runlevel 了。。
--------------------------------------
     
一、人文与智力题(选答 4 2 ,多答尤佳)

1 、分别安排下列动词(不为、不取、与、举、亲)到下文格言中的?处(每处一词) 居,视其所? 富,视其所? 达,视其所? 穷,视其所? 贫,视其所?

2 Find the picture that follows logically from one of the six below. ( 图片略,行政能力测试题 )

3 There are fifty red balls, fifty blue balls and two empty bottles, how to put all the balls into two bottles? It can make you have the highest probability to get a red ball when you choose a ball from any of the two bottles randomly.

4 25 匹马,每次最多可以跑 5 匹马,请问最少跑几次可以确认出跑的最快的 3 匹马? 二、网络及 Linux 系统基础知识(必答) 1 、如何查看服务器的 TCP/IP 连接状况?写出你知道的连接状态及其含义,如何一次统计出各种状态的连接数? 2 、网络中有 2 台机器     A IP 192.168.10.7    Gateway:192.168.10.1     B IP 192.168.11.8    Gateway:192.168.11.1     2 IP 在子网掩码都是 255.255.255.0 的时候是否可以通讯,子网掩码改成多少可以通讯?不能通讯的情况下如何配置路由可以让它们通讯? 3 、请描述 DNS 的原理 4 、通过一台没有浏览器的机器往判定另一台服务器是否存在 WEB 服务有哪些方法?

5 、检查网络状况的系统命令都有哪些?

6 、请选出下列哪些都是 Web Server ,哪些是 Application Server      a. Resin               b. Apache      c.Tomcat             d. nginx      e.Microsoft IIS      f.squid

 

三、案例实战(选答   6 3 ,多答尤佳)

1 、有 10 台服务器,其中 9 台是在线服务机(处理能力 500/s ), 1 台为备用机(处理能力 1200/s ),假如您是治理员,您以为现有的备用机可 以解决什么机关报故障?请您设计一个程序逻辑尽可能的在部分在线服务器故障的时候,流量会自动转移到备用机,并且不造成二次故障,在故障恢复后将备用机的 流量切回,您会怎么实现(写实现逻辑即可)?

2 、在一台服务器配置 a.163.com b.163.com 2 个域名的虚拟主机的时候,用 http 和用 https 实现的时候有何差别?

3 、先容一下您所知道的减少和加速 WEB 服务器请求的方法

4 、在办公室同事忽然告诉您,您负责的系统页面打不开,请简述排查故障的思路。

5 、编写程序天生一个 10 个节点的单向链表,然后开释之。其中节点数据类型为:   struct list{        int value;        struct list *next;    };    天生链表时 value 的值可任意指定。

6 、请写出以下程序的执行结果:    #include    struct s{        void (*f1)(int);        void (*f2)(int *);        int i;    };    void func1(int i){       i++;   }   void func2(int *i){      (*i)++;  } int main(){     struct s test;     int i = 1;     test.i = i;     test.f1 = func1;     test.f1(test.i);     printf("%d/n", test.i);     test.f2 = func2;     test.f2(&i);     printf("%d/n", i);     return 1; } -- 或者当你的孩子变坏时你严厉地惩罚他,或者他长大后将成为罪犯。你的孩子已经学坏了,因此,你必须严厉地惩罚他。 除了哪项,以下诸项都能构成对上述论证的一个疑难?
1.
什么是你所说的 学坏 的确切含义?
2.
你的第一个前提是否过于简单化了?
3.
你的第二个前提的断定有什么事实根据?
4.
你的孩子是怎么学坏的?
Question 2. (
单选 )
  
针对作弊屡禁不止的现象,某学院某班承诺,只要全班同学都在承诺书上签字,那么,假如全班有一人作弊,全班同学的考试成绩都以不及格计。校方接受并实施了该班的这一承诺。结果班上还是有人作弊,但班长的考试成绩是优秀。 以下哪项是从上述断定逻辑地得出的结论?
1.
全班有人没在承诺书上签字
2.
全班没有人在承诺书上签字
3.
全班多数人没有作弊
4.
作弊的就是班长本人
Question 3. (
单选 )
  
甲城卖出的报纸比乙城多。因此、甲城的居民比乙城的居民更了解天下大事。 以下各句假如为真,都能削弱上述结论,除了:
1.
甲城发行仅限于本地新闻报道的周报
2.
甲城报摊出售的报纸的平均价格低于乙城
3.
甲城人口比乙城多
4.
乙城的很多居民在甲城工作,所以就在甲城购买报纸
Question 4. (
单选 )
  
雄性园丁鸟构筑装饰精美的巢。同一种类的不同园丁乌群建筑的巢具有不同的建筑和装饰风格。根据这一事实,研究人员认为园丁鸟的建筑风格是一种后天习得的,而不是先天遗传的特性。 以下哪项假如为真,则最有助于加强研究者的结论?
1.
通过对园丁鸟的广泛研究发现,它们的筑巢风格中的共性多于差异
2.
年轻的雄性园丁鸟在开始筑巢时是很笨拙的,很显然是花了许多年来观察年长者的巢才成为行家能手的
3.
园丁鸟只在新几内亚和澳州被发现,很显然,两地之间的园丁鸟没什么联系
4.
众所周知,一些会唱歌的鸟的演唱语调是后天习得的,而不是先天遗传的
Question 5. (
单选 )
  
在过去的 20 年中,美国黑人议员的数量增加了将近 100 %,而白人议员的数量则略有下降,这说明,在美国的权力机构中,黑人很快就可和白人拥有相等的政治权力。
以下哪项假如是真的,最有力地削弱了上述论证?
1. 20
年来,美国议员的总额保持基本不变。
2. 20
年前,白人议员的数量是黑人议员数量的近 8 倍。
3. 20
年来,黑人中的议员竞选者增加了将近 200 %,而白人中议员竞选者的数量则基本不变。
4. 20
年来,黑人参加政治竞选。仍然受到各种非凡的限制。
Question 6. (
单选 )
  
人们一直认为治理者的决策都是逐步推理,而不是凭直觉。但是最近一项研究表明,高层治理者比中、基层治理者更多地使用直觉决策,这就证实了直觉其实比精心的、有条理的推理更有效。
以上结论是建立在以下哪项假设基础之上的?
1.
有条理的、逐步的推理对于许多日常治理决策是不适用的
2.
高层治理者制定决策时,有能力凭直觉决策或者有条理、逐步分析推理决策
3.
高层治理者的决策比中、基层治理者的决策更有效
4.
高层治理者在多数情况下采用直觉决策
Question 7. (
单选 )
  
当被催眠者被告知自己是聋子后,再问他们能否听见催眠者说话时,他们回答 听不到 。一些学者试图解释这一现象,认为被催眠者的 自我 被分裂为各个零散的部分,聋了的那一部分和回答的那一部分是相互分裂的。
以下哪项质疑最能削弱以上解释?
1.
为什么回答的那一部分不答 能听到 呢?
2.
为什么观察到的事实都必须有个特定的解释呢?
3.
为什么所有被催眠者在上述情况下都做出同样的反应呢?
4.
为什么所有被催眠者的自我的分裂部分都是一样的呢?
Question 8. (
单选 )
  
去年电话机的销售额大幅度上升。为了利用这一形势,某电话公司预备扩大本公司型号的电话机生产量,同时继续从事已经家喻户晓的广告宣传工作。
以下哪项假如为真,则最有可能使得该公司采用以上计划时不能增加销售额?
1.
虽然去年生产的产品全部售出,但该公司的市场占有率是下降的。
2.
该公司预备发运给零售商的电话机的库存数去年有稍微下降。
3.
该公司的电话机是去年销售额增加的三种品牌之一。
4.
尽管零售价格有所上升,该公司的销售额去年是下降的。
Question 9. (
单选 )
  
有人向某市政府提议应该在所有新建的房屋内安装一种起火时会自动激发的洒水器。但是一位房地产开发商认为,既然 90 %的房屋着火都是被家庭成员扑灭的,所以安装室内自动洒水器对灭火意义不大。
以下哪项假如为真,则最能削弱房地产开发商的观点?
1.
大多数人都没有经过灭火技能的正规练习。
2.
住宅着火导致的大部分财产损失是因为起火时家人都不在场。
3.
在住宅内安装烟雾探测器比安装洒水器要便宜得多。
4.
该市消防队奔赴火场的时间要比全国平均时间短。
Question 10. (
单选 )
以下哪项最适合接在下段文字后面?
人们在购买一种名牌产品时,实际上是花钱买身份。他们希望通过购买名牌产品拉大旗作虎皮,抬高自己。所以,名牌产品的销售不应采用薄利多销的策略,因为:
1.
如今出手阔绰的购买者越来越少。
2.
保持销售额 * 的是保持名牌产品 独一无二 的魅力。
3.
名牌产品的购买者对产品的质量和价格同样关心。
4.
扩大市场范围有助于提高盈利。
Question 11. (
单选 )
为什么不将 N e t B I O S 用于因特网互连
1.
它是不可路由的
2.
它是不安全
3.
它是不可 *
4. a
b
Question 12. (
单选 )
计算机网络分为局域网、城域网与广域网,其划分的依据是:
1.
数据传输所使用的介质
2.
网络的作用范围
3.
网络的控制方式
4.
网络的拓扑结构
Question 13. (
单选 )
用于保存计算机输入输出数据的材料及其制品称为
1.
输入输出媒体
2.
输入输出通道
3.
输入输出接口
4.
输入输出端口
Question 14. (
单选 )
某二 * 树结点的对称序序列为 A B C D E F G ,后序序列为 B D C A F G E 。该二 * 树结点的前序序列为
1. E
G F A C D B
2. E
A C B D G F
3. E
A G C F B D
4. E
G A C D F B
Question 15. (
单选 )
某二 * 树结点的对称序序列为 A B C D E F G ,后序序列为 B D C A F G E 。该二 * 树对应的树林结点的层次次序序列为
1. E
G F A C D B
2. E
A C B D G F
3. E
A G C F B D
4. E
G A C D F B
Question 16. (
单选 )
在虚拟页式存储治理方案中 , 下面哪一部分完成将页面调入内存的工作 ?
1.
缺页中断处理
2.
页面淘汰过程
3.
工作集模型应用
4.
紧缩技术利用
Question 17. (
单选 )
对于下列文件的物理结构,哪一个只能采用顺序存取方式?
1.
顺序文件
2.
链接文件
3.
索引文件
4. Hash
文件
Question 18. (
单选 )
对一个排好序的线性表,用二分法检索表中的元素,被检索的表应当采用哪种存储表示?
1.
顺序存储
2.
链接存储
3.
散列法存储
4.
存储表示不受限制
Question 19. (
单选 )
以下哪一个不是栈的基本运算
1.
删除栈顶元素
2.
删除栈底元素
3.
判定栈是否为空
4.
将栈置为空栈
Question 20. (
单选 )
设二 * 树根结点的层次为 0 ,一棵深度 ( 高度 ) k 的满二 * 树和同样深度的完全二 * 树各有 f 个结点和 c 个结点,下列关系式不正确的是:
1. f>
c
2. c>f
3. f=2k 1-1
4. C>2k-1
Question 21. (
多选 )
Windows socket
编程中经常需要进行字节序列的转换,下列哪几个函数是将网络字节序列转换为主机字节序列
1. htons
2. ntohs
3. htonl
4. ntohl
5. WSAntohs
Question 22. (
单选 )
下面哪个协议运行在网络层
1. HTTP
2. SMTP
3. UDP
4. IP
Question 23. (
多选 )
DNS
用于完成地址查找 , 是经常使用的网络服务,从 OSI 网络模型来看,下面哪些服务与其不在同一层上
1. HTTPS
2. TCP
3. SMTP
4. PING
5. TELNET
Question 24. (
单选 )
SMTP
的主要功能是什么
1.
提供有关网络设备的治理信息
2.
在路由器接口层监控安全边界
3.
在主机间传输邮件
4.
提供端口利用信息
Question 25. (
单选 )
Internet
网络层使用的四个重要协议是
1. IP
ICMP ARP UDP
2. IP
ICMP ARP RARP
3. TCP
UDP ARP RARP
Question 26. (
多选 )
以下关于动态规划法的描述哪些是正确的
1.
将问题分解成多级或许多子问题,然后顺序求解子问题。
2.
可以确保得到最佳解
3.
前一个子问题的解为后一个子问题的求解提供有用的信息。
4.
从问题某一初始或推测值出发,一步步的攀登给定目标。
5.
尽可能快的去逼近更好的解,当达到某一步不能继续时终止。
Question 27. (
多选 )
算法的特征包括
1.
有穷性
2.
确定性
3.
输入和输出
4.
能行性或可行性
Question 28. (
单选 )
汉诺塔( Hanoi )问题中令 h n )为从 A 移动 n 个金片到 C 上所用的次数,则递归方程为
1. h
n =2hn-1
2. h
n = 2h n-1 1
3. h
n =2^n-n*h-1
4. h
n =2h*n-1
Question 29. (
单选 )
启发式搜索一般是何种算法的改进
1.
深度优先搜索
2.
广度优先搜索
3.
动态规划
4.
贪婪法
Question 30. (
单选 )
假设一棵二 * 树的后序遍历序列为 DGJHEBIFCA ,中序遍历序列为 DBGEHJACIF ,则其前序遍历序列为 ( )
1. ABCDEFGHIJ
2. ABDEGHJCFI
3. ABDEGHJFIC
4. ABDEGJHCFI
Question 31. (
单选 )
完全二 * 树共有 700 结点,该二 * 树有多少个叶子结点:
1. 349
2. 350
3. 351
4. 352 5. 353
Question 32. (
单选 )
在下列排序方法中,空间复杂性为 O(log2n) 的方法为( )。
1.
直接选择排序
2.
归并排序
3.
堆排序
4.
快速排序
5.
冒泡排序 Question 33. ( 单选 )
有六个元素 6 5 4 3 2 1 的顺序进栈,问下列哪一个不是合法的出栈序列?( ????
1. 5 4 3 6 1 2   2. 4 5 3 1 2 6
3. 4 3 5 2 1 6   4. 2 3 4 1 5 6
5. 3 4 6 5 2 1
Question 34. (
单选 )
散列函数有一个共同性质,即函数值应按()取其值域的每一个值;
1.
最大概率
2.
最小概率
3.
同等概率
4.
平均概率
Question 35. (
单选 )
下面描述中正确的为:
1.
线性表的逻辑顺序与物理顺序总是一致的。
2.
线性表的顺序存储表示优于链式存储表示。
3.
线性表若采用链式存储表示时所有结点之间的存储单元地址可连续可不连续。
4.
二维数组是其数组元素为线性表的线性表。
Question 36. (
单选 )
什么情况下必须要并行开发(多分支开发):
1.
同时开发多种功能
2.
同时开发多个版本
3.
多人同时开发
4.
多地域分布式开发
Question 37. (
单选 )
软件测试类型按开发阶段划分是:
1.
需求测试、单元测试、集成测试、验证测试
2.
单元测试、集成测试、确认测试、系统测试、验收测试
3.
单元测试、集成测试、验证测试、确认测试、验收测试
4.
调试、单元测试、集成测试、用户测试
Question 38. (
单选 )
可作为软件测试结束标志的是:
1.
使用了特定的测试用例
2.
错误强度曲线下降到预定的水平
3.
查出了预定数目的错误
4.
按照测试计划中所规定的时间进行了测试
Question 39. (
多选 )
测试设计员的职责有
1.
制定测试计划
2.
设计测试用例
3.
设计测试过程、脚本
4.
评估测试活动
Question 40. (
多选 )
以下对桩( stub )函数的描述正确的是:
1.
在单元测试中调用其它模块
2.
在单元测试中被其它模块调用
3.
在自顶向下的集成过程中尤其有效
4.
在自底向上的集成过程中尤其有效
Question 41. (
多选 )
在一台 2.4.x 内核的 linux 机器上,下列命令用于检查 ipv4 tcp 端口监听情况,哪个是对的?
1. netstat -ant|grep LISTEN
2. netstat -an |grep LIST
3. netstat -at | grep LISTEN
4. netstat -a |grep tcp|grep -i listen
5. netstat -a |grep tcp |grep -i li
Question 42. (
多选 )
RH Linux 观察系统负载状况的常用命令有:
1. top
2. vmstat
3. iostat
4. netstat
Question 43. (
单选 )
一块硬盘最多可以有()个主分区?
1. 1
2. 2
3. 3
4. 4
5. 5 Question 44. (
单选 )
php
是一门:
1.
编译语言    2. 解释语言    3. 脚本语言
Question 45. (
单选 )
某应用通过 TCP 协议从客户端连接服务器端,但是总连接不上,那么 netstat 输出的对应此应用的行的状态最有可能的是:
1. LISTEN   2. ESTABLISHED
3. TIME_WAIT  4. SYN_SEND
5. CLOSE_WAIT
Question 46. (
单选 )
进行 DeviceIoControl 时,假如驱动程序看到的输入缓冲区的地址为 0x500000, 输出缓冲区地址为 0x600000, 则此次 DeviceIoControl 的缓冲区传输机制为
1. METHOD_BUFFERED
2. METHOD_IN_DIRECT
3. METHOD_OUT_DIRECT
4. METHOD_NEITHER
Question 47. (
单选 )
IDispatch
接口主要在什么地方使用 ?
1.
用于支持 OLE 自动化 , 延时绑定对象的属性和方法 .
2.
用于支持 Windows SDK 开发
3.
方便在 IE 和脚本语言里使用 COM 对象
4.
用于支持链接点
Question 48. (
多选 )
下面 4 句对 Windows API TerminateProcess 函数的描述,请问其中有几句是对的
1.
任何线程都可以调用此函数来终止自己或另一个进程的运行
2.
只要调用过了此函数,则指定要退出的进程已经退出。
3.
只有当无法使用另一种方法来迫使进程退出时,才考虑使用此函数。
4.
用此函数退出进程,进程没有机会将自己的数据存入硬盘,也无法释放占用的内存。
Question 49. (
单选 )
API 中都需要一个 SECURITY_ATTRIBUTES 参数,多数情况下都传 NULL ,请问 NULL 是什么意思?如: HANDLE CreateThread( LPSECURITY_ATTRIBUTES lpThreadAttributes, … … );
1.
用最低安全权限创建对象
2.
用最高安全权限创建对象
3.
用注册表中设定的缺省安全权限创建对象
4.
用创建对象的用户的缺省安全属性创建对象
Question 50. (
单选 )
调用 CoCreateinstance 函数创建 COM 对象时,函数内部首先要获得以下哪个接口,才能实现 COM 对象的创建
1. IUnknown
2. IClassFactory
3. IDispatch
4.
以上三个都需要
Question 51. (
单选 )
Window98
内核使用的字符集是
1. ANSI
2. UNICODE
3. ANSI
UNICODE
4.
以上都不对
Question 52. (
单选 )
使用 Windows API 函数 CreateFile 可以打开的对象,下列哪项说法最准确?
1.
文件和目录
2.
通信设备
3.
磁盘设备
4.
以上都可以打开
Question 53. (
多选 )
于以下的代码,哪些说法是错的?

HWND hWnd = CreateWindow("#32770", pszName, WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, 0, CW_USEDEFAULT, 0, NULL, NULL, _hInstance, NULL); ShowWindow(hWnd, SW_HIDE);
1.
假如 pszName NULL ,则 CreateWindow 返回 NULL
2.
假如 _hInstance 参数是 NULL ,则 CreateWindow 一定返回 NULL
3.
假如不调用 ShowWindow 并传递 SW_HIDE ,则该窗口将显示在屏幕上
4.
2000/XP 下调用 CreateWindow 函数一定失败,必须调用 CreateWindowEx 函数
Question 54. (
单选 )
当一个进程结束运行之后 , 下列说法正确的是
1.
所有资源都会被释放
2.
未释放的系统 GDI 资源不会被释放
3.
多进程共享数据不会被释放 , : 内存映射文件 .
4.
在堆中分配的内存不会释放 .
Question 55. (
单选 )
Windows 中,下列关于堆和栈的说法中错误的是
1.
堆都是动态分配的,没有静态分配的堆 ; 栈有静态分配和动态分配 2 种分配方式。
2.
堆的生长方向是向下的,即向着内存地址减小的方向增长;栈的生长方向是向上的,即向着内存地址增加的方向增长。
3.
对堆的频繁 new/delete 会造成内存空间的不连续,从而造成大量的碎片 ; 栈则不会存在这个问题
4.
栈是由编译器自动治理;堆的释放工作由程序员控制,轻易产生内存泄露。 ------------ 网易游戏 2010 运维工程师笔试题 ~ 有印象的就是下面几个:
1.SDRAM
DDR2 DDR3…..
2.
下列哪个命令不能退出 vi 编辑器: :x,:q,:q!,:bye
3.
下列哪种协议既有 TCP 又有 UDP 的: telnet,SMTP,DNS…
4.
到相同目的地有下面几条路由,静态、 RIP OSPF ,问数据包会经过哪一条。二、填空题
1.SAN
的中文名称是 ________ NAS 的中文名称是 ___________.
2.
写出除 linux 外的三种类 Unix 系统 _______ _______ _______.
3.
假如有 3 个文档 ………… ,用一个最简单的命令将其合并为一个文档 __________.
4.
字符串的匹配, c[?]c
5.
IP地址 192.168.48.10 ,掩码为 255.255.255.128 ,其所在的子网为 __________ ,广播
地址为 ______________ ,有效的主机 IP 地址范围从 _______________ ________________.
6.
查看 TCP 连接的命令 __________.
7.
OSI 模型中, HTTP 协议工作在第 ____ 层,交换机工作在第 ____ 层。
8.
写出一些成熟的虚拟机技术 ____________________
三、简答题
1.32
位操作系统和 64 位操作系统的区别,并说明它们的优点和缺点。
2.
固态硬盘和传统硬盘有什么区别,并说明它们的优点和缺点。
3.
多核 CPU 和单核 CPU 的优点和缺点,是否所有程序在多核 CPU 上运行速度都快?为什么?
4.
给你 6 150G 硬盘,列出 RAID 排列方式,哪种方式容量最大,并解释。
5.
有一 web 服务器,某天某用户投诉上某个网站速度很慢,如果你是服务器的管理员,请问
你如何查找原因。假设服务器有任意操作系统和软件。
6.
如下图, A B C 位于同一局域网内, IP 地址、子网掩码、默认网关如图所示,有路由器
R1
R2 R3 R4 ,它们之前运行某种路由协议, S 为另一局域网内的服务器。
(
无法显示图 )
1 )如果 C ARP 病毒感染,对 A B 会有什么影响?
2 B 无法连到服务器 S ,但 A C 均能正常连接到 S ,且 B R1 连接正常,请判断故障出在什
么地方,操作系统可以是任意的。
3 )如果 R4 连到 Internet Internet 上的用户想访问服务器 S ,需要用到什么技术?并解
释此技术的原理。
四、编程题
1.
某程序每隔 5 分钟运行一次,得出一个运行结果,保存在文档中,格式为
2008-06-01 00:05:00 1120
1 )在每天的 23 56 分访问文档,将当天的运行结果保存至文档,
[
如: /…./…../20080601]
2 )统计出每天运行结果的总和。
设计一套方案,并编程来实现。
2.
运动会,(人,成绩)
保存格式为每行一个成绩,第一列为人名,第二列为成绩。如 Jim 24
1
2
3 )统计每个人的平均成绩(平均成绩 = 总分 / 参加项目总数),并按平均成绩由高到低排列。
五、推理题
1.
在太平洋一岛上住着土人,他们不喜欢外人来打扰。有一天一位探险家来到了岛上,被土人抓住,土人的祭司告诉探险家,他在临时之前有机会留下一句话,如果这句话是真的,他将被烧死,如果这句话是假的,他将被五马分尸,可怜的探险家如何才能活下来?并解释。
六、论述题
1.
以下几种情况,那些是最无法预期的?哪些是可以避免的?你会如何面对?
1 )老板把你叫进办公室,让你负责一个新项目,并提醒你接下来几个星期将会非常忙碌。
2 )一朋友给你发了一封电子邮件,介绍一个网站很有用,你花了几分钟时间去浏览网站。
3 )某客户打电话过来,要你赶紧去他们公司。
4 )老板要你在下班前完成某些任务。
5 )你必须立即放下手头工作,去买纸杯,因为发现纸杯已经用完了,而且 10 分钟后的会议会用到。
2.
你认为一个出色的游戏运营维护工程师必须具备的关键素质有哪些?并按从主到次的顺序解释。 -----------------------------------------------------

1. 查看 Linux 系统当前单个共享内存段的最大值(命令)
ipcs -m
ipcs -a
2.
用什么命令查询指定 IP 地址的服务器端口
题意应该是 nmap nbtscan 命令来扫吧。
3.crontab
中用什么命令定义某个程序执行的优先级别
nice/renice
:进程执行优先级
概念:
进程优先级:系统按进程优先级的不同分配 CPU 时间,优先级高的进程会得到更多的 CPU 使用时间,以提高速度,缩短总的执行时间。
进程优先级范围: -20 19
最高等级: -20
最低等级: 19
系统管理员有权将进程优先级设置为 -1 -20 ,而普通用户只能设置 0 19
进程运行的默认等级为 0
nice 执行的进程其默认等级为 10 (即 nice < 程序名 > ,不指定等级时)。
格式:
nice <
程序名 >
nice -<
等级 > < 程序名 >
如: ( 命令后加 & 表示以后台运行 )
vi &
优先等级 0 ,默认等级。
nice vi &
优先等级 10 ,使用 nice 执行程序时的默认等级。
nice -50 vi &
优先等级 19 - 号表示选项,等级 50 超过最低等级 19 ,因此系统以等级 19 执行。
nice -18 vi &
优先等级 18
nice --50 vi &
优先等级 -20 ,选项值为 -50 ,超过最高等级 -20 ,因此系统以等级 -20 执行。
nice --18 vi &
优先等级 -18
通过 ps -l 可查看以上命令的执行情况(注意查看各 vi 进程 NI 值的不同)。
重新调整正在执行的进程的优先级:
调整指定 PID 进程的等级
renice <
等级 >
注意: < 等级 > 是参数,不是选项,没有前缀 - 号。
调整指定用户的所有进程的等级
renice <
等级 > < 用户名 1> < 用户名 2> ...
调整指定组的所有用户的所有进程的等级
renice <
等级 > -g < 组名 1>
4.
如何让 history 命令显示具体时间
HISTTIMEFORMAT="%Y-%m-%d %H:%M:%S "
expect HISTTIMEFORMAT
重新开机后会还原,可以写/ etc profile
5.
查看 Linux 系统当前指定用户的邮件队列
mailq
命令
打印两种类型的列表:
mailq
命令列出如下所示的邮件队列:
Mail Queue(1 request)
---QID---- --Size-- -----Q-Time----- ------Sender/Recipient-----
AA02508 3 Thu Dec 17 10:01 root
(User unknown)
bad_user
mailq -v
命令列出如下所示的邮件队列:
Mail Queue (1 request)
---QID---- --Size-- -Priority- ---Q-Time--- --Sender/Recipient--
AA02508 3 1005 Dec 17 10:01 root
(User unknown)
bad_user
6.
查看 Linux 系统当前加载的库文件
lsof
7.Ext3
文件系统如何恢复 RM 命令删除文件
(1).Ext3
文件系统结构的简单介绍
Linux 所用的 Ext3 文件系统中,文件是以块为单位存储的,默认情况下每个块的大小是 1K ,不同的块以块号区分。每个文件还有一个节点,节点中包含 有文件所有者,读写权限,文件类型等信息。对于一个小于 12 个块的文件,在节点中直接存储文件数据块的块号。如果文件大于 12 个块,那么节点在 12 个块号 之后存储一个间接块的块号,在这个间接块号所对应的块中,存储有 256 个文件数据块的块号( Ext2fs 中每个块号占用 4 字节,这样一个块中所能存储的块 号就是 1024/4=256 )。如果有更大的文件,那么还会在节点中出现二级间接块和三级间接块。
(2).
恢复被误删文件的方法
大多数 Linux 发行版都提供一个 debugfs 工具,可以用来对 Ext3 文件系统进行编辑操作。不过在使用这个工具之前,还有一些工作要做。
首先以只读方式重新挂载被误删的文件所在分区。使用如下命令:(假设文件在 /usr 分区)
mount -r -n -o remount /usr
-r
表示只读方式挂载; -n 表示不写入 /etc/mtab ,如果是恢复 /etc 上的文件,就加上这个参数。如果系统说 xxx partion busy ,可以用 fuser 命令查看一下是哪些进程使用这个分区上的文件:
fuser -v -m /usr
如果没有什么重要的进程,用以下命令停掉它们:
fuser -k -v -m /usr
然后就可以重新挂载这些文件系统了。
如果是把所有的文件统一安装在一个大的 / 分区当中,可以在 boot 提示符下用 linux single 进入单用户模式,尽量减少系统进程向硬盘写入数据的机会,要不干脆把硬盘挂在别的机器上。另外,恢复出来的数据不要写到 / 上面,避免破坏那些 有用的数据。如果机器上有 dos/windows ,可以写到这些分区上面:
mount -r -n /dev/hda1 /mnt/had
然后就可以执行 debugfs ( 假设 Linux /dev/hda5)
#debugfs /dev/hda5
就会出现 debugfs 提示符 debugfs
使用 lsdel 命令可以列出很多被删除的文件的信息:
debugfs
lsdel
debugfs: 2692 deleted inodes found.
Inode Owner Mode Size Blocks Time deleted
164821 0 100600 8192 1/ 1 Sun May 13 19:22:46 2001
…………………………………………………………………………………
36137 0 100644 4 1/ 1 Tue Apr 24 10:11:15 2001
196829 0 100644 149500 38/ 38 Mon May 27 13:52:04 2001
debugfs:
列出的文件有很多(这里找到 2692 个),第一字段是文件节点号,第二字段是文件所有者,第三字段是读写权限,接下来是文件大小,占用块数,删除时间。然后就可以根据文件大小和删除日期判断那些是我们需要的。比如我们要恢复节点是 196829 的文件:
可以先看看文件数据状态:


debugfs
stat
Inode: 196829 Type: regular Mode: 0644 Flags: 0x0 Version: 1
User: 0 Group: 0 Size: 149500
File ACL: 0 Directory ACL: 0
Links: 0 Blockcount: 38
Fragment: Address: 0 Number: 0 Size: 0
ctime: 0x31a9a574 -- Mon May 27 13:52:04 2001
atime: 0x31a21dd1 -- Tue May 21 20:47:29 2001
mtime: 0x313bf4d7 -- Tue Mar 5 08:01:27 2001
dtime: 0x31a9a574 -- Mon May 27 13:52:04 2001
BLOCKS:
594810 594811 594814 594815 594816 594817 ………………………………….
TOTAL: 38
然后就可以用 dump 指令恢复文件:
debugfs
dump /mnt/hda/01.sav
这样就把文件恢复出来了。退出 debugfs
debugfs
quit
另一种方法是手工编辑 inode
debugfs
mi
Mode [0100644]
User ID [0]
Group ID [0]
Size [149500]
Creation time [0x31a9a574]
Modification time [0x31a9a574]
Access time [0x31a21dd1]
Deletion time [0x31a9a574] 0
Link count [0] 1
Block count [38]
File flags [0x0]
Reserved1 [0]
File acl [0]
Directory acl [0]
Fragment address [0]
Fragment number [0]
Fragment size [0]
Direct Block #0 [594810]
…………………………….
Triple Indirect Block [0]
使用 mi 指令后每次显示一行信息以供编辑,其它行可以直接按回车表示确认,把 deletion time 改成 0 (未删除), Link count 改成 1 。改好后退出 debugfs
debugfs
quit
然后用 fsck 检查 /dev/hda5
fsck /dev/hda5
程序会说找到丢失的数据块,放在 lost+found 里面。
8.
查看当前系统某一硬件的驱动版本。比如网卡
dmidecode
9.DNS
服务器有哪三种类型
缓存
10.apache
目录访问身份验证的实施步骤(用 htpasswd 设置)
htpasswd -c /
目录 user
alias /
目录
11.
使用 tcpdump 监听主机 IP 192.168.1.1 tcp 端口为 80 的数据,写出相应命令
tcpdump tcp port 80 host 192.168.1.1
12.
简述 IDS 作用和实现原理
入侵检测,设备放在 intelnet 进来的第一台路由后面。对进入路由的所有的包进行检测,如果有异常就报警。
13.
sed 修改 test.txt 23 test tset
sed ‘23s/test/tset/g ’ test.txt
------------------------------------1
TCP UDP 的区别在于()
2
,如果要知道去 abc.com 的线路是否能连通,该使用(),如果要判断去 abc.com 的路上堵塞位置,则使用()
3
MFS 方式从名为 “nfs” 的服务器新增加共享目录 /test 192.168.100.* /test ,可读写文件,在 server 上是在()文件里面设置,设置如下(),在客户端,则在文件()里写上(),加入该行后,不重启机器。
4
,打包,并压缩目录中所有文件 /a a.tag 的命令为(),解压命令为()
5
,内核文件已经解包到 /usr/src/linux ,配置,编译内核的主要命令按顺序为:()
6
,需要查询 abc.com NIC 的注册情况,应使用()查询
7
,在 nslookup 提示符下,需要查询 DNS 服务解释的 abc.com 的指向情况,则输入(),如果需要知道 abc.com 的邮件服务器,则输入()
8
oracle 在()模式下才可以进行热备。


问答题
Q1
:试描述由机器名( www.abcd.com )查找 DNS 服务器查找过程?
Q2
:需要使用 smbar 来共享 /sambar WIN 系列操作系统 192.168.100.1 user ,密码加密传输,全权,共享名为 test ,支持中文,则 smdb.comf 该如何设置?
Q3
:有两个内核 vmlinuz-2.4.7-10smp,vmlinuz-2.4.7-10 都放在 /boot 目录,需要从 LILO 里可选择启动, vmlinuz-2.4.7-10smp 对应为 linux vmlinuz-2.4.7-10 对应为 linux-up ,请配置 lilo.conf
Q4:apache
需要把 /home/lock 目录在需要用户 user 使用密码登陆才能查看,请配置 apache
Q5:
请使用 xinetd 方式做一个接口,端口号: 1000 TCP 流方式,以 nobody 用户运行。
Q6
:试配置负责解释 abc.com BIND8 服务器, web 服务器 IP 192.168.100.1 email 服务器为 192.168.100.2 Name.conf 这个文件的配置
Q7
MYSQL 中,建立一用户 test ,他只能对 test 库在名为 abc.com 的机器上有控制权,密码为 test ,该如何对 MYSQL 操作?
Q8:
请以自定义方式安装一台服务器,并从源代码级安装 apache MYSQL 服务器,要求 mysql 安装在 /mysql apache 安装在 /httpd 中,并 apache 服务器需要指出 PHP PHP 中有 MYSQL 模块,并写个简单的 PHP 测试 MYSQL
--------------
linux
下进程间通信的方式?
信号( Signal ):信号是比较复杂的通信方式,用于通知接受进程有某种事件发生,除了用于进程间通信外,进程还可以发送信号给进程本身; linux 除了支持 Unix 早期信号语义函数 sigal 外,还支持语义符合 Posix.1 标准的信号函数 sigaction (实际上,该函数是基于 BSD 的, BSD 为了实现可靠信号机制,又能够统一对外接口,用 sigaction 函数重新实现了 signal 函数);
管道通信( Pipe )及有名管道( named pipe )通信:管道可用于具有亲缘关系进程间的通信,有名管道克服了管道没有名字的限制,因此,除具有管道所具有的功能外,它还允许无亲缘关系进程间的通信;
共享内存:使得多个进程可以访问同一块内存空间,是最快的可用 IPC 形式。是针对其他通信机制运行效率较低而设计的。往往与其它通信机制,如信号量结合使用,来达到进程间的同步及互斥。
信号量( semaphore ):主要作为进程间以及同一进程不同线程之间的同步手段。
套接字( Socket ):更为一般的进程间通信机制,可用于不同机器之间的进程间通信。起初是由 Unix 系统的 BSD 分支开发出来的,但现在一般可以移植到其它类 Unix 系统上: Linux System V 的变种都支持套接字。
报文( Message )队列(消 息队列):消息队列是消息的链接表,包括 Posix 消息队列 system V 消息队列。有足够权限的进程可以向队列中添加消息,被赋予读权限的进程则可以读走队列中的消息。消息队列克服了信号承载信息量少,管道只能承载无格式字节流以及缓冲区大小受限等缺点。
 
什么是用户模式 (User Mode) 与内核模式 (Kernel Mode)
在多任务环境中,有许多进程都不允许应用程序去做。所以 CPU 以两种模式运行,即用户模式和内核模式。
 
内核模式   
 
CPU 运行于内核模式时,一切程序都可运行。任务可以执行特权级指令,对任何 I/O 设备有全部的访问权,还能够访问任何虚地址和控制虚拟内存硬件。这种模式对应 80×86 ring0 层,操作系统的核心部分,包括设备驱动程序都运行在该模式。   
 
用户模式   
 
这个模式中,硬件防止特权指令的执行,并对内存和 I/O 空间的访问操作进行检查。这就允许 WindowsNT4
     2.
创建不可以 login 但是可以 ftp 的用户
3.
列出 300 天前的系统时间
4.
列出用户 ( 例如用户为 test)3 天前对系统所作的所有操作 , 写出命令 ?
5.
tar 压缩 /home/log/ 下的 test 文件
6.
shell 列出 /home 下文件大小为 **K 的文件
7.
iptables 写出把 80 端口 A 发给 B 的包转发给 c 8080 端口
8.
iptables 屏蔽掉某网段的所有机器进行网页的访问
9.
列出子进程的父进程
10.
列出 https 的进程号
11.
列出内存和 CPU 的使用率的命令
12.
列出当前系统中所有使用的进程的名称端口号和进程号
--------------------------------------------------------------
1.
下列程序在 32 linux unix 中的结果是什么?
func(char *str)
{
    printf("%d",sizeof(str));
    printf("%d",strlen(str));
}
main()
{
    char a[]="123456789";
   
    printf("%d",sizeof(a));
   
    func(a);
}
: 10   4   9
网络 / 网络编程部份 :
1
connect 方法会阻塞,请问有什么方法可以避免其长时间阻塞?
: 最通常的方法最有效的是加定时器;也可以采用非阻塞模式。
2
、网络中,如果客户端突然掉线或者重启,服务器端怎么样才能立刻知道?
: 若客户端掉线或者重新启动,服务器端会收到复位信号,每一种 tcp/ip 得实现不一样,控制机制也不一样。
3.
在子网 210.27.48.21/30 种有多少个可用地址?分别是什么?
:
:
30
表示的是网络号 (network number) 30 位,剩下 2 位中 11 是广播 (broadcast) 地址, 00 multicast 地址,只有 01 10 可以作为 host address
:
210.27.48.21/30
代表的子网的网络号是 30 位,即网络号是 210.27.48.21 & 255.255.255.251=210.27.48.20 ,此子网的地址空间是 2 位,即可以有 4 个地址: 210.27.48.20, 210.27.48.21, 210.27.48.22, 210.27.48.23 。第一个地址的主机号 (host number/id) 0 ,而主机号 0 代表的是 multicast 地址。最后一个地址的最后两位是 11 ,主机号每一位都为 1 代表的是广播 (broadcast) 地址。所以只有中间两个地址可以给 host 使用。其实那个问题本身不准确,广播或 multicast 地止也是可以使用的地址,所以回答 4 也应该正确,当然问的人也可能是想要你回答 2 。我个人觉得最好的回答是一个广播地址,一个 multicast 地址, 2 unicast 地址。
4.TTL
是什么?有什么用处,通常那些工具会用到它?( ping? traceroute? ifconfig? netstat?
:
:TTL Time To Live ,一般是 hup count ,每经过一个路由就会被减去一,如果它变成 0 ,包会被丢掉。它的主要目的是防止包在有回路的网络上死转,浪费网络资源。 ping traceroute 用到它。
:TTL Time To Live ,目前是 hup count ,当包每经过一个路由器它就会被减去一,如果它变成 0 ,路由器就会把包丢掉。 IP 网络往往带有环 (loop) ,比如子网 A 和子网 B 有两个路由器相连,它就是一个 loop TTL 的主要目的是防止包在有回路的网络上死转,因为包的 TTL 最终后变成 0 而使得此包从网上消失 ( 此时往往路由器会送一个 ICMP 包回来, traceroute 就是根据这个做的 ) ping 会送包出去,所以里面有它,但是 ping 不一定非要不可它。 traceroute 则是完全因为有它才能成的。 ifconfig 是用来配置网卡的, netstat -rn 是用来列路由表的,所以都用不着它
5.
路由表示做什么用的?在 linux 环境中怎么来配置一条默认路由?
:
: 路由表是用来决定如何将包从一个子网传送到另一个子网的,换局话说就是用来决定从一个网卡接收到的包应该送的哪一张网卡上的。在 Linux 上可以用 “route add default gw < 默认路由器 IP>” 来配置一条默认路由。
: 路由表是用来决定如何将包从一个子网传送到另一个子网的,换局话说就是用来决定从一个网卡接收到的包应该送的哪一张网卡上的。路由表的每一行至少有目标网络号、 netmask 、到这个子网应该使用的网卡。当路由器从一个网卡接收到一个包时,它扫描路由表的每一行,用里面的 netmask 和包里的目标 IP 地址做并逻辑运算 (&) 找出目标网络号,如果此网络号和这一行里的网络号相同就将这条路由保留下来做为备用路由,如果已经有备用路由了就在这两条路由里将网络号最长的留下来,另一条丢掉,如此接着扫描下一行直到结束。如果扫描结束任没有找到任何路由,就用默认路由。确定路由后,直接将包送到对应的网卡上去。在具体的实现中,路由表可能包含更多的信息为选路由算法的细节所用。题外话:路由算法其实效率很差,而且不 scalable ,解决办法是使用 IP 交换机,比如 MPLS
Linux 上可以用 “route add default gw < 默认路由器 IP>” 来配置一条默认路由。
6.
在网络中有两台主机 A B ,并通过路由器和其他交换设备连接起来,已经确认物理连接正确无误,怎么来测试这两台机器是否连通?如果不通,怎么来判断故障点?怎么排除故障?
: 测试这两台机器是否连通:从一台机器 ping 另一台机器
    
如果 ping 不通,用 traceroute 可以确定是哪个路由器不能连通,然后再找问题是在交换设备 /hup/cable 等。
7.
网络编程中设计并发服务器,使用多进程 多线程 ,请问有什么区别?
答案一 :
1
,进程:子进程是父进程的复制品。子进程获得父进程数据空间、堆和栈的复制品。
2
,线程:相对与进程而言,线程是一个更加接近与执行体的概念,它可以与同进程的其他线程共享数据,但拥有自己的栈空间,拥有独立的执行序列。
两者都可以提高程序的并发度,提高程序运行效率和响应时间。
线程和进程在使用上各有优缺点:线程执行开销小,但不利于资源管理和保护;而进程正相反。同时,线程适合于在 SMP 机器上运行,而进程则可以跨机器迁移。
答案二 :
根本区别就一点:用多进程每个进程有自己的地址空间 (address space) ,线程则共享地址空间。所有其它区别都是由此而来的:
1
。速度:线程产生的速度快,线程间的通讯快、切换快等,因为他们在同一个地址空间内。
2
。资源利用率:线程的资源利用率比较好也是因为他们在同一个地址空间内。
--------------------------------------------------------------------------------------
转)
是一些基础问题,同时也比较深入的问题。 在此列出来, 欢迎大家讨论交流。
提问(不按时间顺序):
1
使用 Linux epoll 模型,水平触发模式( Level-Triggered );当 socket 可写时,会不停的触发 socket 可写的事件,如何处理?
2
socket 读数据时, socket 缓存里的数据,可能超过用户缓存的长度,如何处理? 例如, socket 缓存有 8kB 的数据,而你的缓存只有 2kB 空间。
3
socket 发送数据时, 可能只发送了用户缓存里的一半,如何处理?例如,需要向 socket 发送 8kB 数据,返回值只有 2kB 发送成功。
4
C++ 的虚函数是怎么实现的?
5
C++ 的虚函数有什么作用?
6
非阻塞 connect ()如何实现?
7
sizeof() 问题
class A
{
  char c;
  int   val;
  short sh;
}
class B
{
    char c;
    int   val;
    short sh;
    void func1(void);
    virtual func2(void);
}
sizeof(A), sizeof(B)
分别是多少?
8
实现字符串比较函数   strcmp(char *src, char * sub)
9
实现内存拷贝函数   strcpy(void*dst, char * src, size_t len)
10
,条件变量的如何使用 ? 你使用的线程函数是什么?
11
deamon 进程如何实现?
12
HTTP CGI 是什么 ?
13
TCP 的三次握手, TIME_WAIT CLOSE_WAIT 状态是什么?
因为第 7 题之后的属于客观题,不打算在此写答案。 朋友们如有好的答案也欢迎跟贴。
本人在此写出自己对前 6 个问题的回答:
1
使用 linux epoll 模型,水平触发模式( Level-Triggered );当 socket 可写时,会不停的触发 socket 可写的事件,如何处理?
第一种最普通的方式:  
   
当需要向 socket 写数据时,将该 socket 加入到 epoll 模型( epoll_ctl );等待可写事件。
   
接收到 socket 可写事件后,调用 write() send() 发送数据。。。
   
当数据全部写完后, socket 描述符移出 epoll 模型。
    
这种方式的缺点是:   即使发送很少的数据,也要将 socket 加入、移出 epoll 模型。有一定的操作代价。
第二种方式,(是本人的改进方案, 叫做 directly-write
   
socket 写数据时,不将 socket 加入到 epoll 模型;而是直接调用 send() 发送;
   
只有当或 send() 返回错误码 EAGAIN (系统缓存满),才将 socket 加入到 epoll 模型,等待可写事件后,再发送数据。
   
全部数据发送完毕,再移出 epoll 模型。
    
这种方案的优点:    当用户数据比较少时,不需要 epool 的事件处理。
    
在高压力的情况下,性能怎么样呢?   
     
对一次性直接写成功、失败的次数进行统计。如果成功次数远大于失败的次数, 说明性能良好。(如果失败次数远大于成功的次数,则关闭这种直接写的操作,改用第一种方案。同时在日志里记录警告)
    
在我自己的应用系统中,实验结果数据证明该方案的性能良好。
   
事实上,网络数据可分为两种到达 / 发送情况:
    
一是分散的数据包, 例如每间隔 40ms 左右,发送 / 接收 3-5 MTU (或更小,这样就没超过默认的 8K 系统缓存)。
    
二是连续的数据包, 例如每间隔 1s 左右,连续发送 / 接收 20 MTU (或更多)。
回来查了资料,发现以下两种方式:
   
第三种方式:   使用 Edge-Triggered (边沿触发),这样 socket 有可写事件,只会触发一次。
            
可以在应用层做好标记。以避免频繁的调用 epoll_ctl( EPOLL_CTL_ADD, EPOLL_CTL_MOD)   这种方式是 epoll man 手册里推荐的方式, 性能最高。但如果处理不当容易出错,事件驱动停止。
第四种方式:   epoll_ctl() 使用 EPOLLONESHOT 标志,当事件触发以后, socket 会被禁止再次触发。
            
需要再次调用 epoll_ctl EPOLL_CTL_MOD ),才会接收下一次事件。    这种方式可以禁止 socket 可写事件,应该也会同时禁止可读事件。会带来不便,同时并没有性能优势,因为 epoll_ctl ()有一定的操作代价。
2
socket 读数据时, socket 缓存里的数据,可能超过用户缓存的长度,如果处理?
      
可以调用 realloc() ,扩大原有的缓存块尺寸。
      
但是临时申请内存的有一定性能损失。
     
这种情况要看接收缓存的方式。
第一种方式:   使用 100k 的大接收缓存为例。
              
如果要等待数据,并进行解析。可能发生缓存不够的情况。此时只能扩充缓存,或先处理 100k 的数据,再接收新的数据。
第二种方式: 使用缓存队列,分成 8K 大小的队列。
              
不存在接收缓存不够的情况。 除非用户解析已出错,使用数据接收、使用脱勾。这种方式的代价是,可能需要将缓存队列再次拷贝、拼接成一块大的缓存,再进行解析。而在本人的系统中,只需要将 socket 接收的数据再次原样分发给客户, 所以这种方案是最佳方案。
3
socket 发送数据时, 可能只发送了用户缓存里的一半,然后失败,如何处理?
     
记录缓存的偏移量。 下一次 socket 写事件时, 再从偏移的位置接着发送。
      
那个面试官居然对这个问题问了我两次, 看来我解释的不够清晰。。。。。。 郁闷。
4
C++ 的虚函数是怎么实现的?
      
使用虚函数表。
      
回来查下资料:   C++ 对象使用虚表, 如果是基类的实例,对应位置存放的是基类的函数指针;如果是继承类,对应位置存放的是继承类的函数指针(如果在继承类有实现)。所以,当使用基类指针调用对象方法时,也会根据具体的实例,调用到继承类的方法。
5
C++ 的虚函数有什么作用?
       
虚函数作用是实现多态, 很多人都能理解这一点。但却不会回答下面这一点。
      
更重要的,虚函数其实是实现封装,使得使用者不需要关心实现的细节。在很多设计模式中都是这样用法,例如 Factory Bridge Strategy 模式。 前两天在书上刚好看到这个问题,但在面试的时候却没想起来。
       
个人觉得这个问题可以很好的区分 C++ 的理解水平。
6
非阻塞 connect ()如何实现?
      
socket 设置成 non-blocking ,操作方法同非阻塞 read() write();
--------------------------------------------------------------------------------------------
一、基础题:
   1. 请列举出你用过的 LINUX 发行版及其中的 GCC 版本、 GLIB 版本
   2.ISO 七层参考模型中的 PPP 协议、 HTTP 协议处于哪一层?
   3. 说出 TCP UDP 的相同和不同之处
   4.IP 数据包头部是多长? 146.0.0.0 属于哪一类 IP 地址?
   5. 请写出 linux 嵌入式系统开发过程
   6. 在以下列举的 GCC 中的参数,请一一写出代表的意思:
    -c
-o
-share
-static
7.
写出以下参数的含义:
    _ attribute_ (packet)
volatile
#define ANYONE((DIR)< (FILE)<
二、程序阅读题(输出程序结果):
   1. 按值和按地址传递(此题太简单,略)
   2. 指针的取地址和取值、指针运算操作(比较简单,略)
   3.char *p;
p=malloc(20);
char q*;
q=strcpy(p,"Please answer the question carefully");
q+=7;
printf("%s",q);
printf("%s",p);
4.#define X 1
#define Y X+1
int p;
p=x+y/2;
printf("%d",p);
5.struct n{
int p;
char name;
}a;
void structp(struct n b)
{
b.p=10;
b.name="X";
}
int main()
{
int x=5;
char name="Y";
a.p=x;
a.name=name;
structp(a);
printf("%d",a.p);
printf("%c",a.name);
}
6.
略(记不清楚了,好像是字符串操作题)
   7. 略(结构和双链表,此题比较难,花时间多)
   8. 分析以下程序,写出结果
Void GetMemory2(char **p, int num)
{
*p = (char *)malloc(num);
}
void Test(void)
{
char *str = NULL;
GetMemory(&str, 100);
strcpy(str, "hello");
printf(str);
}
9.
分析以下程序,写出结果
    char *GetMemory(void)
{
char p[] = "hello world";
return p;
}
void Test(void)
{
char *str = NULL;
str = GetMemory();
printf(str);
}
三、程序写作题:
   1. C 语言实现下现函数(不能调用库函数)
     char *strcpy(char *dest,const char *src)
    为什么此字符串拷贝函数还要返回一个字符指针?
   2. 有两个整型变量 x,y 如何不使用任何中间变量的同时将两个值交换
   3. 写出 BOOl flag 与零值的比较,指针与零值的比较
四、英语基础题(本人英语不好,所以记不住,此题有两部分,第一部分是声明变量,第二部分是完型填空)
五、选择题(此题的具体备选答案我记不住了,不过你若掌握了这部分知识,不需要备选答案,若没有了解,   也不过是在猜题)
   1. 在网络数据传输时,哪种方式数据延迟最大?为了尽可能减少误码,最不宜采用哪种方式传输?分组交   换主要是对数据报文传输的哪方面的改进?改进的直接结果是什么?为了达到数据的最小误码率,应采   哪种方式(或组合方式)进行传输?(提示:备选答案中有:线路交换,分组交换,虚电路等等)
   2. 下面有一棵二叉搜索树,物理存储的方式按一个节点占三个存储单元,例如:有一结点 P ,在内存 1001    中存储 P 的信息, 1002 中存储 P 的左边链接指针, 1003 中存储 P 的右边链接指针,以下是一张将要存储的   节点表:
      P P (节点本身信息), L1(P 的左链节点指针), R1(P 的右链节点指针 ) ;(以下以此类推)
      W W L2 R2
      E E L3 R3
      R R L4 R4
      C C L5,R5
将上述节点以字母表的顺序生成二叉搜索树,并存储在内存 1001 之后的连续单元中 ( 存储节点时按字    母顺序存储,比如 C 存储在 1001 1002 1003 中,那么 E 就应存储在 1004 1005 1006 中)。
   请问: L2 R3 L5 将分别存储在哪个内存单元
-------------------------------------------------------------------------------------------
1
connect 方法会阻塞,请问有什么方法可以避免其长时间阻塞?
: 最通常的方法最有效的是加定时器;也可以采用非阻塞模式。
2
、网络中,如果客户端突然掉线或者重启,服务器端怎么样才能立刻知道?
: 若客户端掉线或者重新启动,服务器端会收到复位信号,每一种 tcp/ip 得实现不一样,控制机制也不一样。
3.
在子网 210.27.48.21/30 种有多少个可用地址?分别是什么?
:
:
30
表示的是网络号 (network number) 30 位,剩下 2 位中 11 是广播 (broadcast) 地址, 00 multicast 地址,只有 01 10 可以作为 host address
:
210.27.48.21/30
代表的子网的网络号是 30 位,即网络号是 210.27.48.21 &
255.255.255.251=210.27.48.20
,此子网的地址空间是 2 位,即可以有 4 个地址: 210.27.48.20,
210.27.48.21, 210.27.48.22, 210.27.48.23
。第一个地址的主机号 (host
number/id)
0 ,而主机号 0 代表的是 multicast 地址。最后一个地址的最后两位是 11 ,主机号每一位都为 1 代表的是广播
(broadcast)
地址。所以只有中间两个地址可以给 host 使用。其实那个问题本身不准确,广播或 multicast 地止也是可以使用的地址,所以
回答 4 也应该正确,当然问的人也可能是想要你回答 2 。我个人觉得最好的回答是一个广播地址,一个 multicast 地址, 2 unicast 地址。
4.TTL
是什么?有什么用处,通常那些工具会用到它?( ping? traceroute? ifconfig? netstat?
:
:TTL Time To Live ,一般是 hup count ,每经过一个路由就会被减去一,如果它变成 0 ,包会被丢掉。它的主要目的是防止包在有回路的网络上死转,浪费网络资源。 ping traceroute 用到它。
:
TTL
Time To Live ,目前是 hup
count
,当包每经过一个路由器它就会被减去一,如果它变成 0 ,路由器就会把包丢掉。 IP 网络往往带有环 (loop) ,比如子网 A 和子网 B 有两个路由器
相连,它就是一个 loop TTL 的主要目的是防止包在有回路的网络上死转,因为包的 TTL 最终后变成 0 而使得此包从网上消失 ( 此时往往路由器会送一个
ICMP
包回来, traceroute 就是根据这个做的 ) ping 会送包出去,所以里面有它,但是 ping 不一定非要不可它。 traceroute 则是
完全因为有它才能成的。 ifconfig 是用来配置网卡的, netstat -rn 是用来列路由表的,所以都用不着它
5.
路由表示做什么用的?在 linux 环境中怎么来配置一条默认路由?
:
: 路由表是用来决定如何将包从一个子网传送到另一个子网的,换局话说就是用来决定从一个网卡接收到的包应该送的哪一张网卡上的。在 Linux 上可以用 “route add default gw ” 来配置一条默认路由。
:
路由表是用来决定如何将包从一个子网传送到另一个子网的,换局话说就是用来决定从一个网卡接收到的包应该送的哪一张网卡上的。路由表的每一行至少有目标网
络号、 netmask 、到这个子网应该使用的网卡。当路由器从一个网卡接收到一个包时,它扫描路由表的每一行,用里面的 netmask 和包里的目标 IP
址做并逻辑运算 (&) 找出目标网络号,如果此网络号和这一行里的网络号相同就将这条路由保留下来做为备用路由,如果已经有备用路由了就在这两条路
由里将网络号最长的留下来,另一条丢掉,如此接着扫描下一行直到结束。如果扫描结束任没有找到任何路由,就用默认路由。确定路由后,直接将包送到对应的网
卡上去。在具体的实现中,路由表可能包含更多的信息为选路由算法的细节所用。题外话:路由算法其实效率很差,而且不 scalable ,解决办法是使用 IP
交换机,比如 MPLS
Linux 上可以用 “route add default gw ” 来配置一条默认路由。
6.
在网络中有两台主机 A B ,并通过路由器和其他交换设备连接起来,已经确认物理连接正确无误,怎么来测试这两台机器是否连通?如果不通,怎么来判断故障点?怎么排除故障?
: 测试这两台机器是否连通:从一台机器 ping 另一台机器
    
如果 ping 不通,用 traceroute 可以确定是哪个路由器不能连通,然后再找问题是在交换设备 /hup/cable 等。
7.
网络编程中设计并发服务器,使用多进程 多线程 ,请问有什么区别?
答案一 :
1
,进程:子进程是父进程的复制品。子进程获得父进程数据空间、堆和栈的复制品。
2
,线程:相对与进程而言,线程是一个更加接近与执行体的概念,它可以与同进程的其他线程共享数据,但拥有自己的栈空间,拥有独立的执行序列。
两者都可以提高程序的并发度,提高程序运行效率和响应时间。
线程和进程在使用上各有优缺点:线程执行开销小,但不利于资源管理和保护;而进程正相反。同时,线程适合于在 SMP 机器上运行,而进程则可以跨机器迁移。
答案二 :
根本区别就一点:用多进程每个进程有自己的地址空间 (address space) ,线程则共享地址空间。所有其它区别都是由此而来的:
1
。速度:线程产生的速度快,线程间的通讯快、切换快等,因为他们在同一个地址空间内。
2
。资源利用率:线程的资源利用率比较好也是因为他们在同一个地址空间内。
1.HTTP
常见状态码与意义
404:
请求网页不存在
200:
服务器成功返回网页
502:
服务器暂不可用
500:
服务器内部错误
2.
浏览器访问网页时网络上大约要经历那些步骤来实现
1.
域名解析
2.
链路建立
3.
数据传输
4.
链路断开
3.
如何确定网页的编码格式
1.
通过 HTTP 响应头上 Content-Type 的信息。
Content-Type: text/html; charset=UTF-8
2.HTML
页面上的标签所指定的 Content-Type 信息
4.
常用 Linux 命令
a
查看当前 shell 所有变量的命令 (set)
b)
查看磁盘的分区与使用情况的命令 (df)
c)
查看当前目录 (pwd)
d)
如何统计文件里的单词数 (wc -w 文件 )
e)
对文件进行排序的命令 (sort 文件 )
f)
得到文件所有的相同行的行数的命令 (uniq -c 文件 )
5.TCP/IP
分几层,他们分别是什么? HTTP 协议是那一层 , 各种层分别有那些主要的协议,各举一例。
分四层:分别是链接层( Link), 互联层( Internet), 传输层 (Transport), 应用层( Application).
链接层( Link):ARP, RARP, OSPF
网际互联层( Internet):IP,ICMP
传输层 (Transport): TCP, UDP
>>
如何获知系统 C 库版本,如何获知系统 C 编译器版本,如何动态获知运行环境的 C 编译器版本
库通过宏 GNU_LIBC_VERSION;c( gcc 为例子 ) 版本, popen("gcc -v")
>>strip
是干什么的,已经被 strip 过的动态库,是否仍然能够查看其符号信息,如何查看
strip
就是去掉多余的符号信息, 去掉后在查就不了解(靠,为啥不把 trip 前的保存起来呢。)
>>
如果一个程序在运行过程中崩溃了,那么该如何进行调试,如果没有源代码呢,如果没有调试工具( debugger )呢
程序崩溃了会产生 core dump gdb/ddd 查看就可以了,没有调试工具汗 ~~~
应用层( Application) DNS SMTP SSH Telnet, HTTP, FTP, IMAP
3
。同步问题:线程使用公共变量 / 内存时需要使用同步机制还是因为他们在同一个地址空间内
      对此二叉搜索树进行后序遍历和前序遍历,请分别写出遍历顺序
      
面试官是在听到我介绍之后,才问我这个问题。可惜还是问我两遍
7
、工作中接到与已有流程不符的任务单,如何处理?
3
。同步问题:线程使用公共变量 / 内存时需要使用同步机制还是因为他们在同一个地址空间内。
1.
能够捕获网络上的数据包。    2. 若捕获的数据包为 IP 包,打印其上层协议类型,
若上层协议为 TCP/UDP 则再次打印其应用层协议类型 ( http.smtp ).   3. 若捕获的数据包非 IP 包,则打印其源 MAC ,目的 MAX ,以及协议类型。  
  4.
能够在端口 9001 上监听其他应用的 UDP 请求,并打印其请求的数据包内容(头部及数据体部分独立打印,内容见下面)   
5.
回复其他应用的 UDP 请求。 题目二    1. 与题目一通过 9001 端口通讯,给题目一发送数据桢(桢格式如下所示)
 2.
支持使用 IP 地址作为参数连接题目二。    3. 数据包长度随机产生,范围: 1~255   4. 打印题目一回复的内容并记录到文件
请求桢格式至少包含: 版本号       3bit 请求类型     2bit  00->Request    01->Response  10/11->Reserved 数据长度
   8bit
序列号       16bit, 每发送一个数据包值曾一 数据体       0~255byte ,起始位置包含 32 字节欢迎信息,其它内容随机生成。
 
环境为 redhat 9.0 ,请高手看看用 C 代码如何实现上面 2 个功能,说说大致思路,需要用到那些知识,最好有代码参考。
socket
我刚入门,谢谢!!

你可能感兴趣的:(linux test1)