• 2020-1-08.运维面试题总结



    categories:

    • 面试题目
      -tags:
    • 运维

    Linux查看系统开机时间

    who -b
    system boot  Jan  8 08:47
    who -r
    run-level 5  Jan  8 08:47
    last reboot
    reboot   system boot  5.0.0-37-generic Wed Jan  8 08:47   still running
    reboot   system boot  5.0.0-37-generic Tue Jan  7 08:51 - 20:01  (11:09)
    reboot   system boot  5.0.0-37-generic Mon Jan  6 08:43 - 23:09  (14:25)
    reboot   system boot  5.0.0-37-generic Sun Jan  5 09:21 - 22:31  (13:10)
    reboot   system boot  5.0.0-37-generic Sat Jan  4 11:42 - 22:00  (10:18)
    reboot   system boot  5.0.0-37-generic Fri Jan  3 08:53 - 22:03  (13:10)
    
    wtmp begins Wed Jan  1 18:41:57 2020
    #如果只需要查看最后一次Linux系统启动的时间
    last reboot | head -1
    reboot   system boot  5.0.0-37-generic Wed Jan  8 08:47   still running
    #/proc/uptime
    date -d "`cut -f1 -d. /proc/uptime` seconds ago"
    Wed Jan  8 08:47:07 CST 2020
    
    

    查看占用8000端口的进程

    netstat -lnatup | grep :22
    tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      1264/sshd           
    tcp        0      0 192.168.8.135:22        192.168.8.101:56244     ESTABLISHED 14493/sshd: anyux [ 
    tcp6       0      0 :::22                   :::*                    LISTEN      1264/sshd    
    ss -lnatup | grep :22
    tcp   LISTEN      0       128             0.0.0.0:22              0.0.0.0:*      users:(("sshd",pid=1264,fd=3))                                                 
    tcp   ESTAB       0       0         192.168.8.135:22        192.168.8.101:56244  users:(("sshd",pid=14495,fd=3),("sshd",pid=14493,fd=3))                        
    tcp   LISTEN      0       128                [::]:22                 [::]:*      users:(("sshd",pid=1264,fd=4)) 
    

    查看进程打开了哪些文件

    #搜索被某一进程打开的相关文件
    lsof -p `ps -ef | grep ssh | head -1 | awk '{print $2}'` | head -5
    COMMAND  PID USER   FD   TYPE             DEVICE SIZE/OFF    NODE NAME
    sshd    1264 root  cwd    DIR               8,21     4096       2 /
    sshd    1264 root  rtd    DIR               8,21     4096       2 /
    sshd    1264 root  txt    REG               8,21   786856 3803186 /usr/sbin/sshd
    sshd    1264 root  mem    REG               8,21    47568 2889896 /lib/x86_64-linux-gnu/libnss_files-2.27.so
    
    #查看被打开某一文件的相关进程信息
    root@anyux:~# lsof /proc/ | head -5
    COMMAND     PID            USER   FD   TYPE DEVICE SIZE/OFF       NODE NAME
    systemd       1            root   11r   REG    0,4        0      15476 /proc/1/mountinfo
    systemd       1            root   13r   REG    0,4        0 4026532071 /proc/swaps
    systemd-j   315            root   10r   REG    0,4        0      14917 /proc/sys/kernel/hostname
    systemd-r   814 systemd-resolve    7r   REG    0,4        0      14917 /proc/sys/kernel/hostname
    
    #查看网络连接
    root@anyux:~# lsof -i:22
    COMMAND   PID  USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
    sshd     1264  root    3u  IPv4  35389      0t0  TCP *:ssh (LISTEN)
    sshd     1264  root    4u  IPv6  35391      0t0  TCP *:ssh (LISTEN)
    sshd    14493  root    3u  IPv4 179110      0t0  TCP anyux:ssh->shz:56244 (ESTABLISHED)
    sshd    14495 anyux    3u  IPv4 179110      0t0  TCP anyux:ssh->shz:56244 (ESTABLISHED)
    
     #查看活动的连接:
    lsof -i @192.168.8.101
    COMMAND   PID  USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
    sshd    14493  root    3u  IPv4 179110      0t0  TCP anyux:ssh->shz:56244 (ESTABLISHED)
    sshd    14495 anyux    3u  IPv4 179110      0t0  TCP anyux:ssh->shz:56244 (ESTABLISHED)
    #查看某个用户的打开的文件
    lsof -u root | head -5
    COMMAND     PID USER   FD      TYPE             DEVICE  SIZE/OFF       NODE NAME
    systemd       1 root  cwd       DIR               8,21      4096          2 /
    systemd       1 root  rtd       DIR               8,21      4096          2 /
    systemd       1 root  txt       REG               8,21   1595792    2891189 /lib/systemd/systemd
    systemd       1 root  mem       REG               8,21   1700792    2889869 /lib/x86_64-linux-gnu/libm-2.27.so
    #查看非某个用户的打开的文件
    lsof -u ^root | head -5
    
    
    

    查看用户今天 登录了多长时间

    #查看当前登录用户信息
    who /var/log/wtmp | head -5
    anyux    pts/0        2020-01-01 18:41 (192.168.8.101)
    anyux    pts/0        2020-01-01 23:27 (192.168.8.101)
    root     :0           2020-01-03 08:55 (:0)
    root     :0           2020-01-04 11:42 (:0)
    anyux    pts/1        2020-01-04 21:01 (192.168.8.101)
    #查看用户登录历史
    last anyux | head -5
    anyux    pts/0        192.168.8.101    Thu Jan  9 09:10    gone - no logout
    anyux    pts/4        192.168.8.101    Wed Jan  8 20:36 - 22:15  (01:38)
    anyux    pts/0        192.168.8.101    Wed Jan  8 20:17 - 20:36  (00:19)
    anyux    pts/0        192.168.8.101    Wed Jan  8 14:16 - 16:54  (02:38)
    anyux    pts/0        192.168.8.101    Mon Jan  6 18:06 - down   (05:02)
    #查看所有用户最近一次登录历史
    #命令将读取/var/log/lastlog文件;用户排列顺序按照/etc/passwd中的顺序
    lastlog | head -5
    Username         Port     From             Latest
    root                                       **Never logged in**
    daemon                                     **Never logged in**
    bin                                        **Never logged in**
    sys                                        **Never logged in**
    #查看用户anyux的登陆历史
    lastlog -u anyux | head -5
    Username         Port     From             Latest
    anyux            pts/0    192.168.8.101    四 1月  9 09:10:27 +0800 2020
    #查看最近1天之内的登陆历史
    lastlog -t 1
    Username         Port     From             Latest
    anyux            pts/0    192.168.8.101    四 1月  9 09:10:27 +0800 2020
    #根据/var/log/wtmp文件中的登陆和退出时间报告用户连接的时间(小时),默认输出报告总时间
    #-p:显示每个用户的连接时间
    #-d:显示每天的连接时间
    #-y:显示年份,和-d配合使用
    ac -p
    	root                                76.27
    	anyux                               17.82
    	total       94.09
    ac -d
    Jan  1	total        4.99
    Jan  2	total        2.68
    Jan  3	total       13.14
    Jan  4	total       10.56
    Jan  5	total       13.17
    Jan  6	total       19.46
    Jan  7	total       11.16
    Jan  8	total       18.10
    Today	total        0.84
    ac -y
    		total       94.09
    
    

    查看磁盘压力

    top

    查看%wa,IO等待所占用的CPU时间的百分比,高过30%时IO压力高

    top
    top - 09:34:40 up 47 min,  2 users,  load average: 0.00, 0.07, 0.20
    Tasks: 276 total,   1 running, 227 sleeping,   0 stopped,   1 zombie
    %Cpu(s):  0.2 us,  0.2 sy,  0.4 ni, 99.1 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
    
    

    iostat

    如果 %util 接近 100%,说明产生的I/O请求太多,I/O系统已经满负荷,该磁盘可能存在瓶颈。
    idle小于70% IO压力就较大了,一般读取速度有较多的wait.

    iostat -x 1 1 | grep sd* -A1 |grep -v "loop*"| column -t
    avg-cpu:  %user  %nice  %system  %iowait  %steal  %idle
    6.08      1.75   1.67   0.10     0.00     90.40
    --
    Device    r/s    w/s    rkB/s    wkB/s    rrqm/s  wrqm/s  %rrqm  %wrqm  r_await  w_await  aqu-sz  rareq-sz  wareq-sz  svctm  %util
    --
    sda       1.29   0.01   55.79    0.04     0.05    0.00    3.52   37.50  4.06     11.95    0.00    43.31     6.00      1.04   0.13
    sdb       20.01  5.56   424.68   257.25   0.35    6.30    1.72   53.12  1.04     1.00     0.00    21.22     46.24     0.43   1.10
    

    磁盘压力测试

    time dd if=/dev/zero bs=1M count=2048 of=direct_2G
    

    查看磁盘读写情况

    iostat -d 2 3 | grep sd*
    Device             tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
    sda               1.00        38.37         1.07     186305       5204
    sdb              18.06       288.89       188.41    1402544     914708
    Device             tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
    sda               0.00         0.00         0.00          0          0
    sdb               0.00         0.00         0.00          0          0
    Device             tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
    sda               0.00         0.00         0.00          0          0
    sdb              12.00         0.00        76.00          0        152
    

    占用内存最多的进程

    ps -aux | sort -k4nr | head -n 1
    root      3963  2.3  3.7 1161884 299812 tty2   SLl+ 08:48   1:41 /opt/google/chrome/chrome --no-sandbox
    
    

    占用CPU最多的进程

    ps -aux | sort -k2nr | head -1
    root      6953  0.0  0.0  14588   788 pts/0    S+   10:02   0:00 head -1
    

    创建10000空文件时间

    time touch {1..10000}
    

    获取硬件信息

    dmidecode
    

    获取操作系统信息

    cat /etc/os-release 
    #内核
    uname -a
    

    HTTP协议代码

    401 未授权:登录失败
    403  禁止:禁止执行访问 
    404 找不到 
    500 服务器的内部错误 
    502 网关出错 
    

    POP3

    邮件服务器通过侦听TCP端口110提供POP3服务

    去空行

    egrep -v "#|^$" httpd.conf
    

    模拟登录

    #!/bin/bash
    tname="admin"
    tpasswd="123"
    name=''
    passwd=''
    function login(){
    echo "请输入用户名:"
    read name
    echo "请输入密码:"
    read passwd
    }
    function check(){
     if [ ${tname} == ${name} -a ${tpasswd} == ${passwd} ]; then
       echo "登录成功"
       exit 0
     fi
     main
    }
    function main(){
      login
      check
    }
    main
    

    统计nginx access.log文件中对ip地址去重并统计重复数

    awk '{h[$1]++}END{for(i in h) print i,h[i]}' /var/log/nginx/access.log |sort -nrk2 |head | column -t
    

    防火墙做NAT转发:

    C ->A ->B

    对A的操作
    #开启访问
    echo 1 > /proc/sys/net/ipv4/ip_forward
    #配置
    iptables -t nat -A PREROUTING -p tcp -m tcp --dport 80 -j DNAT --to-destination 192.168.50.4:8080
    iptables -t nat -A POSTROUTING -d 192.168.50.4/32 -p tcp -m tcp --sport 8080 -j SNAT --to-source 192.168.50.3
    iptables -t filter -A INPUT -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT
    #保存
    service iptables save
    #重启
    service iptables restart
    

    tomcat访问慢

    设计到的工具:jstack、jmap、jstat(这三个是jre自带的)wireshark(抓包)等
    操作:检查数据库问题,网络问题,服务器状态
    服务器状态问题:jvm内存(jmpa-heap查看)服务器内存
    io:磁盘读写
    cpu:tomcat进程,jstack导出线程文件,jstat 查看GC情况,查看xms,xmx设置
    端口:whireshark抓包,查看连接状态
    linux下whireshark换成tcpdump抓包,下载,再使用whireshark分析

  • 相关阅读:

    每日小练习
    完数
    6.13的练习
    字典
    sql server多条记录同时插入一张表
    sql server从表到表——复制,备份
    Bootstrap关于row
    Bootstrap 关于标签,徽章,巨幕,页头,缩略图,自定义内容的使用
    Bootstrap 关于分页的使用
  • 原文地址:https://www.cnblogs.com/anyux/p/12201672.html
Copyright © 2020-2023  润新知