一、有文件file1
1、请用shell查询file1 里面空行的所在行号
awk ‘{if($0~/^$/)print NR}’ file
or
grep -n ^$ file |awk ‘BEGIN{FS=”:”}{print $1}’
2、编写ShellScript查询file1 以abc 结尾的行
grep abc$ file1
3、打印出file1 文件第1 到第3 行
sed -n ’1,3p’ file1
head -3 file1
二、如何将本地80 端口的请求转发到8080 端口,当前主机IP 为192.168.2.1
Iptables -A PREROUTING -d 192.168.2.1 -p tcp -m tcp –dport 80 -j DNAT -to-destination 192.168.2.1:8080
三、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 的模式下。
九、你使用过监控软件吗?说说其特点
使用nagios 对服务器进行监控,其特点可实时实现手机短信、电子邮件、MSN、飞信报警。使用cacti 对流量进行监控。
十、你对现在运维工程师的理解和以及对其工作的认识运维工程师在公司当中责任重大,需要保证时刻为公司及客户提供最高、最快、最稳定、最安全的服务。运维工程师的一个小小的失误,很有可能会对公司及客户造成重大损失,因此运维工程师的工作需要严谨及富有创新精神。
十一、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/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 ,主要看是否这些命令都
使用了。
十三、如何用mysql 命令进行备份和恢复?以test 库为例,创建一个备份,并再用此备份
进行恢复。
mysqldump -u root -p test > test.sql
mysql -u root -p test < test.sql
//主要考对方msqldump > test.sql 和 mysql < test.sql
十四、你认为在系统调优方面都包括哪些工作,以linux 为例,请简明阐述,并举一些参数
为例。
答案:
系统调优包括内核参数优化和应用优化2 个方面,对方只要从这两方面来说,就可以了,
尽量能有些经验的阐述。
有个文件如下:
要求:得到主机名(和域名),并统计哪个网址出现的次数,并排序。可以shell 或C。
得到的结果应该是:
3 a.
2 b.
1 c.
[root@mail ~]# awk ‘BEGIN{FS=”/”}{arr[$3]++}END{for(i in arr) print
arr[i],i}’ list| sort -r 答案
3 a.
2 b.
1 c.
挂载windows 的共享目录?
mount.cifs //IP/SHARE linux 的目录 –verbose -o user=username windows 下的用户–verbose 这个参数可以不加,它是显示过程的
例如mount.cifs //10.1.1.246/gongxiang /mnt –verbose -o user=gao
或者是mount -t cifs
umount /mnt 或umount.cifs /mnt -l 图形界面:smb://IP
A B 网络是通的,最少列出五种传输文件的服务
nfs ,ftp,scp ,rsync,samba,
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 系统运行了多少时间?
2、监控主机执行: ssh user@被监控主机ip “uptime”
这样得到了被监控主机的uptime
3.处理以下文件内容,将域名取出并进行计数排序,如处理:
得到如下结果:
域名的出现的次数 域名
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
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}’
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> 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 filesystems.
#######################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
如何统计apache 的每秒访问数?
tail access_log | awk ‘{print $1,$4}’
[root@localhost logs]# grep -c `date -d ‘3 second ago’ +%T` access_log
################################################
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 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’ 1
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 1|sed ‘$!N;s/n/ /’
484 Jan 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
原创文章,作者:筱凯,如若转载,请注明出处:https://www.jingyueyun.com/ask/641.html