运维面试题

20240724 杭州 10-12k

  • shell脚本中改变echo输出的颜色,改为红色命令
#!/bin/bash
echo -e "\e[31m12312312321"
echo -e "\e[32mwxwxwxwxwx"

在这里插入图片描述

  • k8s中pod有几种状态
Pending(挂起)	Pod 已被 Kubernetes 系统接受,但有一个或者多个容器尚未创建亦未运行。此阶段包括等待 Pod 被调度的时间和通过网络下载镜像的时间。
Running(运行中)	Pod 已经绑定到了某个节点,Pod 中所有的容器都已被创建。至少有一个容器仍在运行,或者正处于启动或重启状态。
Succeeded(成功)	Pod 中的所有容器都已成功终止,并且不会再重启。
Failed(失败)	Pod 中的所有容器都已终止,并且至少有一个容器是因为失败终止。也就是说,容器以非 0 状态退出或者被系统终止,且未被设置为自动重启。
Unknown(未知)	因为某些原因无法取得 Pod 的状态。这种情况通常是因为与 Pod 所在主机通信失败。
容器的状态有三种:Waiting(等待)、Running(运行中)和 Terminated(已终止)
  • k8s中当一个pod负载过高,会横向自动扩容,并且把高负载的这个pod上的流量转入到新的pod上。
  • 说一下ansible中的playbook 的作用
  • dockerfile中我想要在容器运行时,添加文件到容器里面,命令应该怎么执行。
  • dockerfile中RUN和CMD这两个命令有什么区别
当你在构建镜像的时候,dockerfile会依次执行所有的RUN命令,RUN指令通常用于安装软件包、设置环境变量等任务。
CMD:这个指令提供了容器默认的可执行程序,包括相关参数。一个Dockerfile可以包含多个CMD指令,但只有最后一个会生效。CMD指令在容器启动时执行。
  • mysql中的文件格式有了解过吗
  • redis中的数据格式有哪些
  • minio部署的是集群吗
  • Linux中的监控工具supervisor可以对jar包进行检测,自启
  • shell中的一些函数有用过吗

2024/07/19 杭州 12-18k

  • mysql和redis的区别

  • iostat中那个值最关键

  • redis作为缓存,数据的持久化是怎么做的?

在Redis中提供了两种数据持久化的方式:1.RDB 2.AOF

RDB与AOF这两种持久化方式有什么区别

RDB是一个快照文件,它是把redis内存存储的数据写到磁盘上,当redis实例岩机恢复数据的时候,方便从RDB的快照文件中恢复数据。
AOF的含义是追加文件,当redis操作写命令的时候,都会存储这个文件中(一般存储在redis服务器的工作目录下,文件名为 appendonly.aof),当redis实例岩机恢复数据的时候,会从这个文件中再次执行一遍命令来恢复数据
这两种方式,哪种恢复得比较快呢

RDB因为是二进制文件,在保存的时候体积也是比较小的,它恢复的比较快,但是它有可能会丢数据;我们在项目中通常也会使用AOF来恢复数据,虽然AOF恢复的速度慢一些,但是它丢数据的风险要小很多,在AOF文件中可以设置刷盘策略,我们当时设置的就是每秒批量写入一次命令
  • redis做过灾产恢复吗?redis有切换过主从吗?

  • redis中查看所有key怎么查询

key *

2024/07/17 上海 15-25k

  • 释放swap缓存
    同步内存缓冲到磁盘:
    使用 sync 命令可以确保所有数据都被刷新到磁盘,这样在后续释放缓存时,数据不会丢失。
sync
  • 使用 drop_caches 文件来释放各种缓存,从而可能减少 swap 的使用。缓存级别为:
    0:释放所有缓存
    1:释放 pagecache
    2:释放 dentries 和 inodes
    3:释放所有缓存(等于 0)
echo 3 > /proc/sys/vm/drop_caches
  • 关闭和重新激活 swap 分区:
swapoff -a
swapon -a
  • linux中查看磁盘的读写速率
iostat
iostat -dx 1
  • lvm的分区格式有哪些
EXT4、FAT32、NTFS、exFAT
  • lvm逻辑卷怎么扩容
在这里插入代码片

写过shell脚本吗
chmod +x cheakhttpd.sh --赋予执行权限
nohup ./cheakhttpd.sh &

#!/bin/bash

# 定义服务名称和状态检查命令
SERVICE_NAME=httpd
CHECK_COMMAND="/usr/sbin/apachectl status"

# 主循环,持续检查服务状态
while true; do
  # 检查httpd服务是否正在运行
  if ! $CHECK_COMMAND | grep -q "is running"; then
    # 如果服务未运行,尝试重启
    echo "$(date) - Attempting to restart $SERVICE_NAME..."
    /sbin/service "$SERVICE_NAME" restart
    RETVAL=$?
    if [ $RETVAL -eq 0 ]; then
      echo "$(date) - $SERVICE_NAME successfully restarted."
    else
      echo "$(date) - Failed to restart $SERVICE_NAME. Exit code: $RETVAL"
    fi
  fi

  # 延迟一段时间后再进行下一轮检查
  sleep 600
done
  • NGINX中怎么优化
worker_processes  1;
worker_connections  1024;
  • NGINX 中怎么配置轮询和权重
http {
    upstream backend {
        server server1.example.com weight=5;
        server server2.example.com weight=3;
        server server3.example.com weight=2;
    }

    server {
        listen       80;
        server_name  example.com;

        location / {
            proxy_pass http://backend;
            # 其他代理设置
        }
    }
}
  • dockerfile 怎么执行
#  执行dockerfile
docker build -t <image-name>:<tag> .
# 使用官方的 Python 运行时作为父镜像
FROM python:3.10-slim

# 设置工作目录
WORKDIR /app

# 将当前目录的内容复制到容器的工作目录中
COPY . /app

# 安装任何需要的依赖包
RUN pip install --no-cache-dir -r requirements.txt

# 使端口对外部世界可用
EXPOSE 80

# 定义环境变量
ENV NAME World

# 在容器启动时运行的命令
CMD ["python", "./your-daemon-or-script.py"]

docker怎么运行容器

docker run -d --name my_name -p 80:80 image_name
  • Docker容器在每次重启Docker服务或重启服务器后自动启动
docker run -d --name my_name --restart=always image_name
--如果你的容器已经运行,并且你想要更新它的重启策略,你可以使用 docker update 命令:
docker update --restart=always my_images
>**IE浏览器和Edge浏览器之间的不兼容问题**

>2022下半年微软就不支持IE浏览器了,所以需要把IE浏览器上面的内容和数据放到Edge浏览器上,但是测试的时候发现,浏览器页面、按钮、数据之间的不统一,进行整改。

**复选框可以点击,但是修改无效 attr()和prop()**

> 我们如果要获取到input里面标签元素的属性的话,可以使用jQuery中的attr()和prop()这两个方法。
> attr()方法设置或返回被选中元素的属性值。prop()方法设置或返回被选中元素的属性和值。这两个方法都可以返回被选中元素中的属性和值。因为在
> jQuery 1.6 之前,使用 attr() 有时候会出现不一致的行为。根据官方的建议:具有 true 和 false 两个属性的属性,如
> checked, selected 或者 disabled 使用prop(),其他的使用 attr()。
> 最终修正方法:将prop()改为attr()

**鼠标移动到连接处显示的不是小手而是光束**

> 我们分辨出了字符串元素,edge不被认为是链接元素,因为元素没有href属性。※IE的情况下,没有href属性的情况下,不是光束而是箭头
> 最终修正方法:在a标签当中增加href="#"

**当你鼠标点击链接下载的时候会弹出来一个新窗口来下载**

> encodeURIComponent(File名)
> 使用了window.open属性打开新的窗口,文件下载不会乱码,如果用到了window.location.href属性可以在当前页面下载文件,文件名不会发生乱码,但是后台是乱码的,后台拼接过来的字符串是乱码,从前台使用HttpUtility.HtmlEncode这个属性将文件进行转码也没有效果
> 使用了window.location.href在当前页面打开的时候文件名就是正常显示的,并没有发生乱码,后台拼接的字符串也是正常显示的文件名。

**点击下拉框,被其他input框遮盖**

> 问题标签的父元素的层叠优先级比其他元素低(简单来讲,对于层叠元素的优先级对比都是在兄弟元素之间进行的,子元素的优先级并不会影响到父元素与其他兄弟元素之间的优先级关系。这里所指的层叠元素,是指有进行定位并且有设置z-index属性的元素。如果没有进行定位和设置z-index的元素,其最终层叠优先级反而由当前元素的层叠子元素决定) 
父元素没设置z-index(IE7以下的IE浏览器一定要注意父级元素是否有设置z-index和进行定位,因为在这几个版本的浏览器中,最终决定层叠顺序的是最顶层的父元素,算是一个兼容性问题。)
最终修正方法:在最高级别的层次增加z-index:9999;

**input框中输入的值无法正常显示**

> 这里所有input中的.class属性都是CSS样式统一定义的
> 因为行内定义的padding是要比CSS样式里面定义的padding优先级要高的,所以你在行内修改了padding属性的话,CSS里面的padding是不会起作用的, 如果把行内的padding删除掉之后,就会被CSS里面的padding限制,所以只能修改行内样式,改变一下入力区域的大小
> 最终修正方法:重新定义这个input框中的padding属性

**页面当中的一个小div中有滚动条,但是紧凑着其他属性元素,并不是在右侧显示**

> 我对这个CSS样式里面的属性做了了解之后,又发现了,当你把CSS样式中的display: table;这个属性取消勾选之后,页面当中所显示的滚动条也恢复正常了,因为edge上面的div中已经用到了inline-block属性,但IE里面没有出现这个问题,然后display: table这个是在CSS3里面的属性里如果用到这个元素的时候,相对应的属性就会失效,在页面当中输入的colspan="3" 是无效的,不起作用的,当你把display: table 这个属性勾选掉的话,你输入的colspan才会起作用。
> 最终修正方法:将display:table 修改为 display:table-cell



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

我是码农lyc

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值