**周一到清睿面试,周三上午到北软,下午到国通:总结下这三次的面试题:
1、怎样查看linux系统日志文件?
2、192.168.12.0/24 分成四个网段,子网掩码和各自的IP段是多少?
3、RAID5的特点是什么?
4、ARP协议是那一层的?110,23,143是哪些服务的端口?
5、两种定时任务 at 和 crontab 的区别是什么?
6、每个月的8号的8点执行定时任务的脚本怎么写?如果一个脚本在命令行中能执行,在定时任务中却执行不了,可能的原因是什么?
7、客户端访问A服务器并跳到B服务器,怎么用ssh实现?
8、linux中设定iptales , 允许192.168.2.3的主机访问本机的80端口,该怎么写防火墙规则?
9、查找修改时间不超过30天的文件,写出命令。
10、杀死某个用户下的所有进程,写出命令。
11、至少列出三种打包工具命令及参数。
12、umask 为 022 用它创建的目录和文件的权限分别是多少?
13、vi编辑器中:删除某一个特定的单词?删除光标后的文本?将所有的回车替换成空格?插入空行?
14、选出某文件的最后一列,去重并排序,脚本怎么写?
15、mysql和oracle数据库的区别?
16、删除某个表中所有数据的语句的sql有哪几个?
17、查看某个表中共有多少条数据的sql语句是什么?
18、查看某个磁盘还有空间,但是无法创建文件,为什么?
19、写出linux系统中处在连接状态的链接数。
shell脚本题
1、统计nginx日志中20:00至22:00每分钟action请求次数最多的前五个时间点(按请求次数排序)
2、统计程序日志中20:50至21:10间执行时间最慢的五个action的名称,执行时间及对应时间点(按时间倒叙)
【查看日志文件】
核心启动日志: /var/log/dmesg/ 用 dmesg 命令 或 less /var/log/dmesg
系统报错日志:/var/log/message 用 tail -f /var/log/messages
系统登录日志:/var/log/wtmp 因为是二进制文件 用 last 或 last -f /var/log/wtmp
【RAID】独立磁盘冗余阵列
由多个物理硬盘按照不同方式组合成的一个硬盘组,对操作系统显示为一个逻辑硬盘。
考虑到存储性能,数据安全,成本三个因素
RAID0技术需要n块硬盘,n>=2,数据被分到这n块硬盘中,系统的 I/O请求被分成了 n 个操作分别向n个磁盘, 从而提高了存储性能,缺点是数据安全没有保证。
RAID1技术使用了镜像的理念,把数据备份到另一个盘中,存储性能不高,但安全性好。
RAID5 技术使用了 奇偶校验的技术,数据被分到了几个盘中,存储性能高,空间利用率是 n-1个盘,一个盘损坏时,通过奇偶校验技术通过其他盘把这个盘的数据恢复,安全性好。
【ARP协议】
地址解析协议
1) 在同一局域网内,根据IP来寻找硬件MAC地址
2) 属于TCP/IP协议族,属于3层网络层,用抓包工具看数据,ARP是封装在IP后的。
3) 在OSI模型中属于数据链路层,当数据从网络层封装到链路层后,因为不知道目的MAC 地址所以会触发ARP请求,请求目的IP的MAC地址。
4) 基于功能来考虑,ARP是链路层协议;基于分层/包封装来考虑,ARP是网络层协议。
【子网划分】
分成四个网段,2^2=4,所以IP地址的网络位向前 借 2个主机位,192.168.12.0/26
每个网络有多少IP? 2^(8-2)-2=62
192.168.12.0/26 , 192.168.12.64/26 , 192.168.12.128/26 , 192.168.12.192/26
【端口】
110 是POP3协议,客户端接收邮件
143 是IMAP协议,浏览器接收邮件
873 是rsync 文件传输服务
23 是telnet 远程登录服务
【定时任务】
at 是让特定任务只执行一次,要开启 atd 进程。
crontab -e 分时日月周 commd
/6 commd 每6小时执行一次
0 6 commd 每天6点执行
0 1-4/2 , 7 commd 每天1-4点每2个小时,7点 执行
0 0 0,3,5 commd 每周日,三,五晚上12点执行一次
1、环境变量,比如在 oracle 用户下创建的定时任务,权限没有问题,当前shell下手动执行可以,但是在crontab文件中可能没有加载oracle 的环境变量,需要先声明。如:source ~/.bashrc
2、路径问题,命令和命令的对象最好都用绝对路径。
3、权限问题,脚本没有执行的权限。或者脚本转码的问题。
【SSH跳板】
客户端通过 x-shell 登录 A 服务器,再 执行 ssh root@IP 即可到B服务器上。
【Iptables 防火墙】
4表5链:
filter表 过滤,nat 表 端口或者地址映射,mangle 表 特定数据包的修改,raw 表
PREROUTING: 数据包进入路由表之前
INPUT : 数据包通过路由表后目的地为本机
FORWARD: 通过路由表后,目的地不是本机
OUTPUT: 由本机产生,向外转发
POSTROUTING : 发送到网卡接口之前
格式:
iptables -t 表名 -I 链名 匹配条件 -j 动作
在头部插入规则 -I ,在尾部插入规则 -A ,删除指定表指定链中规则 -D
默认策略:-P , 清空链中的规则 -F ,修改规则 -R
动作 有 ACCEPT , DROP ,REJECT
例子:
添加: iptables -t filter -I INPUT -s 192.168.220.12 -j DROP
查看:iptables -nL --line-number
删除:iptable -t filter -D INPUT 1
修改:iptable -t filter -R INPUT 1 -p tcp --dport 22 -s 192.168.220.12 -j REJECT
【find命令】
按时间查找的三种时间戳:
按访问时间: -atime/天, -amin/分钟 最后一次访问时间
按修改时间: -mtime/天,-mmin/分钟 最后一次修改时间
按变化时间: -ctime/天, -cmin/分钟 最后一次数据元(如权限)修改的时间
find / -type f -mtime -30 (其中 -30是30天以内,+30是30天以外)
按文件大小 -size -10M
按文件类型 -type f ( f是普通文件,d是目录 )
按文件名 -name filename
【杀死某用户下所有进程】
killall -u username
pkill -u username
【打包工具】
tar -cvf name.tar filename
tar -czvf name.tar.gz filename
tar -czvf name.tar.bz2 filename
【权限管理】
linux 创建文件默认权限是 644 ,创建目录默认权限是 755 ,默认权限是 022
文件的权限基数是 6 ,目录的权限基数是 7
【vim编辑器】
打开文本后是在 “命令模式”下,i 或 o 进入 插入模式,i是在光标处插入,o是下一行插入。
按 esc 回到命令模式,:进入 编辑模式
移动光标到:第一行开头:gg , 第n行开头 nG , 最后一行开头:G,本行的开头数字 0 ,末尾 $
撤销上一步操作:u 撤销恢复:ctrl+r
复制操作:nyy , 粘贴操作 p
剪切 (删除):本行 dd ,ndd, 到行尾:D,到文件尾:dG n1行到n2行剪切:“:n1,n2 d”
替换: “%s/abc/bcd/g”
搜索: /abc
【AWK】
删除空行: grep -v "^$" filename
取文本的最后一列: awk '{print $NF}'
合并相邻记录数并统计重复数:uniq -c
合并前先排序:sort (按ASCII码排序) -r 按数字从大到小排序
grep -v "^$" filename | awk '{print $NF} ' | sort | uniq -c | sort -r
【数据库】
进入mysql数据库:mysql -h 主机地址 -u 用户名 -p 密码
进入oracle 命令: sqlplus /nolog
查看表中的数据l量:use database ;select count(*) from table_name
oracle 是大型,市场占有率多,价格高,功能丰富的数据库。
mysql 是中小型,市场占有率低,开源免费的数据库
删除表中的数据:
drop 是删除整个表
truncate table 表名 :清空表中的数据,保留表结构 数据不可恢复,速度快
delete from 表名 清空数据,数据可恢复,速度慢
delete from 表名 where 列名=值
数据库事务的功能:
事务是一种机制,保证数据库数据的一致性。设置事务起始点 (begin transcation) ,到 提交(commit)之间的所有操作视为一个整体,要么都执行成功,要么都执行失败。然后可以进行回滚(rollback)就是 撤销 操作。
在银行转账,A账户数字减少,B账户数字增加,这两个操作要么都执行成功,要么都执行失败。
mysql 数据库要开启存储引磬 InnoDB才支持事务功能。
【文件inode】
用 df -h 查看磁盘空间未满,但是无法创建文件。
用 df -i 查看 文件的 inode 节点是否已经用完,然后删除文件较多的目录。
【网络链接状态】
网络链接状态有11种,常见的有 LISTEN ,ESTABLISHED , TIME_WAIT 三种
查看网络链接的概况:ss -s
查看监听状态的链接:ss -lt
查看established状态:ss