运维笔记题
一、有文件file1 1、查询file1里面空行的所在行号 awk „{if($0~/^$/)print NR}‟ file or grep -n ^$ file |awk „BEGIN{FS=”:”
一、有文件file1 1、查询file1里面空行的所在行号 awk „{if($0~/^$/)print NR}‟ file or grep -n ^$ file |awk „BEGIN{FS=”:”}{print $1}‟
2、查询file1以abc 结尾的行 grep abc$ file1
3、打印出file1文件第1到第3行 sed -n ‟1,3p‟ file1 head -3 file1
二、如何将本地80端口的请求转发到8080端口,当前主机IP 为192.168.2.1 -A PREROUTING -d 124.42.60.109 -p tcp -m tcp –dport 80 -j DNAT –to-destination 10.0.0.18:9000
三、crontab 在11月份内,每天的早上6点到12点中,每隔2小时执行一次/usr/bin/httpd.sh 怎么实现 0 6-12/2 * 11 * /usr/bin/httpd.sh
四、编写个shell 脚本将/usr/local/test 目录下大于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
五、简述raid0 raid1 raid5 三种工作模式的工作原理及特点。
RAID 0:连续以位或字节为单位分割数据,并行读/写于多个磁盘上,因此具有很高的数据传输率,但它没有数据冗余,因此并不能算是真正的RAID 结构。RAID 0只是单纯地提高性能,并没有为数据的可靠性提供保证,而且其中的一个磁盘失效将影响到所有数据。因此,RAID 0不能应用于数据安全性要求高的场合。
RAID 1:它是通过磁盘数据镜像实现数据冗余,在成对的独立磁盘上产生互为备份的数据。当原始数据繁忙时,可直接从镜像拷贝中读取数据,因此RAID 1可以提高读取性能。RAID 1是磁盘阵列中单位成本最高的,但提供了很高的数据安全性和可用性。当一个磁盘失效时,系统可以自动切换到镜像磁盘上读写,而不需要重组失效的数据。简单来说就是:镜象结构,类似于备份模式,一个数据被复制到两块硬盘上。
RAID10:高可靠性与高效磁盘结构 一个带区结构加一个镜象结构,因为两种结构各有优缺点,因此可以相互补充。 主要用于容量不大,但要求速度和差错控制的数据库中。
RAID5:分布式奇偶校验的独立磁盘结构,它的奇偶校验码存在于所有磁盘上,任何一个硬盘损坏,都可以根据其它硬盘上的校验位来重建损坏的数据。支持一块盘掉线后仍然正常运行。
六、oracle 数据库备份方式 物理备份:开启网络监听,备份数据库文件。RMAN 备份:通过表空间文件在RMAN 模式对ORACLE 数据备份。
七、如何查看占用端口8080的进程 lsof -i:8080
八、请写出apache2.X 版本的两种工作模式,以及各自工作原理。如何查看apache 当前所支持的模块,并且查看是工作在哪种模式下? 答案: prefork(多进程,每个进程产生子进程) 和worker (多进程,每个进程生成多个线程) prefork 的工作原理是,控制进程在最初建立“StartServers”个子进程后,为了满足MinSpareServers 设置的需要创建一个进程,等待一秒钟,继续创建两个,再等待一秒钟,继续创建四个……如此按指数级增加创建的进程数,最多达到每秒32个,直到满足MinSpareServers 设置的值为止。这就是预派生(prefork )的由来。这种模式可以不必在请求到来时再产生新的进程,从而减小了系统开销以增加性能。 worker 是2.0 版中全新的支持多线程和多进程混合模型的MPM 。由于使用线程来处理,所以可以处理相对海量的请求,而系统资源的开销要小于基于进程的服务器。但是,worker 也使用了多进程,每个进程又生成多个线程,以
,获得基于进程服务器的稳定性。这种MPM 的工作方式将是Apache 2.0的发展趋势。 可以通过命令httpd -l 可以查看apache 当前的模块,如果带有worker.c 就是工作在worker 模式下,如果有prefork.c 就是工作在prefork.c 的模式下。 十一、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 的配置,到相应的配置文件进行查询,将结果返回给请求的客户端。
十二、通过apache 访问日志access.log 统计IP 和每个地址访问的次数,按访问量列出前10名。 日志格式样例如下 192.168.1.247 – - [02/[ul/2010:23:44:59 [0800] “GET / [TTP/1.1 200 19″
答案: cat access_log | awk „{print $1}‟ | uniq -c|sort -rn|head -10 //这个别的方法也能统计, 但有些命令是必要的 awk , sort,uniq ,主要看是否这些命令都使用了。 十
三、如何用mysql 命令进行备份和恢复?以test 库为例,创建一个备份,并再用此备份进行恢复。 mysqldump -u root -p test > test.sql mysql -u root -p test < test.sql //主要考对方msqldump > test.sql 和 mysql < test.sql
十四、你认为在系统调优方面都包括哪些工作,以linux 为例,请简明阐述,并举一些参数为例。
答案: 系统调优包括内核参数优化和应用优化2个方面 有个文件如下: http://a.domain.com/1.html http://b.domain.com/1.html http://c.domain.com/1.html http://a.domain.com/2.html http://b.domain.com/2.html http://a.domain.com/3.html 要求:得到主机名(和域名),并统计哪个网址出现的次数,并排序。可以shell 或C 。 得到的结果应该是: 3 a.domain.com 2 b.domain.com 1 c.domain.com
,名的改变而改变。apache 会继续向已改名的文件中追加日志,但是若重启apache 服务,系统会检查access_log 文件是否存在,若不存在则创建。 2. 在Shell 环境下, 如何查看远程Linux 系统运行了多少时间? 2、监控主机执行: ssh user@被监控主机ip "uptime" 这样得到了被监控主机的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任意一种 3、[root@localhost shell]# cat file | sed -e ' s/http:////' -e ' s//.*//' | sort | uniq -c | sort -rn 3 www.baidu.com 2 post.baidu.com 1 mp3.baidu.com [root@codfei4 shell]# awk -F/ '{print $3}' file |sort -r|uniq -c|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任意一种. 4、
[root@localhost ~]# awk -v count=6 'BEGIN {srand();str="0123456789";len=length(str);for(i=count;i>0;i--)
marry[i]=substr(str,int(rand()*len),1);for(i=count;i>0;i--)
printf("c",marry[i]);printf("n");for (i=0;i<=count;i[[) printf("c",marry[i]);printf("n")}' 838705 507838 5.如何查看当前Linux 系统的状态, 如CPU 使用, 内存使用, 负载情况等. 5、Linux 系统中“/proc”是个伪文件目录, 不占用系统空间,及时的反应出内存现在使用的进程情况...... 其中许多文件都保存系统运行状态和相关信息 对于“/proc”中文件可使用文件查看命令浏览其内容,文件中包含系统特定信息: cpuinfo 主机CPU 信息 filesystems 文件系统信息 meninfo 主机内存信息 version Linux内存版本信息 diskstatus 磁盘负载情况 另外top 命令可以动态的显示当前系统进程用户的使用情况, 而且是动态的显示出来,尤其是在该命令显示出来的对上方对系统的情况进行汇总. free 命令呢可以查看真实使用的内存一般用free -m :有10台被监控主机、一台监控机,在监控机上编写脚本,一旦某台被监控机器/分区适用率大于80,就发邮件报警放到crontab 里面,每10分钟检查一次 #测试机器:虚拟机Linux as 4 #1.首先建立服务器间的信任关系。拿两台机器做测试 本机ip:192.168.1.6 [root@codfei ~]# 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@codfei [root@codfei ~]# cd .ssh/ [root@codfei .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@codfei .ssh]# scp id_rsa.pub192.168.1.4:/root/.ssh/192.168.1.6 root@192.168.1.4's password: id_rsa.pub 100 221 0.2KB/s 00:00 这里把公钥文件取名为本机的ip 地址就是为了以后和更多的机器建立信任关系不发生混淆。 现在登陆到192.168.1.4机器
,[root@codfei ~]# cd .ssh/ [root@codfei .ssh]# cat 192.168.1.6 >> authorized_keys 然后回到192.168.1.6机器直接 [root@codfei .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 ####脚本如下####################### #!/bin/bash #SCRIPT:df_check.sh #Writeen by codfei Mon Sep 3 07:25:28 CST 2007 #PURPOSE:This script is used to monitor for full filesystem#######################Begining######################################## 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 #############over################################ ################让脚本每十分钟执行一次############# 在cron 表中加入 0/10 * * * * /home/codfei/diskcheck.sh 2>&1 ########################################################################## 比如, ext2文件系统,如果异常死机,开机如何修复文件系统? 如果异常关机,比如断电,通知机房的人开机之后, 我们需要远程修复、检查文件系统 除了/分区之外,其他的分区: umount /home fsck -y /home / 分区需要开机之后,由机房的人来扫描 随后我们再登录并扫描/home等其他分区 如何查看一个进程所使用的文件句柄? 看这里面 /proc/进程号/fd/ 的个数就行了 简单的比如如何查看apache 进程数 [root@localhost fd]# ps -ef|grep httpd|wc -l 1 如何统计apache 的每秒访问数? tail access_log | awk '{print $1,$4}' [root@localhost logs]# grep -c `date -d '3 second ago' [T` access_log 0 #######################################################################################################################
####################################################################################################################### 1、/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 2、将一个文本的奇数行和偶数行合并,第2行和第3行合并 [root@localhost bin]# cat 1 48 Oct 3bc1997 lpas 68.00 lvx2a 138 484 [an 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' 1 48 Oct 3bc1997 lpas 68.00 lvx2a 138 484 [an 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 1|sed '$!N;s/n/ /' 484 [an 380sdf1 usp 78.00 deiv 344 483 nov 7pl1998 usp 37.00 kvm9d 644 3、read 命令5秒后自动
[root@localhost bin]# read -t 5 4、自动ftp 上传 #!/bin/sh ftp -n< [root@localhost bin]# awk -F "" '{print $1}' 3 e e f D 6、实现字符串翻转 [root@localhost bin]# cat 8 qweqewqedadaddas [root@localhost bin]# rev 8 Saddadadeqweqewq shell 脚本编程部分: 1.从a.log 文件中提取包含“WARNING”或”FATAL”,同时不包含“IGNOR”的行,然后,提取以“:”分割的第五个字段? 2.添加一个新组为class01, 然后,添加属于这个组的30个用户,用户名的形式为stdXX, 其中,XX 从01到30? 3.在每个月的第一天备份并压缩/etc目录下的所有内容,存放在/root/backup目录里,且文件名为如下形式yymmdd_etc,yy为年,mm 为月,dd 为日。shell 程序fileback 存放在/usr/bin目录下? 4.用shell 编程,判断一文件是不是字符设备文件,如果是将其拷贝到/dev目录下? 参考答案: #!/bin/bash directory=/dev for file in anaconda-ks.cfg install.log install.log.syslog do if [ -f $file ] then cp $file $directory/$file.bak echo " [I, $LOGNAME $file is backed up already in $directory !!" fi done 5.某系统管理员需要每天做一定的重复工作,编制一个解决方案: (1).从下午4:50删除/abc目录下的全部子目录和全部文件; (2).从早上8:00~下午6:00每小时读取/xyz目录下x1文件中每行第一个域的全部数据加入到/backup目录下的back01.txt 文件内; (3).每逢周一下午5:50将/data目录下的所有目录和文件归档并压缩为文件backup.tar.gz; (4).在下午5:55将IDE 接口的CD -ROM 缷载(假设CD -ROM 的设备名为hdc ); (5).在早上8:00前开机后启动。 --------------------------------------- 2、用iptables 添加一个规则允许192.168.0.123访问本机3306端口 iptables -I INPUT 1 -p tcp -m tcp --dport 3306 -s 192.168.0.123 -j ACCEPT 3、如何对一台Linux 服务器进行 系统性能调优,列举出参数。 4、DNS 服务器的工作原理。 5、修改第一块网卡的路径是什么。 /etc/sysconfig/network-scripts/ifcfg-eth0 7、使用shell ,建立class1用户组,再批量建立stu1--stu30的用户,并指定用户组为class1。 vi autoaddusr #!/usr/bin/php -q chmod [x autoaddusr ./autoaddusr 9、日常监控都需要监控哪些? 1) 硬件CPU :/proc/cpuinfo 内存:/proc/meminfo 硬盘:fdisk -l 2)系统: 负载:/proc/loadavg uptime查看实时load average、swap 虚拟内存:vmstat (参数-s ;2 4) SUID, 用户, 进程 系统日志:tail -f /var/log/messages logwatch --print --range Today --service SS[D --service pam_unix 3) 网络: [ost_Alive,Ping,端口, 连接 ---------------------------------------------------- 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. 列出作为完整邮件系统的软件, 至少二类 9,当用户在浏览器当中输入一个网g 站,说说计算机对dns 解释经过那些流程?注:本机跟本地dns 还没有缓存。 答: a. 用户输入网址到浏览器 b. 浏览器发出DNS 请求信息 c. 计算机首先查询本机[OST文件,看是否存在,存在直接返回结果,不存在,继续下一步 d. 计算机按照本地DNS 的顺序,向合法dns 服务器查询IP 结果, e. 合法dns 返回dns 结果给本地dns ,本地dns 并缓存本结果,直到TTL 过期,才再次查询此结果 f. 返回IP 结果给浏览器 g. 浏览器根据IP 信息,获取页面 10,我们都知道,dns 既采用了tcp 协议,又采用了udp 协议,什么时候采用tcp 协议?什么时候采用udp 协议?为什么要这么设计? 答:这个题需要理解的东西比较的多,分一下几个方面 a ,从数据包大小上分:UDP 的最大包长度是65507个字节,响应dns 查询的时候数据包长度超过512个字节,而返回的只要前512个字节,这时名字解释器通常使用TCP 从发原来的请求。 b ,从协议本身来分:大部分的情况下使用UDP 协议,大家都知道UDP 协议是一种不可的协议,dns 不像其它的使用UDP 的Internet 应用 (如:TFTP ,BOOTP 和SNMP 等) ,大部分集中在局域网,dns 查询和响应需要经过广域网,分组丢失和往返时间的不确定性在广域网比局域网上更大,这就要求dns 客户端需要好的重传和超时算法,这时候使用TCP 11,一个EXT3的文件分区,当使用touch test.file命令创建一个新文件时报错,报错的信息是提示磁盘已满,但是采用df -h 命令查看磁盘大小时,只使用了,60的磁盘空间,为什么会出现这个情况,说说你的理由。 答:两种情况,一种是磁盘配额问题,另外一种就是EXT3文件系统的设计不适合很多小文件跟大文件的一种文件格式,出现很多小文件时,容易导致inode 耗尽了。 12,我们都知道FTP 协议有两种工作模式,说说它们的大概的一个工作流程? FTP 两种工作模式:主动模式(Active FTP)和被动模式(Passive FTP) 在主动模式下,FTP 客户端随机开启一个大于1024的端口N 向服务器的21号端口发起连接,然后开放N[1号端口进行监听,并向 服务器发出PORT N[1命令。 服务器接收到命令后,会用其本地的FTP 数据端口(通常是20)来连接客户端指定的端口N[1,进行数据传输。 在被动模式下,FTP 客户端随机开启一个大于1024的端口N 向服务器的21号端口发起连接,同时会开启N[1号端口。然后向服务器发送PASV 命令,通知服务器自己处于被动模式。服务器收到命令后,会开放一个大于1024的端口P 进行监听,然后用PORT P命令通知客户端,自己的数据端口是P 。客户端收到命令后,会通过 N[1号端口连接服务器的端口P ,然后在两个端口之间进行数据传输。 总的来说,主动模式的FTP 是指服务器主动连接客户端的数据端口,被动模式的FTP 是指服务器被动地等待客户端连接自己的数据端口。 被动模式的FTP 通常用在处于防火墙之后的FTP 客户访问外界FTp 服务器的情况,因为在这种情况下,防火墙通常配置为不允许外界访问防火墙之 后主机,而只允许由防火墙之后的主机发起的连接请求通过。 因此,在这种情况下不能使用主动模式的FTP 传输,而被动模式的FTP 可以良好的工作。 13. 编写个shell 脚本将当前目录下大于10K 的文件转移到/tmp目录下 #/bin/sh #Programm : # Using for move currently directory to /tmp for FileName in `ls -l |awk '$5>10240 {print $9}'` do mv $FileName /tmp done ls -al /tmp echo "Done! " 14.apache有几种工作模式,分别介绍下其特点,并说明什么情况下采用不同的工作模式? apache 主要有两种工作模式:prefork(apache的默认安装模式) 和worker(可以在编译的时候加参数--with-mpm-worker 选择工作模式) prefork的特点是:(预派生) 1.这种模式可以不必在请求到来时再产生新的进程,从而减小了系统开销 2. 可以防止意外的内存泄漏 3. 在服务器负载下降的时候会自动减少子进程数 worker 的特点是:支持混合的多线程多进程的多路处理模块 如果对于一个高流量的[TTP服务器,worker MPM 是一个比较好的选择,因为因为worker MPM占用的内存要比prefork 要小。 15. 名词解释 [DLC,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. #This 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. #This 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.在命令行下发一邮件,发件人:123@abc.com,收信人:abc@xyz.com 二简述题: 1.linux 下如何改IP, 主机名,DNS 2.linux 下如何添加路由 3. 简述linux 下编译内核的意义与步骤 4. 简述Linux 启动过程 5. 简述DDOS 攻击的原理 6. 简述Tcp 三次握手的过程 7. 简述VPN ,常见有哪几种? 8. 三:设计题: 1. 系统设计 请考虑以下系统的设计. 您可以翻阅资料,查询任何您有帮助的资料、指南等。 您有的资源: 8台安装Linux (2.6内核) 的双网卡PC 服务器以及相关开源软件,交换机 Apache 2.2.x Tomcat 5.5.X 数据库系统 最多8个Internet IP地址, 请您设计一个系统: 1、使用双apache web server前端; 2、采用A[P连接后段的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 ==================题空面试题================ 三.简答题: 1.简述Linux 文件系统通过i 节点把文件的逻辑结构和物理结构转换的工作过程。 参考答案: Linux 通过i 节点表将文件的逻辑结构和物理结构进行转换。 i 节点是一个64字节长的表,表中包含了文件的相关信息,其中有文件的大小、文件所有者、文件的存取许可方式以及文件的类型等重要信息。在i 节点表中最重要的内容是磁盘地址表。在磁盘地址表中有13个块号,文件将以块号在磁盘地址表中出现的顺序依次读取相应的块。Linux 文件系统通过把i 节点和文件名进行连接,当需要读取该文件时,文件系统在当前目录表中查找该文件名对应的项,由此得到该文件相对应的i 节点号,通过该i 节点的磁盘地址表把分散存放的文件物理块连接成文件的逻辑结构。 2.简述进程的启动、终止的方式以及如何进行进程的查看。 参考答案: 在Linux 中启动一个进程有手工启动和调度启动两种方式: (1)手工启动 用户在输入端发出命令,直接启动一个进程的启动方式。可以分为: ①前台启动:直接在S[ELL中输入命令进行启动。 ②后台启动:启动一个目前并不紧急的进程,如打印进程。 (2)调度启动 系统管理员根据系统资源和进程占用资源的情况,事先进行调度安排,指定任务运行的时间和场合,到时候系统会自动完成该任务。 经常使用的进程调度命令为:at 、batch 、crontab 。 3. 简述DNS 进行域名解析的过程。 参考答案: 首先,客户端发出DNS 请求翻译IP 地址或主机名。DNS 服务器在收到客户机的请求后: (1)检查DNS 服务器的缓存,若查到请求的地址或名字,即向客户机发出应答信息; (2)若没有查到,则在数据库中查找,若查到请求的地址或名字,即向客户机发出应答信息; (3)若没有查到,则将请求发给根域DNS 服务器,并依序从根域查找顶级域,由顶级查找二级域,二级域查找三级,直至找到要解析的地址或名字,即向客户机所在网络的DNS 服务器发出应答信息,DNS 服务器收到应答后现在缓存中存储,然后,将解析结果发给客户机。 (4)若没有找到,则返回错误信息。 4.系统管理员的职责包括那些?管理的对象是什么? 参考答案: 系统管理员的职责是进行系统资源管理、设备管理、系统性能管理、安全管理和系统性能监测。管理的对象是服务器、用户、服务器的进程及系统的各种资源等。 5.简述安装Slackware Linux 系统的过程。 参考答案: (1)对硬盘重新分区。(2)启动Linux 系统(用光盘、软盘等)。 (3)建立Linux 主分区和交换分区。(4)用setup 命令安装Linux 系统。 (5)格式化Linux 主分区和交换分区(6)安装Linux 软件包 (7)安装完毕,建立从硬盘启动Linux 系统的LILO 启动程序,或者制作一张启动Linux 系统的软盘。重新启动Linux 系统。 6.什么是静态路由,其特点是什么?什么 是动态路由,其特点是什么? 参考答案: 静态路由是由系统管理员设计与构建的路由表规定的路由。适用于网关数量有限的场合,且网络拓朴结构不经常变化的网络。其缺点是不能动态地适用网络状况的变化,当网络状况变化后必须由网络管理员修改路由表。 动态路由是由路由选择协议而动态构建的,路由协议之间通过交换各自所拥有的路由信息实时更新路由表的内容。动态路由可以自动学习网络的拓朴结构,并更新路由表。其缺点是路由广播更新信息将占据大量的网络带宽。 87.进程的查看和调度分别使用什么命令? 参考答案: 进程查看的命令是ps 和top 。 进程调度的命令有at ,crontab ,batch ,kill 。 8.当文件系统受到破坏时,如何检查和修复系统? 参考答案: 成功修复文件系统的前提是要有两个以上的主文件系统,并保证在修复之前首先卸载将被修复的文件系统。 使用命令fsck 对受到破坏的文件系统进行修复。fsck 检查文件系统分为5步,每一步检查系统不同部分的连接特性并对上一步进行验证和修改。在执行 fsck 命令时,检查首先从超级块开始,然后是分配的磁盘块、路径名、目录的连接性、链接数目以及空闲块链表、i-node 。 9.解释i 节点在文件系统中的作用。 参考答案: 在linux 文件系统中,是以块为单位存储信息的,为了找到某一个文件在存储空间中存放的位置,用i 节点对一个文件进行索引。I 节点包含了描述一个文件所必须的全部信息。所以i 节点是文件系统管理的一个数据结构。 10.什么是符号链接,什么是硬链接?符号链接与硬链接的区别是什么? 参考答案: 链接分硬链接和符号链接。 符号链接可以建立对于文件和目录的链接。符号链接可以跨文件系统,即可以跨磁盘分区。符号链接的文件类型位是l ,链接文件具有新的i 节点。 硬链接不可以跨文件系统。它只能建立对文件的链接,硬链接的文件类型位是-,且硬链接文件的i 节点同被链接文件的i 节点相同。 11.在对linux 系统分区进行格式化时需要对磁盘簇(或i 节点密度)的大小进行选择,请说明选择的原则。 参考答案: 磁盘簇(或i 节点密度)是文件系统调度文件的基本单元。磁盘簇的大小,直接影响系统调度磁盘空间效率。当磁盘分区较大时,磁盘簇也应选得大些;当分区较小时,磁盘簇应选得小些。通常使用经验值。 1 2.简述网络文件系统NFS ,并说明其作用。 参考答案: 网络文件系统是应用层的一种应用服务,它主要应用于Linux 和Linux 系统、Linux 和Unix 系统之间的文件或目录的共享。对于用户而言可以通过 NFS 方便的访问远地的文件系统,使之成为本地文件系统的一部分。采用NFS 之后省去了登录的过程,方便了用户访问系统资源。 13.某/etc/fstab文件中的某行如下: /dev/had5 /mnt/dosdata msdos defaults,usrquota 1 2 请解释其含义。 参考答案: (1)第一列:将被加载的文件系统名;(2)第二列:该文件系统的安装点; (3)第三列:文件系统的类型;(4)第四列:设置参数; (5)第五列:供备份程序确定上次备份距现在的天数; (6)第六列:在系统引导时检测文件系统的顺序。 14.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。 15.某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:到达目标网络经过的路由器数(跳数)。 16.试解释apache 服务器以下配置的含义: (1)port 1080 (2)UserDir userdoc (3)DocumentRoot “/home/htdocs” (4) (3)常用的ftp 文件传输命令为:bin 、asc 、put 、get 、mput 、mget 、prompt 、bye 四.编程与应用题: 1.用Shell 编程,判断一文件是不是字符设备文件,如果是将其拷贝到 /dev 目录下。 参考程序: #!/bin/sh FILENAME= echo “Input file name:” read FILENAME if [ -c "$FILENAME" ] then cp $FILENAME /dev fi 2.请下列shell 程序加注释,并说明程序的功能和调用方法:#!/bin/sh #!/bin/sh # # /etc/rc.d/rc.httpd # # Start/stop/restart the Apache web server. # # To make Apache start automatically at boot, make this # file executable: chmod 755 /etc/rc.d/rc.httpd # case "$1" in 'start') /usr/sbin/apachectl start ;; 'stop') /usr/sbin/apachectl stop ;; 'restart') /usr/sbin/apachectl restart ;; *) echo "usage $0 start|stop|restart" ;; esac 参考答案: (1)程序注释 #!/bin/sh 定义实用的shell # # /etc/rc.d/rc.httpd 注释行,凡是以星号开始的行均为注释行。 # # Start/stop/restart the Apache web server. # To make Apache start automatically at boot, make this # file executable: chmod 755 /etc/rc.d/rc.httpd # case "$1" in #case结构开始,判断“位置参数”决定执行的操作。本程序携带一个“位置参数”,即$1 'start') #若位置参数为start /usr/sbin/apachectl start ;; #启动httpd 进程 'stop') #若位置参数为stop /usr/sbin/apachectl stop ;; #关闭httpd 进程 'restart') #若位置参数为stop /usr/sbin/apachectl restart ;; #重新启动httpd 进程 *) #若位置参数不是start 、stop 或restart 时 echo "usage $0 start|stop|restart" ;; #显示命令提示信息:程序的调用方法 esac #case结构结束 (2)程序的功能是启动,停止或重新启动httpd 进程 (3)程序的调用方式有三种:启动,停止和重新启动。 3.设计一个shell 程序,添加一个新组为class1,然后添加属于这个组的30个用户,用户名的形式为stdxx ,其中xx 从01到30。 参