linux批量分发必会面试题,通过邮件反馈结果。

请准备三台linux机器为别为A,B,C,要求实现以下内容
1、用自己的名字用户完成一把钥匙开多把锁(A,钥匙,B,C锁)的免密码登录部署场景
该题在生产环境中的用途为;批量分发数据,批量发布程序代码,批量控制管理等。

大型批量管理软件pupet/saltstack
2、在1题的前提下同样用自己的名字用户完成多把钥匙开一把锁(B,C钥匙,A锁)的免密码登录
B--A
C--A
一题中我们在A创建了锁和钥匙,所以B和C要控制A就先把钥匙发给B和C,因为A本地的锁还不正常,就像A给B和C发公钥一样给自己再发一份,锁的名字为authorrized_keys.这样B和C就能无密码登录A.
在A上把钥匙发给B和C
$scp -p .ssh/id_dsa bichen@192.168.0.102:~/.ssh
3、如何实现从A指定目录批量分发文件到B,C,用户的家目录(借助1题部署结果)考察scp用法
$sh fenfa.sh
4、实现A指定的目录文件分发到B,C任意目录下(不用root用户你会么)
在客户端执行命令
#visduo 输入98gg跳转到98行
root ALL=(ALL) ALL
bichen ALL=(ALL) NOPASSWD:/usr/bin/rsync
加入bichen用户
echo “bichen ALL=(ALL) NOPASSWD:/usr/bin/rsync

检查语法
[root@lamp01 ~]# visudo -c
/etc/sudoers: parsed OK
这样子的话bichen这个用户在这个机器上就有root权限可以执行rsync这个命令,前提得用sudo提权。
或者也不用去客户端,因为通过ssh可以连上客户机,所以直接执行命令也可以。

在分发机上编辑下面面脚本,$0表示此脚本名称,$1表示要发送的文件,$2表示要发送到远端的路径,先将它拷贝到远端用户的家目录,在使用sudo提权rsync将其拷贝到对应的路径下。Scp命令后面加&&\表示此命令执行成功后在执行下一条命令。102.虚拟机未开机所以显示失败。
linux批量分发必会面试题,通过邮件反馈结果。
5、如何快速查看所有机器的负载load,cpu,内存信息(借助问题1)的部署结果。
(思考如果服务器数量多,如何并发查看和分发数据)
[bichen@nfsserver ~]$ vim view_upload.sh
#!/bin/sh

if [ $# -ne 1 ]
then
echo "USAGE:$0 COMMAND"
exit 1
fi
for n in 102 104
do
echo ==========192.168.0.$n====
ssh -p22 bichen@192.168.0.$n $1
Done
查内存,查负载
[bichen@nfsserver ~]$ sh view_upload.sh uptime
==========192.168.0.102====
Nasty PTR record "192.168.0.102" is set up for 192.168.0.102, ignoring
10:18:50 up 5 min, 1 user, load average: 0.00, 0.07, 0.04
==========192.168.0.104====
10:18:50 up 1:27, 1 user, load average: 0.00, 0.00, 0.00
[bichen@nfsserver ~]$ sh view_upload.sh "free -m"
==========192.168.0.102====
Nasty PTR record "192.168.0.102" is set up for 192.168.0.102, ignoring
total used free shared buffers cached
Mem: 980 331 649 1 39 110
-/+ buffers/cache: 181 799
Swap: 1983 0 1983
==========192.168.0.104====
total used free shared buffers cached
Mem: 980 320 659 1 50 103
-/+ buffers/cache: 166 814
Swap: 1983 0 1983
6、附加题:实现每分钟定时分发hosts文件到所有机器上,并把分发失败,没有分发成功的机器信息以邮件的形式发给运维人员。
linux批量分发必会面试题,通过邮件反馈结果。
第一种方案:客户端使用mail,服务端使用posfix
启动posfix服务
[root@nfsserver ~]# /etc/init.d/postfix restart
Shutting down postfix: [ OK ]
Starting postfix: [ OK ]
[root@nfsserver ~]# lsof -i :25
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
master 3601 root 12u IPv4 17870 0t0 TCP localhost:smtp (LISTEN)
master 3601 root 13u IPv6 17872 0t0 TCP localhost:smtp (LISTEN)
客户端mail命令,发邮件格式
mail -s “标题” 邮件地址 <文件
mail -s “bichen”695410305@qq.com </etc/hosts
echo “正文”|mail -s “bichen” 695410305@qq.com
发送邮件,结果没收到免费的邮件会经常收不到会耽搁事,所以要用收费的,或者自己的。
[root@nfsserver ~]# mail -s "bichen" 695410305@qq.com </etc/hosts
[root@nfsserver ~]# mailq
Mail queue is empty
我们分发hosts的脚本,将分发结果追加重定向到/tmp/true.log、/tmp/fail.log,如果fail.log
的内容不为空,说明有失败的,就将fail.log发送到邮箱,最后清空日志。
#!/bin/sh
. /etc/init.d/functions
if [ $# -ne 2 ]
then
echo "USAGE:$0 FileName RemoteDir"
exit 1
fi

for n in 102 104

do
scp -rp $1 bichen@192.168.0.$n:~ &>/dev/null&&\
ssh -t bichen@192.168.0.$n sudo rsync $1 $2 &>/dev/null
if [ $? -eq 0 ]
then
echo "fenfa $1 to $2 192.168.0.$n is ok" >>/tmp/true.log
else
echo "fenfa $1 to $2 192.168.0.$n is false" >>/tmp/fail.log
fi
done
if [ -s "/tmp/fail.log" ]
then
mail -s "$(date +%F\ %T)fenfa host" 18689197973@163.com</tmp/fail.log

/tmp/true.log
/tmp/fail.log
fi
然后做定时任务,所有的脚本都放在/server/scripts
#Crontab -u bichen -e 表示在bichen用户下做定时任务
#fenfa hosts by yankefei at 20170807

          • /bin/sh /server/scripts/fenfa_hosts.sh &>/dev/null
            配置mail使用外部smtp发邮件
            通过修改配置文件可以使用外部smtp服务器,可以到达不使用sendmail等内部邮件服务而用外部的smtp服务器发送邮件目的
            修改/etc/mail.rc最后一行加入
            Set from=
            Smtp=
            Username smtp-auth-password=
            Smtp-auth=login
            7、实现每天晚上00点定时把B,C上的数据备份到A上,并把备份结果信息以邮件的形式发给运维人员。提示备份的目录要包含ip或主机名
            使用scp写成脚本做成定时任务
            linux批量分发必会面试题,通过邮件反馈结果。
            8、用expect无交互式的批量分发密钥到B,C即在第一步建立免密码认证之前分发密钥就实现非交互批量发布。(如果一千太机器在第一做无密码认证时,得输入1000次yes和1000次password)。
            (1)安装expect
            [root@nfsserver ~]# yum install expect
            [root@nfsserver ~]# which expect
            /usr/bin/expect
            (2创建expect脚本 定义file变量,是我们的公钥。Host为主机ip。两个参数
            ,发送yes发送密码)
            [bichen@nfsserver ~]$ vim fenfa_sshkey.exp
            #!/usr/bin/expect
            if { $argc !=2 } {
            send_user "usage: expect fenfa_sshkey.exp file host\n"
            exit
            }

#define var
set file [lindex $argv 0]
set host [lindex $argv 1]
set password "yankefei"
#spawn scp /etc/hosts root@192.168.0.102:/etc/hosts
#spawn scp -P222 $file bichen@$host:$dir
#spawn ssh-copy-id -i $file "-p 222 bichen@$host"
spawn ssh-copy-id -i $file "-p 22 bichen@$host"
expect {
"yes/no" {send "yes\r";exp_continue}
"*password" {send "$password\r"}
}
expect eof
#expect fenfa_sshkey.exp ~/.ssh id_dsa.pub 192.168.0.104
上面脚本fenfa_sshkey.exp实现了一台的免人工交互,所以还要在写个脚本调用此脚本实现多台非人工交互。
#vi fenfa_key
#!/bin/sh
. /etc/init.d/functions

for ip in 102 103 104

do
#expect fenfa_sshkey.exp ~/.ssh/id_dsa.pub $ip >/dev/null 2>&1
expect fenfa_sshkey.exp ~/.ssh/id_dsa.pub 192.168.0$ip
if [ $? -eq 0 ];then
antion "$ip" /bin/true
antion "$ip" /bin/false
fi
done

转载于:https://blog.51cto.com/10980975/2069988

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/284184.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【GlobalMapper精品教程】023:Excel数据通过相同字段连接到属性表中(气温降水连接到气象台站)

globalmapper中也可以将Excel数据通过相同字段连接到属性表中。本文讲解将气温降水连接到气象台站点图层中。 文章目录 一、加载气象台站数据二、挂接气温降水数据一、加载气象台站数据 globalmapper中根据坐标生成点的方法,前面的文章有所说明: 【GlobalMapper精品教程】0…

记一次 .NET 某智慧物流WCS系统CPU爆高分析

一&#xff1a;背景 1. 讲故事哈哈&#xff0c;再次见到物流类软件&#xff0c;上个月有位朋友找到我&#xff0c;说他的程序出现了 CPU 爆高&#xff0c;让我帮忙看下什么原因&#xff0c;由于那段时间在苦心研究 C&#xff0c;分析和经验分享也就懈怠了&#xff0c;今天就给大…

采用Atlas+Keepalived实现MySQL读写分离、读负载均衡【转载】

文章 原始出处 &#xff1a;http://sofar.blog.51cto.com/353572/1601552 一、基础介绍 1、背景描述 目前我们的高可用DB的代理层采用的是360开源的Atlas&#xff0c;从上线以来&#xff0c;已稳定运行2个多月。无论是从性能上&#xff0c;还是稳定性上&#xff0c;相比其他开…

vscode搭建go开发环境

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、安装goLang二.配置环境变量三、vscode安装插件四.安装golang依赖五.新建go文件前言 能用golang就用golang..这配置很麻烦 提示&#xff1a;以下是本篇文章正…

【GlobalMapper精品教程】024:批量高效实现多种数据格式互转的方法

globalmapper批量高效实现多种数据格式互转的方法。 文章目录一、批量格式转换二、格式转换形式举例一、批量格式转换 选择原文件类型&#xff1a; 选择文件类型&#xff1a; 在源文件列表中添加需要转换的文件或者文件夹&#xff0c;指定目标文件目录&#xff0c;文件名称和投…

基于 WeihanLi.Npoi 实现excel导入时纯汉字的日期转换

基于 WeihanLi.Npoi 实现excel导入时纯汉字的日期转换Intro前段时间有位小伙伴在 Github 上提了一个 “不能识别纯汉字的日期格式” issue二〇二二年一月一日 格式的日期单元格识别不出来会变成&#xff0c;0001/1/1 0:00:00 如何让它能够识别出来呢&#xff0c;基于 InputForm…

十个模型,总结产品经理沟通方法论

编辑导语&#xff1a;毫不夸张地说沟通占据了产品经理日常工作内容的40%&#xff0c;高效沟通往往能让事情事半功倍。本文作者结合沟通方法与具体沟通情景讲解了如何高效沟通&#xff0c;一起来看看吧&#xff01; 目录 一、为什么要学会沟通 二、沟通模型 1. PREP原则&…

【Globalmapper中文入门到精通系列实验图文教程】(附配套实验数据持续更新)

【Globalmapper中文版入门到精通系列实验图文教程】&#xff08;附配套实验数据持续更新&#xff09; 文章目录一、专栏简介二、文章目录三、数据目录四、传送门一、专栏简介 本专栏为GlobalMapper中文入门实战精品教程&#xff0c;内容主要涉及&#xff1a;Globalmapper23软件…

【GlobalMapper精品教程】025:影像数据集的建立与巧妙使用

GlobalMapper影像数据集类似于金字塔,作用是提高大量影像的加载与显示速度,还可批量进行一系列设置。本文的配套数据为data025.rar。 文章目录 1. 建立影像数据集2. 影像数据集的使用1. 建立影像数据集 (1)点击【文件】→【创建新地图目录】。 (2)选择影像数据集存放路径…

使用xUnit为.net core程序进行单元测试(3)

第1部分: http://www.cnblogs.com/cgzl/p/8283610.html 第2部分: http://www.cnblogs.com/cgzl/p/8287588.html 请使用这个项目作为练习的开始: https://pan.baidu.com/s/1ggcGkGb 测试的分组 打开Game.Tests里面的BossEnemyShould.cs, 为HaveCorrectPower方法添加一个Trait属性…

CDN的强大功能

2019独角兽企业重金招聘Python工程师标准>>> CDN&#xff0c;内容分发网络&#xff0c;除了用作网站加速外&#xff0c;还能够更好的保护网站不被攻击。防护网站不被攻击的功能成就了CDN运行中的主要责任。CDN 防护原理是其主要在于在相关节点中成功的建立动态加速机…

IDEA创建SpringBoot项目无法连接https://start.spring.io(已解决)

错误&#xff1a; 方法&#xff1a; 将&#xff1a;https://start.spring.io 更换为 ​https://start.aliyun.com

2005年AMC8数学竞赛中英文真题典型考题、考点分析和答案解析

今天距离2024年的AMC8美国数学竞赛举办已不足一个月了&#xff0c;赶紧利用周末的时间刷刷真题&#xff0c;查漏补缺吧&#xff01;如果您有任何关于AMC8比赛的任何问题都可以问我&#xff0c;关于题目的解析也可以交流。 今天我们来看看2005年AMC8竞赛的五道典型考题。欢迎您查…

WPF效果第一百九十三篇之登录实现

前面一直在玩耍ListBox(最爱),大周末的就适合在家吹着风扇撸着代码;今天来分享一个很简单实用的登录,来看看最终实现的效果:1、关于软件启动后焦点实现:<Style TargetType"Border"><Style.Triggers><DataTrigger Binding"{Binding IsEmptyAccoun…

IDEA中安装并使用JRebel热部署插件

文章目录 作者简介引言导航热门专栏推荐概述安装JRebel注册JRebel配置JRebel最后小结导航热门专栏推荐作者简介 作者名&#xff1a;编程界明世隐 简介&#xff1a;CSDN博客专家&#xff0c;从事软件开发多年&#xff0c;精通Java、JavaScript&#xff0c;博主也是从零开始一步步…

UWP: 实现 UWP 应用自启动

原文:UWP: 实现 UWP 应用自启动在上一篇文章中&#xff0c;我们实现了使用命令行来启动 UWP 应用&#xff0c;在这一篇文章中&#xff0c;我们会实现 UWP 应用自启用的实现&#xff0c;也即开机后或用户登陆后&#xff0c;应用自己启动。这些特性原来都是 Win32 程序所具备的&a…

选择 GCD 还是 NSTimer ?

我们常常会延迟某件任务的执行&#xff0c;或者让某件任务周期性的执行。然后也会在某些时候需要取消掉之前延迟执行的任务。 延迟操作的方案一般有三种&#xff1a; 1.NSObject的方法&#xff1a; 2.使用NSTimer的方法&#xff1a; 3.使用GCD的方法&#xff1a; 一般情况下&am…

Web框架 性能评测 -- C# 的性能 和 Rust、C++并驾齐驱

自从2021年2月第20轮公布的测试以后&#xff0c;一年半后 的2022年7月19日 发布了 TechEmpower 21轮测试报告&#xff1a;Round 21 results - TechEmpower Framework Benchmarks。Techempower benchmark是包含范围最广泛的web框架性能测试&#xff0c;覆盖了比较典型的使用场景…

【GlobalMapper精品教程】027:路径剖面和和视线工具的使用

文章目录 一、路径剖面简介二、创建剖面图1. 加载DEM2. 创建剖面图3. 计算填挖方3. 保存剖面图一、路径剖面简介 路径剖面视线工具允许您使用加载的高程数据集沿用户指定的路径获取垂直剖面。 要定义生成3D路径剖面所遵循的路径,只需单击鼠标左键选择路径的点,然后石键单击…

QT中VideoProbe的简介和实现

一、遇到问题在Android机上使用QT进行图像处理程序设计的时候&#xff0c;遇到的一个比较明显的问题就是图片采集的问题----摄像头获得是实时的视频&#xff0c;如果我们想从中动态地截获图片&#xff0c;并且转换成Mat的格式&#xff0c;那么仅仅是静态的imagecapturee就无法完…