1、请描述下linux 系统的开机启动过程

开机加电BIOS自检----------->MBR引导----------->grub引导菜单----------->加载内核----------->启动init进程----------->读取inittab文件----------->启动mingetty进程----------->登录系统

2、权威DNS和递归DNS含义,智能DNS的实现原理

权威DNS

是经上一级授权对域名进行解析的DNS服务器,同时它可以把解析授权转授给其他服务器,

递归DNS

负责接受用户对任何域名的查询,并返回结果给用户,它可以缓存结果避免用户再向上查询

智能DNS

就是将对用户发起的查询进行判断出是哪个运营商的用户查询,然后将请求转发给相应的运营商IP处理,减少跨运营访问的时间,提高访问速度

3、通过APACHE访问日志access.log统计IP和每个地址访问的次数,列出访问量前10名的IP地址,写出具体命令

awk '{print $1}' access.log|uniq -c|sort -rn |head -10

4、编写脚本实现将/usr/local/test目录下大于100K文件,将它拷贝到/tmp目录下

#!/bin/bash

for file in `ls /usr/local/test`

do

if [ -f $file ];then

if [ `ls -l $file`|awk '{print $5}' -gt 10000];then

mv $file /tmp/

fi

fi

done

5、将本地的80端口的请求转发到8080端口,本机地址10.0.0.254,写出命令

iptables -t nat -A PRETOUTING -d 10.0.0.254 -p tcp --dprot 80 -j NDAT --to-destination 10.0.0.254:8080

6、如何实现nginx代理的节点访问日志记录的是真实访客的IP,不是代理的IP

配置nginx.conf配置文件增加下同的标记内容

server{

listen 80;

server_name blog.text.com;

location / {

proxy_pass http://test_servers;

proxy_set_header Host $host;

 proxy_set_headerX-Forwarded-For $remote_addr;

修改完成后,重新加载nginx即可,/application/nginx/sbin/nginx -s reload

7、MYSQL 一主多从,主库宕机,如何合理切换到从库,其它从库如何处理?

1:登陆所有从库查看post信息,使用POST最大的做为新的主库,然后将从为提升为新的主库,登陆从库(新的主库)执行stop slave,

2:修改my.cnf配置文件,开启log-bin并重新启动数据库服务,登陆数据库执行restet master ,show master status\G;查看主库信息,最后创建授权同步用户与权限和网站使用数据库的用户与权限,同步所有机器的/etc/hosts文件(这时就体现了之前全网用域名则不是用IP的作用了,不然还得修改网站程序切换到新主库服务器IP上,否则无法连接到数据库)

2:登陆其它从库,执行change master操作,查看同步状态

8、误操作drop语句导致数据库数据破坏,请给出恢复的实际大体步骤

所有数据恢复的基础都在于备份,必须要有完整的备份,否则恢复无从谈起

误操作导致的数据库破坏需要使用增量恢复的方法进行恢复数据库,具体步骤如下

1、查看备份与binlog文件

2、刷新并备份binlog文件

mysqladmin -uroot -pmysql123 -S /data/mysql.sockflush-logs

3、将binlog文件恢复成sql语句

mysqlbinlog --no-defaults mysql-bin.000061 mysql-bin.000062 >bin.sql

4、将其中误操作的语句删除(就是drop的动作)

5、解压全备文件,恢复全备文件

gzip -d mysql_backup_2016-10-12.sql.gz

mysql -uroot -pmysql123 -S/data/3306/mysql.sock < mysql_backup_2016-10-12.sql

如果有对表的操作,恢复数据时需要接表名

6、恢复误操作前的binlog文件记录的sql语句

mysql -uroot -pmysql123 -S/data/3306/mysql.sock < bin.sql

最后登陆数据库,查看数据是否恢复成功,如果有确定的误操作时间,就直接恢复这段时间的数据即可

9、列举一个实际生产的例子,网站访问速度慢是因为数据库访问慢导致的

问题情况描述:

突然有一天,有同事反应,网站访问速度很慢,有时候会出现打不开网站的情况,刷新等待好长时间后又正常打开

解决步骤:

登陆数据库执行show full processlist 看到有很多相同的查询动作且征对同一张表,因此确定网站打不开的原因是这个,故将此IP禁止访问。日常工作中避免此类问题发生解决方法如下:可以将数据库读写分离;安装数据缓存服务器,尽量将大部分的请求不直接对接数据库;

10、一个shell 脚本手工可以执行,放入定时任务后不能执行,可能的原因?

手工可以执行,表明脚本本身不存在逻辑上的问题,可能原因有以下几点

1:定时任务书写有错误导致,执行的脚本没有写绝对路径,找不到脚本

2:环境变量问题导致

11、利用shell开发rsync服务启动、停止脚本,并通过chkconfig 进行开关机管理

[root@mysql-1 download]# vi RSstart.sh

#!/bin/sh

##create by mingongge at 2017-01-10

. /etc/init.d/functions

case "$1" in

start)

rsync --daemon

if [ $? -eq 0 ];then

action "rsync is started" /bin/true

else

action "rsync is started" /bin/false

fi

;;

stop)

pkill rsync

sleep 2

if [ `ps -ef|grep rsync|grep -v grep |wc -l` -eq 0 ];then

action "rsync is stoped " /bin/true

else

action "rsync is stoped " /bin/false

fi

;;

restart)

pkill rsync

sleep 2

if [ `ps -ef|grep rsync|grep -v grep |wc -l` -eq 0 ];then

rsync --daemon

if [ $? -eq 0 ];then

action "rsync is restarted" /bin/true

fi

fi

;;

*)

echo "USAGE :{start|stop|restart}"

;;

esac

“RSstart.sh" [New] 36L, 731C written

[root@mysql-1 download]# chmod +x RSstart.sh

[root@mysql-1 download]# sh RSstart.sh

USAGE :{start|stop|restart}

[root@mysql-1 download]# sh RSstart.sh  start

rsync is started                                           [  OK  ]

[root@mysql-1 download]# ps -ef|grep rsync

root       1088      1  0 Jan09 ?        00:00:00 rsync --daemon

root       3527   2869  0 03:54 pts/0    00:00:00 grep rsync

[root@mysql-1 download]# sh RSstart.sh  stop

rsync is stoped                                            [  OK  ]

[root@mysql-1 download]# ps -ef|grep rsync

root       3540   2869  0 03:54 pts/0    00:00:00 grep rsync

[root@mysql-1 download]# sh RSstart.sh  start

rsync is started                                           [  OK  ]

[root@mysql-1 download]# sh RSstart.sh  restart

rsync is restarted                                         [  OK  ]

[root@mysql-1 download]# ps -ef|grep rsync

root       3558      1  0 03:54 ?        00:00:00 rsync --daemon

root       3564   2869  0 03:55 pts/0    00:00:00 grep rsync

配置开关机管理

然后在脚本最前面加上以下内容

# chkconfig: 2345 21 99

# description: chkconfig rsync service

具体自己测试下,也有可能这个启动,关闭序号有冲突,需要修改

12、请描述OSI7层模型各层名字及功能,并举例在不同层对应的协议

第一层:物理层,利用传输介质为数据提供物理连接, 对应的协议:ARP

第二层:数据链路层:建立和管理各节点间的链接链路  对应的协议:PPTP、CDP

第三层:网络层,是控制数据链路层与上传输层之间的信息转发、建立与维持对应的协议:IP、路由协议

第四层:传输层,提供会话传输服务,确保数据正确传送对应的协议:TCP UDP

第五层:会话层,提供建立会话管理,支持数据交换

第六层:表示层,处理数据(数据格式、编码、加密等),按一定的格式传送至会话层

第七层:应用层,为用户提供各类应用服务(文件、打印、邮件等服务)对应协议:HTTP、FTP、SMTP、POP3

13、linux系统环境下如何查看系统运行了多长时间

[root@mysql-1 download]#uptime

02:05:22 up 2:32,  2 users,  load average: 0.00, 0.00, 0.00

[root@mysql-1 download]#top

top -02:07:34 up  2:34,  2 users, load average: 0.00, 0.00, 0.00

Tasks:  73total,   1 running,  72 sleeping,  0 stopped,   0 zombie

Cpu(s): 0.0%us,  0.0%sy,  0.0%ni,100.0%id,  0.0%wa, 0.0%hi,  0.0%si,  0.0%st

Mem:   486284k total,  174664kused,  311620k free,   6424k buffers

Swap: 1048568k total,   0kused,  1048568k free,    63548k cached

02:05:22 up  2:32, 2 users,  load average: 0.00,0.00, 0.00

服务器运行多长时间  登陆用户数   上一分钟、5分钟、15分钟的负载

14、linux系统中添加路由的方法

主机路由

route add -host 192.168.197.100 dev eth0

网关路由

route add default gw 192.168.197.1

网络路由

route ad -net 192.168.1.0 netmask 255.255.255.0 deveth1

route ad -net 192.168.1.0 netmask 255.255.255.0 gw192.168.197.1

15、已知test.txt文件内容如下,请取出文件的5-15行内容

[root@i ~]# cat test.txt

1

2

3

4

5bbb

6xxxxxxxxxxx

7123i4i44

8

9

10

11

12

13ffffff

14fffff

15bbbbbb

16

17nnnnnn

方法一:[root@i ~]# grep 15bbbbbb -B 10 test.txt      

5bbb

6xxxxxxxxxxx

7123i4i44

8

9

10

11

12

13ffffff

14fffff

15bbbbbb

方法二:[root@i ~]# sed -n '5,15p' test.txt 

5bbb

6xxxxxxxxxxx

7123i4i44

8

9

10

11

12

13ffffff

14fffff

15bbbbbb

方法三:[root@i~]# awk '{if(NR<16 && NR>4) print $1}' test.txt 

5bbb

6xxxxxxxxxxx

7123i4i44

8

9

10

11

12

13ffffff

14fffff

15bbbbbb

/var/log/messages日志出现kernel:nf_conntrack:tablefull,dropping packet,请问是什么原因导致的,如何解决?

此报错为iptables报错信息,连接跟踪表已满,开始丢包,可能的原因是由于频繁的连接、关闭,或者网络的一些TCP的连接导致的

解决方法:

1、加大跟踪表的大小

2、禁用一些不必跟踪的连接状态

3、禁用模块 ip_vs nf_conntect

2

linux系统nginx与Php环境,发现PHP-FPM进程高,请说出可能的原因以及如何解决

1:php的插件程序与现有的PHP版本存在不兼容情况,解决方法从php.ini中禁止相关插件

2:软件本身存在问题,需要开发协同运维一同处理,查找原因

3:php程序存在死循环现象,使用服务器负载过高,解决方法使用top命令查看

3

磁盘报错:nospace left on device,但是df-h查看空间没有满,为什么?

原因:系统inode满了,因为所有的文件的文件名信息都是存放在inode里面的,文件内容是存放在block里面

可以使用df -i 来查看inode的使用情况

[root@mysql-1 download]# df -i

Filesystem     Inodes  IUsed   IFree IUse% Mounted on

/dev/sda2     1234576 138303 1096273   12% /

tmpfs           60785      1   60784   1% /dev/shm

/dev/sda1       51200     38   51162   1% /boot

4

 磁盘空间满了,删除一部分nginx日志后,但是磁盘空间还是满的,为什么?

删除的日志信息,一部分可能还是被进程调用,因此,需要重启nginx服务来释放进程;或者实际生产环境中使用>/log/access.log清空文件

5

查看apache进程数

perfork模式

ps -ef|grep http|grep -v grep|wc -l

worker模式

pstree -a|grep httpd|wc -l

6

提取文件test.log中FAILD与SUCCESSFUL的字符但不包括DONE的行,然后以:为隔符,提取第三列

[root@mysql-1]# cat test.log

FAILD:SUCCESSFUL:DONE:CRITICAL

FAILD:SUCCESSFUL:NO:GOOD

FAILD:NO:DO:QINGYUN

SUCCESSFUL:DONE:CRITICAL::CRITICAL

方法一:

[root@mysql-1]# egrep "FAILD|SUCCESSFUL"test.log |grep -v DONE|awk -F ':' '{print $3}'

NO

DO

方法二:

[root@mysql-1]# egrep "FAILD|SUCCESSFUL"test.log |grep -v DONE|cut -d: -f3

NO

DO

7

公司机房的服务器接近254台了,请你设计一个解决方案,如何划分网段,并实现业务平滑迁移。

第一种方案:变长子网掩码的方法,加大IP地址的可使用范围,全网分发/etc/hosts文件

第二种方案:增加核心交换机,在核心交换机划分VLAN,将新增的服务器加入新的VLAN中,全网分发/etc/hosts文件

8

Nginx反向代理如何实现代理RS节点上的不同虚拟主机,请说出原理和配置方法或思路。

客户端向反向代理发送请求,反向代理按一定的规则转发至目标服务器,并将返回的内容返回给客户端,可分为以下两种:

配置内部不同服务器转发:

upstream app1 {

server 192.168.1.10:80 weight=5;

server 192.168.1.11:80 weight=5;

}

upstream app2 {

server 192.168.1.20:80 weight=5;

server 192.168.1.21:80 weight=5;

}

配置server

server{

listern 80;

server_name app.abc.com

}

配置匹配转发规则

location /app1/ {

proxy_pass http://example.com/app1;

proxy_set_header Host $host;

}

location/app2/ {

proxy_passhttp://example.com/app2;

proxy_set_header Host $host;

}

做为负载均衡

配置负载均衡服务器池,也就是调度规则

upstream test_servers {

server 192.168.1.2:80 weight=5;

server 192.168.1.4:80 weight=5;

server 192.168.1.6:82 weight=15;

}

然后配置server标签,

server {

listen 80;

server_name www.abc.com;

proxy_pass http://test_servers;

proxy_set_header Host $host

}

配置完成后,重新加载nginx服务

9

说出netstat -an命令结果中最后一列status对应的不同网络连接状态含义

[root@ ~]# netstat -an

Active Internet connections (servers andestablished)

Proto Recv-Q Send-Q Local Address               Foreign Address         State

tcp       0      0 0.0.0.0:22                  0.0.0.0:*             LISTEN

tcp       0      0 139.24.65.45:54296       10.11.68.13:80           ESTABLISHED

tcp       0     52 39.24.65.145:22          36.32.8.85:546           ESTABLISHED

tcp       0      0 139.24.165.45:586       10.11.8.13:80             CLOSE_WAIT

listen              服务启动后首先处于的状态(监听状态)

established    建立连接,表示建立连接的两端可以正常通信了

close_wait     对方主动关闭连接或网络异常而中断,因此状态会变成

time_wait       主动断开连接,收到对方确认后的状态,相当于释放资源,可以设置些种状态的参数,也就是主动断开后,下一次再连接的时间间隔

syn_sent         请求连接的状态,需要访问其它机器时首先发出的同步信号

10

binlog是什么?binlog记录的是什么?有几种模式及优缺点,企业中选择哪种模式做同步?

 bInlog:是用于记录所有更新了数据的操作语句,语句以事件的形式保存,它描述数据的更改过程

作用:用于实时备份数据,数据库的主从复制

log_bin 打开记录binlog功能

binlog的查看

mysqlbinlog /home/mysql/binlog/binlog.000003

binlog的删除:可分为自动与手动删除

自动删除

能过binlog参数expire_logs_days来实现

show binary logs;

show variables like "expire_logs_days;"

set gloable expire_logs_days=3;

手工删除

reset master   删除主的binlog

reset slave    删除从的中继日志

三种模式:

Row level模式 :日志会记录每一行数据被修改的形式,然后在从端对相同的数据进行修改

优点:可以不记录执行SQL语句上下文相关的信息,只记录哪一条数据被修改,修改成什么样了

缺点:所有执行的语句都当记录到日志文件中,而且都会以每行记录的修改来记录,会产生大量的日志内容

statement模式:每一条修改数据的SQL都会记录master的bin-log中,slave在复制的时候SQL进程会解析成和原来master端执行过的相同的SQL来执行

优点:解决了上row level模式的缺点,不需要记录每一行数据的变化,减少日志量,可以得高性能

缺点:由于记录的是执行语句,在此模式下会有主从无法复制的问题出现

mixed自动模式:MYSQL会根据执行的每一条具体SQL语句来区分对待记录的日志格式,

企业使用场景:

1、如果不会用到mysql特殊的功能,基本都是默认的模式statement模式

2、如果会到mysql的一些特殊功能,基本都是会使用row level模式

11

 请详细描述http协议原理

http协议:是客户端与服务端之间通信传输数据的基础,HTTP协议是基于TCP/IP协议之上的协议

原理包括四个过程:

连接:浏览器与服务器建立连接,打开一个socket的虚拟文件,表明连接建立成功

请求:浏览器通过socket向服务器提交请求(一般是GET或POST请示命令)

应答:浏览器请求提交后,通过HTTP协议传送给服务器,服务器收到后进行处理将结果又通过HTTP回传给客户端,从而在客户端显示出所请求的页面

关闭连接:当应答结束后,浏览器与服务器之间就断开连接

12

请详细描述MySQL主从复制原理。

 原理:主库开启binlog功能并授权从库连接主库同步的用户权限 ,将数据库的修改或变化生成bin-log日志,从库通过change mster的语句得到主库的相关信息,从库开启slave并连接主加进行相关验证,验证通过后,主库的IO线程根据从库的请求将相关位置点信息,与最新的blnlog信息发送给从库的IO线程,从库的IO线程将SQL语句的信息放在relay-log中,最后从库的SQL线程将relay-log中的SQL语句应用到从库中,实现主库与从库之间的数据同步,然后不断重新上述动作

13

用一条命令将除了sshd、crond、network、rsyslog几个服务之外的服务全部关闭(无需开机自动)

方法一:

[root@centos6~]# for name in `chkconfig --list|grep 3:on|awk '{print $1}'|grep -Ev "sshd|crond|rsyslog|network"`;dochkconfig $name off;done

[root@centos6~]# chkconfig --list|grep 3:on

crond       0:off  1:off   2:on    3:on   4:on    5:on    6:off

network     0:off  1:off   2:on    3:on   4:on    5:on    6:off

rsyslog     0:off  1:off   2:on    3:on   4:on    5:on    6:off

sshd    0:off  1:off   2:on    3:on   4:on    5:on    6:off

方法二:

[root@centos6 ~]# chkconfig--list|grep 3:on|awk '{print $1}'|grep -Ev"sshd|crond|rsyslog|network"|sed -r "s#(.*)#chkconfig \1off#g"|bash

[root@centos6~]# chkconfig --list|grep 3:on

crond       0:off  1:off   2:on    3:on   4:on    5:on    6:off

network     0:off  1:off   2:on    3:on   4:on    5:on    6:off

rsyslog     0:off  1:off   2:on    3:on   4:on    5:on    6:off

sshd        0:off  1:off   2:on    3:on   4:on    5:on    6:off

14

说明系统/etc/inittab中各个启动级别的含意

[root@centos6~]# tail /etc/inittab

#Default runlevel. The runlevels used are:

#   0 - halt (Do NOT set initdefault to this) 关机

#   1 - Single user mode        单用户模式

#   2 - Multiuser, without NFS (The same as 3,if you do not have networking)                          多用户,没有NFS

#   3 - Full multiuser mode  完整多用户模式

#   4 - unused

#   5 - X11                            桌面模式

#   6 - reboot (Do NOT set initdefault to this) 重启

#

id:3:initdefault:   默认

01

写一个sed命令,修改/tmp/input.txt文件的内容,要求:(1) 删除所有空行;(2) 一行中,如果包含"11111",则在"11111"前面插入"AAA",在"11111"后面插入"BBB",比如:将内容为0000111112222的一行改为:0000AAA11111BBB2222

[root@~]# cat -n /tmp/input.txt

1  000011111222

2

3  000011111222222

4  11111000000222

5

6

7  111111111111122222222222

8  2211111111

9  112222222

10  1122

11

删除所有空行命令

[root@~]# sed '/^$/d' /tmp/input.txt

000011111222

000011111222222

11111000000222

111111111111122222222222

2211111111

112222222

1122

插入指定的字符

[root@~]# sed 's#\(11111\)#AAA\1BBB#g' /tmp/input.txt

0000AAA11111BBB222

0000AAA11111BBB222222

AAA11111BBB000000222

AAA11111BBBAAA11111BBB11122222222222

22AAA11111BBB111

112222222

1122

02每周一下午三点将/tmp/logs目录下面的后缀为*.log的所有文件rsync同步到备份服务器192.168.1.100中同样的目录下面,crontab配置项该如何写:

00 15 * * 1 rsync -avzP /tmp/logs/*.log root@192.168.1.100:/tmp/logs

03找到/tmp/目录下面的所有名称以"_s1.jpg"结尾的普通文件,如果其修改日期在一天内,则将其打包到/tmp/back.tar.gz文件中

find /tmp -type f -name ".*_sj.jpg" -mtime 1|xarges tar zxf /tmp/back.tar.gz

04写出如何给apache增加virtualhost,让访问http://www.test.com和http://www.test.cn的时候,都打开/var/www/html目录下面的文件:

<VirtualHost *:80>

ServerAdmin admini@abc.com

DocumentRoot "/var/www/html"

ServerName www.test.com

ServerAlias  test.cn

ErrorLog "logs/bbs-error_log"

CustomLog "logs/bbs-access_log" common

</VirtualHost>

06配置mysql服务器的时候,配置了auto_increment_increment=3,请问这里的3意味着什么?

auto_increment是用于主键自动增长的,从3开始增长,3表示自增的起始值

07用一条命令显示本机eth0网卡的IP地址,不显示其它字符

方法一:

[root@apache ~]# ifconfig eth0|grep "inet addr"|awk -F '[ :]+' '{print $4}'

192.168.1.22

方法二:

[root@apache ~]# ifconfig eth0|awk -F '[ :]+' 'NR==2 {print $4}'

192.168.1.22

方法三:

[root@apache ~]# ifconfig eth0|sed -n '2p'|sed 's#^.*addr:##g'|sed 's# Bc.*$##g'

192.168.1.22

方法四:

[root@apache ~]# ifconfig eth0|sed -n '2p'|sed -r 's#^.*addr:(.*)  Bc.*$#\1#g'

192.168.1.22

08请详细说明keepalived的故障切换工作原理

这种故障切换是通过VRRP协议来实现的,主节点会按一定的时间间隔发送心跳信息的广播包,告诉备节点自己的存活状态信息,当主节点发生故障时,备节点在一段时间内就收到广播包,从而判断主节点出现故障,因此会调用自身的接管程序来接管主节点的IP资源及服务,当主节点恢复时,备节点会主动释放资源,恢复到接管前的状态,从而来实现主备故障切换

09写出一个curl命令,访问指定服务器61.135.169.121上的如下URL:http://www.baidu.com/s?wd=test,访问的超时时间是20秒:

curl --connect-timeout 20 http://61.135.169.121/s?wd=test

10用netstat命令配合其他shell命令,按照源IP统计所有到80端口的ESTABLISHED状态链接的个数,输出结果类似(第一列为连接数,第二列为IP):

[root@~]# netstat -an|grep ESTABLISHED

tcp        0     52 139.224.199.85:22           101.47.33.86:51763          ESTABLISHED

tcp        0      0 139.224.199.85:45368        106.11.68.13:80             ESTABLISHED

[root@ ~]# netstat -an|grep ESTABLISHED|grep ":80"

tcp        0      0 139.224.199.85:45368        106.11.68.13:80             ESTABLISHED

[root@ ~]# netstat -an|grep ESTABLISHED|grep ":80"|awk 'BEGIN{FS="[[:space:]:]+"}{print $4}'

139.224.199.85

说明:FS 是字段分隔符

如果需要进行整理并排序的话,完整命令如下

[root@ ~]# netstat -an|grep ESTABLISHED|grep ":80"|awk 'BEGIN{FS="[[:space:]:]+"}{print $4}'|sort|uniq -c|sort -nr

Google招聘Linux工程师的20个面试问题及答案

1.如何查看当前的Linux服务器的运行级别?

答: 'who -r' 和 'runlevel' 命令可以用来查看当前的Linux服务器的运行级别。

2.如何查看Linux的默认网关?

答: 用 "route -n" 和 "netstat -nr" 命令,我们可以查看默认网关。

除了默认的网关信息,这两个命令还可以显示当前的路由表。

3.如何在Linux上重建初始化内存盘镜像文件?

答: 在CentOS 5.X / RHEL 5.X中,可以用mkinitrd命令来创建初始化内存盘文件。

举例如下:

如果你想要给特定的内核版本创建初始化内存盘,你就用所需的内核名替换掉 'uname -r' 。

在CentOS 6.X / RHEL 6.X中,则用dracut命令来创建初始化内存盘文件,举例如下:

给特定的内核版本重建初始化内存盘文件则使用以下命令:

4.cpio命令是什么?

答: cpio就是复制入和复制出的意思。

cpio可以向一个归档文件(或单个文件)复制文件、列表,还可以从中提取文件。

5.patch命令是什么?如何使用?

答: 顾名思义,patch命令就是用来将修改(或补丁)写进文本文件里。

patch命令通常是接收diff的输出并把文件的旧版本转换为新版本。

举个例子,Linux内核源代码由百万行代码文件构成,所以无论何时,任何代码贡献者贡献出代码,只需发送改动的部分而不是整个源代码,然后接收者用patch命令将改动写进原始的源代码里。

创建一个diff文件给patch使用,

旧文件和新文件要么都是单个的文件要么都是包含文件的目录,-r参数支持目录树递归。

一旦diff文件创建好,我们就能在旧的文件上打上补丁,把它变成新文件:

6.aspell有什么用 ?

答: 顾名思义,aspell就是Linux操作系统上的一款交互式拼写检查器。

aspell命令继任了更早的一个名为ispell的程序,并且作为一款免费替代品 ,最重要的是它非常好用。

当aspell程序主要被其它一些需要拼写检查能力的程序所使用的时候,在命令行中作为一个独立运行的工具的它也能十分有效。

7.如何从命令行查看域SPF记录?

答: 我们可以用dig命令来查看域SPF记录。举例如下:

8.如何识别Linux系统中指定文件(/etc/fstab)的关联包?

答:

以上命令能列出提供"/etc/fstab"这个文件的包。

9.哪条命令用来查看bond0的状态?

答:

10.Linux系统中的/proc文件系统有什么用?

答: /proc文件系统是一个基于内存的文件系统,其维护着关于当前正在运行的内核状态信息,其中包括CPU、内存、分区划分、I/O地址、直接内存访问通道和正在运行的进程。

这个文件系统所代表的并不是各种实际存储信息的文件,它们指向的是内存里的信息。/proc文件系统是由系统自动维护的。

11.如何在/usr目录下找出大小超过10MB的文件?

答:

12.如何在/home目录下找出120天之前被修改过的文件?

答:

13.如何在/var目录下找出90天之内未被访问过的文件?

答:

14.在整个目录树下查找文件"core",如发现则无需提示直接删除它们。

答:

15.strings命令有什么作用?

答: strings命令用来提取和显示非文本文件中的文本字符串。

当用来分析你系统上莫名其妙出现的二进制程序时,可以从中找到可疑的文件访问,对于追查入侵有用处。

16.tee 过滤器有什么作用 ?

答: tee 过滤器用来向多个目标发送输出内容。

如果用于管道的话,它可以将输出复制一份到一个文件,并复制另外一份到屏幕上(或一些其它程序)。

在以上例子中,从ll输出可以捕获到 /tmp/ll.out 文件中,并且同样在屏幕上显示了出来。

17.export PS1 = "$LOGNAME@hostname:\$PWD:" 这条命令是在做什么?

答: 这条export命令会更改登录提示符来显示用户名、本机名和当前工作目录。

18.ll | awk '{print $3,"owns",$9}' 这条命令是在做什么?

答: 这条ll命令会显示这些文件的文件名和它们的拥有者。

19.Linux中的at命令有什么用?

答: at命令用来安排一个程序在未来的做一次一次性执行。

所有提交的任务都被放在 /var/spool/at 目录下并且到了执行时间的时候通过atd守护进程来执行。

20.linux中lspci命令的作用是什么?

答: lspci命令用来显示你的系统上PCI总线和附加设备的信息。

指定-v,-vv或-vvv来获取越来越详细的输出,加上-r参数的话,命令的输出则会更具有易读性。

企业常见系统运维面试题相关推荐

  1. 6道常见Linux运维面试题讲解!

    学习完Linux技术之后,接下来我们就需要面临找工作的事情.谈到找工作,很多小伙伴肯定好奇,面试官会问些什么问题?本为为大家汇总了一些常见Linux运维面试题,希望能够给大家带来帮助,祝你们面试通过! ...

  2. linux系统运维面试题大全(137道题)

    linux系统运维面试题大全 1. 如何看当前Linux系统有几颗物理CPU和每颗CPU的核数? 查看物理cup: cat /proc/cpuinfo|grep -c 'physical id' 查看 ...

  3. 常见Linux运维面试题分享

    学习Linux进入工作岗位的过程必定是要经过面试.与其他技术岗位相同.Linux运维也要经理人力面试和技术面试.对于初级运维工程师面试题目相对也很简单,但是同样有很多朋友在简单的问题上犯错.下面为大家 ...

  4. linux系统运维面试题

    标签:linux系统运维面试题 1.     简述常用高可用技术 解答: Keepalived:Keepalived是一个保证集群高可用的服务软件,用来防止单点故障,使用VRRP协议实现.在maste ...

  5. oracle运维面试试题,最新系统运维面试题(AIXLINUXORACLE)试题

    最新系统运维面试题(AIXLINUXORACLE)试题 四班学员考试试卷 注意事项: 1.共计八大类题,道小题,满分180分: 2.考试时间为3小时. 一.选择题(共10题,每题2分,共计20分) 1 ...

  6. 系统运维:北京某金融公司中级系统运维笔试题-2020年9月份

    简要列出服务器日常巡检主要工作内容 - 服务器物理硬件巡检- 操作系统的磁盘,内存,cpu,硬盘读写情况的使用情况- 服务器系统日志- 运行和服务器上应用是否可用- 应用系统日志检查- 数据库运行状态 ...

  7. oracle和linux面试题,系统运维面试题(AIXLINUXORACLE)试题

    注意事项: 1.共计八大类题,道小题,满分180分: 2.考试时间为3小时. 一.选择题(共10题,每题2分,共计20分) 1.下面哪个命令可以用来验证操作系统是否升级成功? A.oslevel B. ...

  8. 浅析企业ERP系统运维体系的建立

     浅析企业ERP系统运维体系的建立 1 ERP系统的运维简介  ERP系统的运维是指ERP系统上线后的运行和维护保障.ERP系统上线既是系统建设的结束,同时又是一个新的起点,需要付出更多的时间和精 ...

  9. 墨天轮社区专属福利:与作者互动问答,民工哥全新力作《Linux系统运维指南:从入门到企业实战》送上!...

    墨墨导读:最近人民邮电出版社出版了新书<Linux系统运维指南:从入门到企业实战>,本书是同名经典畅销书的升级版,基于MySQL 5.7版本进行了内容改写,同时穿插介绍了MySQL 8.0 ...

最新文章

  1. 关于java中的各种流
  2. linux mysql cpu 高,Linux系统中关于Mysql数据库导致CPU很高的问题解决
  3. Android调用WebService
  4. * 图形例子,函数实现体会地址传递
  5. python线程监控_Python实现线程状态监测简单示例
  6. shouji android输入法,安卓手机主流输入法对比
  7. 一步步编写操作系统 76 用汇编语言编写字符打印函数
  8. java vlan端口配置_HCIP之VLAN的配置
  9. JavaScript 基础--- (正则表达式 / 事件监听与绑定)
  10. 自动化运维之 - puppet 服务端安装
  11. 编译安装PCL点云库,Kinect2驱动,乐视Astra相机驱动
  12. 腾讯手游助手选择不了服务器失败,腾讯手游助手启动模拟器失败的解决方法
  13. 静态路由使用下一跳和出接口的区别,我猜你不知道这一点!
  14. 简单介绍一下CGAN
  15. apache与php乱码
  16. string函数的模拟实现
  17. 电压电流功率放大倍数db
  18. RTSP 和 RTMP原理 通过ffmpeg实现将本地摄像头推流到RTSP服务器
  19. matlab hello world,hello world
  20. 那些人生最重要的转折点

热门文章

  1. 人体肺活量测试软件,如何判断自己的肺活量大小 盘点测试肺活量四大招
  2. linux 更改网络速度,教你一招 提高Linux操作系统网速方法(转)
  3. office打开服务器文件提示内存不足,打开Excel2016提示内存或磁盘空间不足的解决方法...
  4. 简约淡雅山脉主题商务PPT模板
  5. 音视频系列:FFmpeg和NDK在Centos7上交叉编译
  6. 织梦手机版list.php,织梦手机静态页生成插件
  7. vs2019 无法导入 Web 服务/架构。对象“Settings”已包含一个不是 WebServiceUrl 类型的属性
  8. 聊天系统设计与实现服务器代码,网络聊天工具系统的设计与实现.doc
  9. 弹出启动windows安全中心服务器,如何解决Win7系统无法启动Windows安全中心的问题?...
  10. mac pecl方式安装predis 扩展