############################################
#《老男孩linux就业培训中心-初级班第七期课前考试
#date:2011-5-21
#出题人:老男孩
#QQ:31333741 MAIL:oldboy521@hotmail.com
#blog: http://oldboy.blog.51cto.com
############################################
笔试(根据学生上节课学习的随机出题,附参考答案):
问题1:每周六及周日每天下午14点执行/oldboy.sh这个脚本,写出crontab定时任务
解答:
比较规范的写法:
00 14 * * 6,0 /bin/sh /oldboy.sh >/dev/null 2>&1
如果希望查看脚本执行日志:则可写成:
00 14 * * 6,0 /bin/sh /oldboy.sh >/var/log/oldboy.sh.log 2>&1
说明:
/dev/null为特殊的设备,黑洞设备或空设备.2>&1使标准错误和标准输出一样,本命令内容即把脚本输出重定向到/dev/null,即不记录任何输出,也不给系统发邮件.
如果定时任务不加 >/dev/null 2>&1 会导致邮件临时目录/var/spool/clientmqueue文件数猛增,占用大量磁盘空间.
更多crontab内容请看《[老男孩笔记系列]之-linux定时任务crontab命令详解(初级班)v1.4-20110424.pdf》
不标准写法:
00 14 * * 6,0 /oldboy.sh ===>此脚本如果没有执行(x)权限,则永远都不会执行.
问题2:请通过awk命令取出服务器eth0网卡配置的ip地址(注*:此题可上机操作.目的:考察awk应用).
解答:
[root@oldboy-A ~]# ifconfig eth0|grep "inet addr"|awk ''{print $2}''|awk -F":" ''{print $2}''
10.0.0.148
问题3:通过sed命令将/tmp/old-boy.txt中的/usr/log替换为 /home/oldboy(来自《360公司》面试 from jeacen)
解答:
[root@oldboy-A ~]# cat /tmp/old-boy.txt
/usr/log
拥有帝国一切,皆有可能。欢迎访问phome.net
oldboy
[root@oldboy-A ~]# sed -e ''s#oldboy#qingyun#'' /tmp/old-boy.txt
/usr/log
qingyun
[root@oldboy-A ~]# sed -e "s#/usr/log#/home/oldboy#" /tmp/old-boy.txt
/home/oldboy
oldboy
[root@oldboy-A ~]# sed -i "s#/usr/log#/home/oldboy#" /tmp/old-boy.txt
[root@oldboy-A ~]# cat /tmp/old-boy.txt
/home/oldboy
oldboy
方法一:sed -i ''s#/usr/log#/home/oldboy#'' /tmp/old-boy.txt 等同sed -i ''s#/usr/log#/home/oldboy#'' /tmp/old-boy.txt
方法二:sed -i ''s//home/oldboy//usr/log/'' /tmp/old-boy.txt
方法三:sed -i "s#/usr/log#/home/oldboy#" /tmp/old-boy.txt ==>双引号也可以.
提示:”/”为特殊字符,需要转义,在斜线前面加反斜线来转义.本例中方法一不转义也可以完成.
问题4:通过find搜索/var/log下3天以前的日志并删除(来自《360》面试 from jeacen)
解答:
find /var/log/*.log -mtime 3 -exec rm {} ;
find /var/log/*.log -mtime 3 -type f -exec rm -f {} ;
find /var/log/*.log -type f -mtime 3 |xargs rm -f
提示:
1.有关find的各种详细案例讲解总结请参看〈老男孩笔记系列-find命令实战案例讲解指南〉
2.rm 命令请慎用,本人近10年运维亲身或听别人说过数十次使用该命令造成的无法弥补的后果.
测试结果:
[root@oldboy-A ~]# mkdir tmp
[root@oldboy-A ~]# cd tmp
[root@oldboy-A tmp]# date -s 20110518
Wed May 18 00:00:00 CST 2011
[root@oldboy-A tmp]# echo 1 >qingxun
[root@oldboy-A tmp]# date -s 20110519
Thu May 19 00:00:00 CST 2011
[root@oldboy-A tmp]# echo 1 >chaoliang
[root@oldboy-A tmp]# date -s 201
|