找工作绝对没有问题的linux运维面试题(2)

怎么挂载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,http://

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 [email protected]被监控主机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、[[email protected] 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
[[email protected] 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、[[email protected] ~]#  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
使用lsof 、ps -aux 可以查看详细的每个进程的使用状况
dmesg 也是常用来查看系统性能的命令
#######################################################################################################################################################################
#题目:有10台被监控主机、一台监控机,在监控机上编写脚本,一旦某台被监控机器/分区适用率大于80%, 就发邮件报警放到crontab里面, 每10分钟检查一次
#测试机器:虚拟机Linux as 4
#1.首先建立服务器间的信任关系。拿两台机器做测试
本机ip:192.168.1.6
[[email protected] ~]# 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 [email protected]
[[email protected] ~]# cd .ssh/
[[email protected] .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是公钥文件。
[[email protected] .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机器
[[email protected] ~]# cd .ssh/
[[email protected] .ssh]# cat 192.168.1.6 >> authorized_keys
然后回到192.168.1.6机器直接
[[email protected] .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进程数
[[email protected]host fd]# ps -ef|grep httpd|wc -l
1
如何统计apache的每秒访问数?

tail access_log  | awk ‘{print $1,$4}‘
[[email protected] 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行合并

[[email protected] 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
[[email protected] 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
[[email protected] 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秒后自动退出
[[email protected] bin]# read -t 5
4、自动ftp上传

#!/bin/sh
ftp -n<<END_FTP
open 192.168.1.4
user codfei duibuqi   //用户名codfei 密码duibuqi
binary
prompt off    //关闭提示
mput test    //上传test
close
bye
END_FTP
   自动ssh登陆 从A到B然后再到c
#!/usr/bin/expect -f
set timeout 30
spawn ssh [email protected]
expect "password:"
send "pppppp\r"
expect "]*"
send "ssh [email protected]\r"
expect "password:"
send "pppppp\r"
interact

5、#打印第一个域

[[email protected] bin]# cat 3
eqeqedadasdD
eqeqdadfdfDD
fdsfdsfQWEDD
DSADASDSADSA
[[email protected] bin]#
[[email protected] bin]#
[[email protected] bin]# awk -F "" ‘{print $1}‘ 3
e
e
f
D

6、实现字符串翻转

[[email protected] bin]# cat 8
qweqewqedadaddas
[[email protected] bin]# rev 8
saddadadeqweqewq

########################################第2次电面
7、sed awk grep哪个最好
我答的是 哪个掌握的精通,都很好,但是还是问我哪个最好,我只能说awk了,对于行操作和列操作都可以操作的很好。
8、grep -E -P 是什么意思
我说的是-E, --extended-regexp 采用规则表示式去解释样式。 -P不太清楚
9、还问了我对运维这个工作的理解,和应该具备的素质。
…………

原文地址:http://blog.51cto.com/hashlinux/2306500

时间: 2024-10-08 05:29:46

找工作绝对没有问题的linux运维面试题(2)的相关文章

找工作绝对没有问题的linux运维面试题(3)

shell脚本编程部分: 1.从 a.log 文件中提取包含"WARNING"或"FATAL",同时不包含"IGNOR"的行,然后,提取以":"分割的第五个字段?grep -E 'WARNING|FATAL' a.log | grep-v'IGNOR' | awk -F : '{print $5 }'2.添加一个新组为class01,然后,添加属于这个组的30个用户,用户名的形式为stdXX,其中,XX从 01到 30? #!

Linux运维面试题及解答

Linux运维面试题及解答 1.创建一个10G的文件系统,类型为ext4,要求开机可自动挂载至单独数据/data目录: 查看电脑现有磁盘及分区情况,命令:[[email protected] ~]# df –lh 1.1大家都知道linux系统分区都是以文件的形式存在的,当我们安装完一台linux系统的设备后,设备的磁盘分区可能已经存在,所以我们首先要确定的是磁盘现有分区,在哪个分区下有满足我们题目要求的容量. 查看电脑现有磁盘及分区情况:[[email protected] ~]# df –l

简单的Linux运维面试题,

前几天朋友去面试,拿到的一份Linux运维面试题,不太全,数据库方面的没有弄到,有些没有答完,欢迎大神补充 1.写出至少四种Linux发行版本 Redhat.centos.suse.ubuntu.debian.gentoo.slackware.fedora.arch Linux Suse是基于Slackware的二次发行版 Ubuntu是基于debian的二次发行版 Fedora属于红帽系列 Arch linux是轻量级的,是独立的发行版,没有基于其他版本 2.分别写出ftp.vpn.dns.s

运维屌丝回答网传Linux运维面试题

前段时间网上流传有很多Linux运维的面试题,豪鹫也看了一些,但很多都没有附答案,最近工作比较空闲,利用这三年的运维经验,做做题目,当是巩固一下知识,如答案有误或者各位有更好的答案,欢迎点评.这里当然有小部分答案是网上整理过来的, 请原作者见谅,此作为引用. 以下是面试题,蓝色内容为豪鹫的回答:(未完待续--)  上海实战面试经历----Linux 系统/运维面试总结 同学在上海某网络公司面试题: 1.LINUX系统软件安装和卸载的常见方法 答:A.rpm包卸载:rpm -e XXX.rpm  

linux运维面试题(1)

一.有文件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.

运维屌丝回答网传Linux运维面试题(四)

淘米和上海埃富梦科技,笔试题 后续将整理出豪鹫亲身经历面试过的公司运维技术面的题目(非笔试题目,技术面运维经理的提问),并也附上答案. 敬请期待..... 1.如何检测某个端口所占用的进程 答:如检测3306端口所占用的进程:使用命令: [[email protected] ~]# lsof -i:3306 COMMAND  PID  USER   FD   TYPE DEVICE SIZE/OFF NODE NAME mysqld  2452 mysql   10u  IPv4  13315

运维屌丝回答网传Linux运维面试题(二)

继续屌丝回答网传第二面试题 上海某证券公司: Linux开机流程 答:过程如下: <1>开启电源,加载BIOS----当你按下电源按钮时,服务器会检测系统外围关键设备(如:CPU.内存.显卡.I/O.键盘鼠标等)是否正常,加载BIOS信息,因为BIOS中包含了CPU的相关信息,设备启动顺序信息,硬盘信息,内存信息,时钟信息等等,加载之后,服务器知道应该去读取哪个硬件设备了. <2>读取MBR----硬盘上第0磁道第一个扇区被称为MBR(Master Boot Record,主引导记

网传Linux运维面试题解答(二)

题目来源:http://2358205.blog.51cto.com/2348205/1688323 http://mofansheng.blog.51cto.com/8792265/1627907 大部分都自己做的,部分参考了原帖博主的答案 1.Linux开机流程 BIOS开机自检→MBR引导→加载GRUB→加载linux内核→运行init进程,读取/etc/inittab→执行/etc/rc.d/rc.sysinit脚本→执行/etc/rc.d/rc脚本,运行/etc/rc.d/rcX.d中

网传Linux运维面试题解答(四)

题目来源:http://2358205.blog.51cto.com/2348205/1688557 大部分都自己做的,部分参考了原帖博主的答案 1.如何检测某个端口所占用的进程 lsof -i :port 2.对于linux主机的cpu负载使用,什么情况下user的比例升高,什么情况下system的比例升高,请联系实际举例. 使用top命令可以查看cpu的负载使用 -us:用户进程消耗的CPU时间百分比us的值比较高时,说明用户进程消耗的CPU资源多,如果长期超50%的使用,那么我们就该考虑优