1. 通过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_20150407.log | awk '{print $1}' |uniq -c|sort -rn|head -10


2.编写个shell 脚本将/home/scripts 目录下大于100K 的文件转移到/tmp 目录下
#!/bin/bash
for file in `ls /home/scripts`
do
if [ -f $file ]; then
if [ `ls -l $file|awk '{print $5}'` -gt 100 ]; then
mv $file /tmp/
fi
fi
done


3.如何将本地80 端口的请求转发到8080 端口,当前主机IP 为192.168.20.x
Iptables -t nat -A PREROUTING  -p tcp -m tcp –dport 80 -j DNAT -to-destination 192.168.20.x:8080


4.crontab
在11 月份内,每天的早上6 点到12 点中,每隔2 小时执行一次/usr/bin/httpd.sh 怎么
实现
0 6-12/2 * 11 * /usr/bin/httpd.sh


5.请写出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 的模式下。


6.如何修改Linux启动级别为字符模式并永久生效

  vim /etc/inittab

  id:5:initdefault:


7.ifconfig显示ip,打印IP那行内容

  ifconfig | grep 'Bcast'

  inet addr:192.168.20.109  Bcast:192.168.20.255  Mask:255.255.255.0


8.批量创建用户且密码随机

for i in `seq -w 16 20`

do

 pass=`echo $RANDOM |md5sum|cut -c 1-8`

 useradd yzg$i  && \

 echo "$pass" | passwd --stdin yzg$i

 echo -e "user:yzg$i \t pass:$pass" >> /tmp/yzgpasswd

done

exit 0


9.ping某网段的ip来查看是否想通

 

set -x


for n in `seq 254`

do

 ping -c2 192.168.20.$n > /dev/null 2>&1

 if [ $? -eq 0 ]

   then

    echo "192.168.20.$n is up " >> /tmp/yzgup.log

   else

   echo "192.168.20.$n is down" >> /tmp/yzgdown.log

  fi

done

exit 0


set +x