运维面基础试题(一)

文章目录

  1. Linux下如何使用配置文件设置网卡IP地址。
  2. Linux下配置主机名,并使之永久生效
  3. 给出你经常用的远程访问一台Linux主机的工具和方法,如何向远程主机上传文件,如何从远程主机向本地下载文件
  4. 如何查看系统的如下参数: 1cpu核心数,内存大小,硬盘总量 2 当前的cpu利用率,每个cpu核的利用率,当前内存使用情况, 3 指定进程的cpu利用率和内存使用量
  5. 查看某个目录或者文件的占用空间大小
  6. 强制关闭一个正在运行的程序
  7. iptables 阻止系统发出tcp的flag为reset的数据包
  8. 如何配置Linux系统的环境变量,如何配置Linux系统的用户环境变量。
  9. 如何更改Linux系统中文件的属性(只读,读写,可执行)
  10. Linux服务的关闭/启动方法,如何设置某个服务的开启自启动
  11. 如何查看系统中是否安装了指定的rpm包,安装 一个指定的rpm包,使用tcpdump命令,如何从网卡eth1捕获从192.168.0.1到192.168.0.2的udp包或者icmp包。
  12. 如何实现一个脚本,检测一个程序(cassini)是否在运行,如果没有在运行就运行它, 并对每次运行的时间进行记录。(cassini 位于/opt/cassini/bin目录下,非系统服务程序)
  13. 有如下文件: a.txt (第一列是姓名,第二列是成绩)请使用脚本计算出zhangsan的总成绩
    14 SQL查询题目
  14. Linux下如何使用配置文件设置网卡IP地址。
    [root@ecs-c13b ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth0
    TYPE=Ethernet # 网卡类型:为以太网
    PROXY_METHOD=none # 代理方式:关闭状态
    BROWSER_ONLY=no # 只是浏览器:否
    BOOTPROTO=dhcp # 网卡的引导协议:DHCP[中文名称: 动态主机配置协议]
    DEFROUTE=yes # 默认路由:是, 不明白的可以百度关键词 默认路由
    IPV4_FAILURE_FATAL=no # 是不开启IPV4致命错误检测:否
    IPV6INIT=yes # IPV6是否自动初始化: 是[不会有任何影响, 现在还没用到IPV6]
    IPV6_AUTOCONF=yes # IPV6是否自动配置:是[不会有任何影响, 现在还没用到IPV6]
    IPV6_DEFROUTE=yes # IPV6是否可以为默认路由:是[不会有任何影响, 现在还没用到IPV6]
    IPV6_FAILURE_FATAL=no # 是不开启IPV6致命错误检测:否
    IPV6_ADDR_GEN_MODE=stable-privacy # IPV6地址生成模型:stable-privacy [这只一种生成IPV6的策略]
    NAME=ens33 # 网卡物理设备名称
    UUID=f47bde51-fa78-4f79-b68f-d5dd90cfc698 # 通用唯一识别码, 每一个网卡都会有, 不能重复, 否两台linux只有一台网卡可用
    DEVICE=ens33 # 网卡设备名称, 必须和 NAME 值一样
    ONBOOT=no # 是否开机启动, 要想网卡开机就启动或通过 systemctl restart network控制网卡,必须设置为 yes

设置静态ip:
BOOTPROTO=static
ONBOOT=yes
IPADDR=192.168.1.111
NETMASK=255.255.255.0
GATEWAY=192.168.1.1

设置完成后:
systemctl restart network

  1. Linux下配置主机名,并使之永久生效
    centos7:
    [root@ecs-c13b ~]# hostnamectl 查看当前主机名情况
    Static hostname: ecs-c13b
    Icon name: computer-vm
    Chassis: vm
    Machine ID: 8f5b018f6eb344909f6cfec5ad0839ef
    Boot ID: 6f00bd8d7498442d988377805d1f448e
    Virtualization: kvm
    Operating System: CentOS Linux 7 (Core)
    CPE OS Name: cpe:/o:centos:centos:7
    Kernel: Linux 3.10.0-1062.12.1.el7.x86_64
    Architecture: x86-64

修改主机名的三种方式:
1) 临时有效的
[root@ecs-c13b ~]# hostname gaosh
2) 永久生效的
[root@ecs-c13b ~]# hostnamectl set-hostname “zmgaosh”
3) 修改/etc/hostname
[root@ecs-c13b ~]# cat /etc/hostname
zmgaosh

  1. 给出你经常用的远程访问一台Linux主机的工具和方法,如何向远程主机上传文件,如何从远程主机向本地下载文件
    远程访问Linux主机的工具: xshell ,使用密码或者秘钥的形式进行管理
    下载和上传,可以使用命令rz, sz
    也可以直接使用xshell工具
  2. 如何查看系统的如下参数: 1cpu核心数,内存大小,硬盘总量 2 当前的cpu利用率,每个cpu核的利用率,当前内存使用情况, 3 指定进程的cpu利用率和内存使用量
    查看cpu
    [root@ecs-c13b ~]# cat /proc/cpuinfo |grep processor
    processor : 0
    processor : 1

查看内存:
[root@ecs-c13b ~]# cat /proc/meminfo |head -n 2
MemTotal: 3879860 kB
MemFree: 3190668 kB

查看硬盘:
[root@ecs-c13b ~]# df -lh
文件系统 容量 已用 可用 已用% 挂载点
devtmpfs 1.9G 0 1.9G 0% /dev
tmpfs 1.9G 0 1.9G 0% /dev/shm
tmpfs 1.9G 8.6M 1.9G 1% /run
tmpfs 1.9G 0 1.9G 0% /sys/fs/cgroup
/dev/vda1 40G 2.1G 36G 6% /
tmpfs 379M 0 379M 0% /run/user/0

top
第三行(Cpus):
分别表示了 CPU 当前的使用率

  1. 查看某个目录或者文件的占用空间大小
    [root@ecs-c13b ~]# du -h
    4.0K ./.ssh
    4.0K ./.pki/nssdb
    8.0K ./.pki
    4.0K ./test
    44K .

  2. 强制关闭一个正在运行的程序
    ps -aux |grep 进程
    查到进程ID为1234
    kill -9 1234

  3. iptables 阻止系统发出tcp的flag为reset的数据包
    iptables -A INPUT -p tcp --tcp-flags RST RST -j DROP
    1

  4. 如何配置Linux系统的环境变量,如何配置Linux系统的用户环境变量。
    系统环境变量:
    cat /etc/profile
    source /etc/profile

用户环境变量
切换到用户的家目录
vim .bash_profile
source /etc/profile

  1. 如何更改Linux系统中文件的属性(只读,读写,可执行)
    只读: r
    读写: rw
    可执行: x
    使用命令 chmod

  2. Linux服务的关闭/启动方法,如何设置某个服务的开启自启动
    启动:
    systemctl start sshd
    关闭:
    systemctl stop sshd
    centos7 开机自启动
    [root@ecs-c13b ~]# systemctl enable sshd
    centos6
    chkconfig --add sshd

  3. 如何查看系统中是否安装了指定的rpm包,安装 一个指定的rpm包,使用tcpdump命令,如何从网卡eth1捕获从192.168.0.1到192.168.0.2的udp包或者icmp包。
    用法: rpm [选项…]
    -a:查询所有套件;
    -b<完成阶段><套件档>+或-t <完成阶段><套件档>+:设置包装套件的完成阶段,并指定套件档的文件名称;
    -c:只列出组态配置文件,本参数需配合"-l"参数使用;
    -d:只列出文本文件,本参数需配合"-l"参数使用;
    -e<套件档>或–erase<套件档>:删除指定的套件;
    -f<文件>+:查询拥有指定文件的套件;
    -h或–hash:套件安装时列出标记;
    -i:显示套件的相关信息;
    -i<套件档>或–install<套件档>:安装指定的套件档;
    -l:显示套件的文件列表;
    -p<套件档>+:查询指定的RPM套件档;
    -q:使用询问模式,当遇到任何问题时,rpm指令会先询问用户;
    -R:显示套件的关联性信息;
    -s:显示文件状态,本参数需配合"-l"参数使用;
    -U<套件档>或–upgrade<套件档>:升级指定的套件档;
    -v:显示指令执行过程;
    -vv:详细显示指令执行过程,便于排错。

rpm -ql 查看是否安装
[root@ecs-c13b ~]# rpm -ql tree
/usr/bin/tree
/usr/share/doc/tree-1.6.0
/usr/share/doc/tree-1.6.0/LICENSE
/usr/share/doc/tree-1.6.0/README
/usr/share/man/man1/tree.1.gz

rpm -qa 列出所有安装过的包

  1. 如何实现一个脚本,检测一个程序(cassini)是否在运行,如果没有在运行就运行它, 并对每次运行的时间进行记录。(cassini 位于/opt/cassini/bin目录下,非系统服务程序)
    学员版脚本:
    #!/bin/bash
    time=$(date +%F,%T)
    cassini=/opt/cassini/bin
    ps -ef | grep $cassini | grep -v grep
    if [ ? − e q 0 ] ; t h e n e c h o " 程 序 已 经 启 动 , 检 测 时 间 : ? -eq 0 ];then echo "程序已经启动,检测时间: ?eq0];thenecho",time"
    else
    echo “程序没有在运行,下面开始启动”
    cd KaTeX parse error: Expected 'EOF', got '&' at position 9: cassini &̲& ./ echo "…time"
    fi
    点评: 脚本有几个地方需要完善

  2. 题目要统计的不是当前时间,而是程序运行的时间或者程序开始的时间,而不是执行启动命令后,在查询出来的当前时间
    [root@ecs-c13b ~]# ps -aux |grep sshd
    root 9125 0.2 0.1 157748 6360 ? Ss 17:50 0:39 sshd: root@pts/0,pts/1
    root 9144 0.0 0.1 157320 5944 ? Ss 17:50 0:00 sshd: root@notty
    root 9315 0.0 0.1 112920 4312 ? Ss 23:01 0:00 /usr/sbin/sshd -D
    root 20256 0.0 0.0 112732 972 pts/0 S+ 23:10 0:00 grep --color=auto sshd
    [root@ecs-c13b ~]# ps -p 9125 -o etime
    ELAPSED
    05:20:58 ssh 当前运行时间为5个小时20分钟

[root@ecs-c13b ~]# ps -p 9125 -o lstart 这条命令显示的是程序开始运行时间
STARTED
Wed Jun 17 17:50:07 2020

  1. 执行脚本写全路径: /opt/cassini/bin/cassini
  2. 此脚本不能够实时监测,可以使用定时任务
  3. 有如下文件: a.txt (第一列是姓名,第二列是成绩)请使用脚本计算出zhangsan的总成绩
    zhangsan 15
    lisi 15
    zhangsan 16
    lisi 17
    zhangsanfeng 18

学员版脚本
[root@ecs-c13b ~]# cat a.sh
#!/bin/bash
cj=$(cat a.txt | awk ‘{if ($1 == “zhangsan”) {print $2}}’)
sum=0
for i in c j d o l e t s u m = s u m + cj do let sum=sum+ cjdoletsum=sum+i
done
echo “zhangsan成绩总和:$sum”

14 SQL查询题目
根据下表内容用sql命令筛选出每个学生的最高成绩的结果集

姓名 成绩 编号
A 55 1
A 60 2
B 70 3
C 90 4
B 50 5
D 90 6
MariaDB [st_course]> create table student( sname varchar(20) not null, sscore tinyint(100) not null , sno int not null auto_increment primary key);

插入数据:
MariaDB [st_course]> insert into student (sname, sscore, sno) values(‘A’,55,1);
Query OK, 1 row affected (0.00 sec)

MariaDB [st_course]> insert into student (sname, sscore, sno) values(‘A’,60,2);
Query OK, 1 row affected (0.00 sec)

MariaDB [st_course]> insert into student (sname, sscore, sno) values(‘B’,70,3);
Query OK, 1 row affected (0.01 sec)

MariaDB [st_course]> insert into student (sname, sscore, sno) values(‘C’,90,4);
Query OK, 1 row affected (0.00 sec)

MariaDB [st_course]> insert into student (sname, sscore, sno) values(‘B’,50,5);
Query OK, 1 row affected (0.00 sec)

MariaDB [st_course]> insert into student (sname, sscore, sno) values(‘D’,90,6);
Query OK, 1 row affected (0.00 sec)

查看表内容
MariaDB [st_course]> select * from student
-> ;
±------±-------±----+
| sname | sscore | sno |
±------±-------±----+
| A | 55 | 1 |
| A | 60 | 2 |
| B | 70 | 3 |
| C | 90 | 4 |
| B | 50 | 5 |
| D | 90 | 6 |
±------±-------±----+
6 rows in set (0.00 sec)

查询结果:
MariaDB [st_course]> select * from student where sscore in (select max(sscore) from student group by sname);
±------±-------±----+
| sname | sscore | sno |
±------±-------±----+
| A | 60 | 2 |
| B | 70 | 3 |
| C | 90 | 4 |
| D | 90 | 6 |
±------±-------±----+
4 rows in set (0.00 sec)
原文链接:https://blog.csdn.net/xinshuzhan/article/details/106804939

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值