运维简单面试题

news/2024/12/2 16:52:57/

问题:使用Linux命令查询file.txt中空行所在的行号

awk '/^$/{print NR}' file1.txt

问题:有文件file2.txt内容如下: 求一列的和

张三 40
李四 50
王五 60

awk '{sum+=$2} END{print "求和"sum}' file2.txt

问题:Shell脚本里如何检查一个文件是否存在?

if [ -e /root/file1.txt ]; then echo "文件存在"; else echo "文件不存在"; fi

问题:用shell写一个脚本,对下列无序的一列数字排序,并求和

9
8
7
6
5
4
3
2
10
1

sort -n file3.txt | awk '{sum+=$1; print $1} END{print "求和: "sum}'

问题:查找当前文件夹(/root)下所有的文本文件中包含有字符”123”的文件名称?

grep -r "123" /root | cut -d ":" -f 1| sort -u

问题: 批量生产指定数目的文件,文件名采用"纳秒"命名

#!/bin/bash
read -t 30 -p "请输入创建文件的数目:" n
test=$(echo $n | sed 's/[0-9]//g') #检测非数字输入
if [ -n "$n" -a -z "$test" ] #检测空输入
then
        for ((i=0;i<$n;i=i+1 ))
        do
                name=$(date +%N)
                [ ! -d ./temp ] &&  mkdir -p ./temp
                touch "./temp/$name"
                echo "创建 $name 成功!"
        done
        else
                echo "创建失败"
                exit 1
fi

问题: 将/root/temp目录下所有文件名重命名为"旧文件名-递增数字"?

#!/bin/bash
filenames=$(ls /root/temp)
number=1
for name in $filenames
do
        printf "命令前:%s" ${name}
        newname=${name}"-"${number}
        rename $name ${newname} /root/temp/*
        let number++ #每个改名后的文件名后缀数字加1
        printf "重命名后:%s \n" ${newname}
done

问题: 根据users.txt中提供的用户列表,一个名一行, 批量添加用户到linux系统中

准备数据users.txt

user1
user2

#!/bin/bash
ULIST=$(cat /root/users.txt)  ##/root/users.txt  里面存放的是用户名,一个名一行
for UNAME in $ULIST
do
        useradd $UNAME
        echo "123456" | passwd --stdin $UNAME &>/dev/null 
        [ $? -eq 0 ] && echo "$UNAME用户名与密码添加初始化成功!"
done

问题: 根据给出的数据输出里面单词长度大于3的单词

echo "I may not be able to change the past, but I can learn from it."

| awk -F "[ ,.]" '{for(i=1;i<NF;i++){ if(length($i)>3){print $i}}}'

问题 1、按单词出现频率降序排序

awk -F "[,. ]" '{for(i=1;i<=NF;i++)S[$i]++}END{for(key in S)print S[key],key}' file8.txt | sort -rn
2、按字母出现频率降序排序

awk -F "" '{for(i=1;i<=NF;i++)S[$i]++}END{for(key in S)print S[key],key}'

file8.txt | sort -rn

问题: 扫描192.168.56.1到192.168.56.254之间ip的是否存活, 并输出是否在线?

#!/bin/bash
count=0
for i  in 192.168.56.{1..254}
do
    # 使用ping命令发送2个包测试, 并获取返回接收到包的个数
    receive=$(ping $i -c 2|awk 'NR==6{print $4}')
    # 接收返回包大于0 说明主机在线
    if [ ${receive} -gt 0 ]
    then
        echo "${i} 在线"
        let count+=1
    else
        echo "${i} 不在线"
    fi

done
echo "在线服务器有:"$count"个"

面试题:MySQL分库备份

#!/bin/sh
user=root      #用户名
pass=root      #密码
backfile=/root/mysql/backup #备份路径
[ ! -d $backfile ] && mkdir -p $backfile #判断是否有备份路径
cmd="mysql -u$user -p$pass"  #登录数据库
dump="mysqldump -u$user -p$pass " #mysqldump备份参数
dblist=`$cmd -e "show databases;" 2>/dev/null |sed 1d|egrep -v "_schema|mysql"` #获取库名列表
echo "需要备份的数据列表:"
echo $dblist
echo "开始备份:"
for db_name in $dblist #for循环备份库列表
do
 printf '正在备份数据库:%s' ${db_name}
 $dump $db_name 2>/dev/null |gzip >${backfile}/${db_name}_$(date +%m%d).sql.gz #库名+时间备份打包至指定路径下
 printf ',备份完成\n'
done
echo "全部备份完成!!!"

面试题:MySQL数据库分库分表备份

#!/bin/sh
user=root      #用户名
pass=root      #密码
backfile=/root/mysql/backup #备份路径
[ ! -d $backfile ] && mkdir -p $backfile #判断是否有备份路径
cmd="mysql -u$user -p$pass"  #登录数据库
dump="mysqldump -u$user -p$pass " #mysqldump备份参数
dblist=`$cmd -e "show databases;" 2>/dev/null |sed 1d|egrep -v "_schema|mysql"` #获取库名列表
echo "需要备份的数据列表:"
echo $dblist
echo "开始备份:"
for db_name in $dblist #for循环备份库列表
do
 printf '正在备份数据库:%s\n' ${db_name}
 tables=`mysql -u$user -p"$pass" -e "use $db_name;show tables;" 2>/dev/null|sed 1d`
 for j in $tables
  do
    printf '正在备份数据库 %s 表 %s ' ${db_name} ${j}
    $dump -B --databases $db_name --tables $j 2>/dev/null > ${backfile}/${db_name}-${j}-`date +%m%d`.sql
    printf ',备份完成\n'
  done


 printf '数据库 %s 备份完成\n' ${db_name}
done
echo "全部备份完成!!!"


http://www.ppmy.cn/news/59196.html

相关文章

项目范围管理——实践感悟

关于项目范围管理 在范围管理中&#xff0c;范围的确定是重中之重&#xff0c;项目范围管理也不能按书上的照搬过来&#xff0c;都采用的话那可能真是全职的项目经理&#xff0c;但实际中的项目并不会有那么舒服的情况&#xff0c;但对于项目范围的管理我们也要养成思考以下问…

脱硫除尘器

脱硫除尘器是涡轮增压湍流除尘脱硫技术的专业脱硫设备。 介绍 其工作原理是:含硫气体在涡轮增压湍流装置的作用下&#xff0c;以高速旋转和扩散的状态与吸收浆液形成的强化湍流传质。传质的过程是使气液形成乳化层&#xff0c;不仅化学吸收中和快&#xff0c;液膜始终接近中性…

7种超轻量级的Linux发行版,希望能够帮助你找到适合自己的操作系统

Linux是一种非常受欢迎的开源操作系统&#xff0c;而且有许多版本可以选择。有时候&#xff0c;你需要一种超轻量级的Linux发行版&#xff0c;它可以在资源有限的设备上运行&#xff0c;并且能够快速启动。本文将介绍7种超轻量级的Linux发行版&#xff0c;希望能够帮助你找到适…

『python爬虫』05. requests模块入门(保姆级图文)

目录 安装requests1. 抓取搜狗搜索内容 requests.get2. 抓取百度翻译数据 requests.post3. 豆瓣电影喜剧榜首爬取4. 关于请求头和关闭request连接总结 欢迎关注 『python爬虫』 专栏&#xff0c;持续更新中 欢迎关注 『python爬虫』 专栏&#xff0c;持续更新中 安装requests …

redis基本数据类型及常见命令

数据库操作 select <库号>: 切换库 默认共有15个 dbsize: 查看当前库的key数量 flushdb: 清空当前库 flushall: 清空所有库 Key的操作 keys *&#xff1a; 查看当前库的所有key exists <key>: 判断该key是否存在 type <key>: 查看该key的类型 de <…

Docker安全最佳实践

目录 1、探测容器开放端口和服务漏洞 2、宿主机、网络、镜像、DockerApi安全 3、更新Docker、日志、事件 4、Docker安全测试 5、Docker安全最佳实践 1、探测容器开放端口和服务漏洞 使用Nmap扫描Docker容器中的开放端口 使用docker ps命令获取正在运行的容器ID或名称。在…

SpringData-Redis配置及常用操作

文章目录 1.引入依赖2.yml配置文件3.设置Redis序列化4.使用教程5.操作String数据类型6.操作Hash数据类型7.操作Set数据类型8.操作List数据类型9.操作Sorted Set 数据类型 1.引入依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId…

GPT系列论文

目录 GPT 无监督预训练 有监督微调 如何将模型应用于下游任务&#xff1f; 试验结果 GPT-2 摘要 Introduction Approach 数据集&模型 试验结果 GPT-3 核心点 名词解释 few-shot做法图示 数据集 GPT 由无监督预训练有监督微调组成 无监督预训练 有监督微调…