运维岗位学习历程

依然范特西╮ 提交于 2020-01-13 01:20:20

面经链接:https://www.nowcoder.com/discuss/142474

运维岗位要求的知识面比较广,操作系统、计算机网络、linux、数据库、数据结构、常见的运维工具等等

1. 操作系统

2. 计算机网络

3. linux

4. 数据库

5. 数据结构

6. 算法设计与分析

7. 常见的运维工具

1. 系统监控工具

htop命令==》安装:

  1. 默认支持图像界面的鼠标操作;
  2. 可以横向或纵向滚动浏览进程列表,以便看到所有的进程和完成的命令行;
  3. 可以直接通过F9杀死进程。
$yum -u install htop  (需要epel)

2. 多功能系统信息统计工具

dstat命令==》查看支持插件$ dstat --list

# 常用参数

  • -l: 显示负载均衡统计量 相当于 uptime

  • -m: 显示内存使用率(used,buffer,cache,free)

  • -r: 显示I/0统计(read, write)

  • -s: 显示交换分区使用情况(used, free)

  • -t: 显示当前时间

  • --fs: 显示文件系统统计数据(files,inodes)

  • --socket:显示网络统计数据(tot,tcp,udp,raw,frg)

  • --tcp:显示常用的TCP统计(lis,act,syn,tim,clo)

  • --udp: 显示监听的UDP接口及其当前用量的一些动态数据(lis,act)

常用的插件

  • --disk-util : 显示每块磁盘的util

  • --proc-count:显示正在运行的程序数量

  • --top-bio:显示块I/O最大的进程

  • --top-cpu:显示CPU占用最大的进程

  • --top-mem:显示占用最多内存的进程

  • --output:输出到指定的csv文件中

3. 资源监控命令

glances命令

支持服务器/客户端的模式,实现 远程监控。监控端口时61209

被监控端:glances -s   监控端:glances -c ip

4. 批量管理主机工具

ansible

5. 网络检测工具

ethtoll命令

# 查看网卡中 接收模块RX、发送模块TX和Autonegotiate模块的状态:启动on 或 停用off 部分网卡驱动不支持
ethtool -a|--show-pause devname
# 修改网卡中 接收模块RX、发送模块TX和Autonegotiate模块的状态。
ethtool -A|--pause devname [autoneg on|off] [rx on|off] [tx on|off]
# 显示网卡驱动信息,如驱动名称、版本等
ethtool -i|--driver devname
# 显示register dump信息
ethtool -d|--register-dump devname [raw on|off] [hex on|off] [file name]
# 显示EEPROM dump信息
ethtool -e|--eeprom-dump devname [raw on|off] [offset N] [length N]
# 修改网卡EEPROM byte。
ethtool -E|--change-eeprom devname [magic N] [offset N] [length N] [value N]
# 显示网卡Offload参数状态
ethtool -k|--show-features|--show-offload devname
# 修改网卡Offload参数状态
ethtool -K|--features|--offload devname feature on|off ...
# 用于区别不同ethX对应网卡的物理位置,常用的方法是使网卡port上的led不断的闪;N指示了网卡闪的持续时间,以秒为单位。
ethtool -p|--identify devname [N]
# 修改网卡的部分配置
ethtool -s devname [speed N] [duplex half|full] [port tp|aui|bnc|mii] [mdix auto|on|off] [autoneg on|off] [advertise N]
           [phyad N] [xcvr internal|external] [wol p|u|m|b|a|g|s|d...]  [sopass         xx:yy:zz:aa:bb:cc] [msglvl N | msglvl type
              on|off ...]
# 网卡执行自我检测,有两种模式: offline or online
 ethtool -t|--test devname [offline|online|external_lb]

查看机器上网卡速度  ethtool eth0

停止网卡的发送模块TX ethtool -A tx off eth0

查看网卡查用哪一种驱动 $ ethtool -i eth0

强制eth0网卡运行在百兆模式下 ethtool -s eth0 speed 100

iptraf-ng命令

参数 作用
-i iface 网络接口:立即在指定网络接口上开启IP流量监测,interface为all,指监视所有的网络接口
-g 立即开始生产网络接口的概要状态信息
-d iface 网络接口:在指定网络接口上开启监视明细的网络流量信息
-s iface 网络接口:在指定网络接口上立即开始监视TCP和UDP网络流量信息
-z iface 网络接口:在指定网络接口上显示包计数
-l iface 网络接口:在指定网络接口上立即开始监视局域网工作站信息
-t timeout 指定iptraf-ng指令监视的时间,timeout指监视时间的minute数
-B 将标准输出重定向到'/dev/null',关闭标准输入,作为后台程序运行
-L logfile 指定一个文件记录所有命令行的log,默认文件地址是: /var/log/iptraf
-l interval 指定记录log的时间间隔(单位:minute)
-u 允许使用不支持的接口作为以太网设备
-f 清空所有计数器

6. 网络测试工具

ss命令

参数 作用
-H 不显示标题行
-n 不解析服务名称
-r 解析数字地址和端口
-a 显示所有套接字
-l 仅显示监听的套接字
-o 显示计时器信息
-e 显示套接字的信息
-t 仅显示tcp
-u 仅显示udp
-4 仅显示IPv4地址
-6 仅显示IPv6地址

7. 文件打开工具

lsof命令

输出内容详解:

  • COMMAND:进程的名称

  • PID:进程标识符

  • TID:线程标识符

  • USER:进程所有者

  • FD:文件描述符

    • cwd:表示current work directory,应用程序的当前工作目录,这是该应用程序启动的目录。

    • txt:该类型文件是程序代码,如应用程序二进制文件本身或者共享库。

    • lnn:library reference(AIX)

    • er:FD information error(see NAME column)

    • jld:jail directory(FreeBSD)

    • ltx:shared library text(code and data)

    • mxx:hex memory-mapped type number xx

    • m86:DOS Merge mapped file

    • mem:memory-mapped file

    • mmap:memory-mapped device

    • pd:parent directory

    • rtd:root directory

    • v86:VP/ix mapped file

    • 0:表示标准输出

    • 1:表示标准输入

    • 2:表示标准错误

  • TYPE:文件类型,常见的文件类型有以下几种:

    • DIR:表示目录

    • CHR:表示字符类型

    • BLK:块设备类型

    • UNIX:Unix域套接字

    • FIFO:先进先出(FIFO)队列

    • IPv4:网际协议(IP)套接字

  • DEVICE:指定磁盘的名称

  • SIZE/OFF:文件的大小

  • NODE:索引节点(文件在磁盘上的标识)

  • NAME:打开文件的确切名称

参数 作用
-a 使用AND逻辑,合并选项输出内容
-c 列出名称以指定名称开头的进程打开的文件
-d 列出打开指定文件描述符的进程
+d 列出目录下被打开的文件
+D 递归列出目录下被打开的文件
-n 列出使用NFS的文件
-u 列出指定用户打开的文件
-p 列出指定进程号所打开的文件
-i 列出打开的套接字

8. 诊断工具

strace命令

tcpdump命令

运维人员必须熟悉的运维工具汇总

操作系统:Centos,※,Ubuntu,Redhat※,,suse,Freebsd

网站服务:nginx※,,apache※,,lighttpd,php※,,tomcat※,,resin※,

数据   库:MySQL※,,MariaDB,PostgreSQL,Mysql-proxy

DB中间件:maxscale,MyCat,atlas,cobar,amoeba,MySQL-proxy

代理相关:lvs,keepalived,haproxy,nginx,heartbeat,apache,(此行都是※)

网站缓存:squid※,nginx※,varnish

NOSQL库:Redis※,Memcached※,MongoDB※,HBase,Cassandra※,CouchDB,Tyrant※

存储相关:Nfs※,FastDF※S,Moosefs(mfs※,Hadoop※,glusterfs※,lustre

版本管理:svn※,git

监控报警:nagios※,cacti※,zabbix※,munin,hyperic,mrtg,graphite,云监控※

域名解析:bind※,powerdns,dnsmasq※

同步软件:rsync※,inotify※,sersync※,drbd※,csync2,union,lsyncd,scp※

批量管理:ssh+rsync+sersync※,Ansible※,Saltstack※,expect※,puppet※, cfengine

虚拟   化:kvm※,xen※

云计   算:openstack,※docker※,cloudstack,K8S※

内网软件:iptables※,zebra※,iftraf※,ntop※,tc※,iftop

邮件软件:qmail,posfix※,sendmail,zimbra

远程拨号:openvp※,pptp※,openswan※,ipip※

统一认证:openldap※

队列工具:ActiveMQ,RabbitMQ※,Metaq,MemcacheQ,Zeromq

打包发布:mvn※,ants,jenkins,※svn

测试软件:ab,JMeter,Webbench,LoadRunner,http_load,tcpcopy(都是※)

带宽测试:smokeping,iozone

性能测试:dd, fio(IOPS测试),iozone(磁盘测试)

日志相关:rsyslog,Awstats※,flume,storm,ELK(Elasticsearch+Logstash+Kibana)※

搜索软件:Sphinx※,Xapian,Solr※

DB代理:mysql-proxy,amoeba(更多还是程序实现读写分离

无人值守:kickstart,cobbler※

软件安装:rpm,yum※(设计rpm包定制及yum仓库构建)

搜索软件:Sphinx,Xapian(大公司自己开发类似百度的小规模内部搜索引擎)

大数据:HDFS,Hive,Hbase,Zookeeper,Pig,Spark, Mahout,flume,sqoop

开发语言:Shell※,Python※,go※

前端框架:Dojo、jQuery、YUI、ExtJS、MooTools 

Html5、webworker、websocket、webGL、nodejs

MVC框架

实现动态页面 JSP(struct、spring)/PHP/ASP

VPN、隧道

Linux、shell、grep、awk、sed、vi、ps、

提示:

(1)带※的为最近几年用的比较多,也是近年来linux运维的大众。

(2)学习要有舍有得,什么都抓必然短时间都不会精,抓精髓,大众软件(带※)先熟练了,这是基础加提高。
 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!