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;今天就给大…

c#调用存储过程查询表并返回影响的行数

// 在此处放置用户代码以初始化页面 String DBConnStr; DataSet MyDataSet new DataSet(); SqlDataAdapter DataAdapter new SqlDataAdapter(); DBConnStr "server192.168.2.120,2433;databaseDB_test;uidsa;pwd43g"; Sq…

采用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…

寒假学习笔记(3)

2018.2.9 类 class class 类名{}&#xff1b;类似与结构体&#xff1b;类的实质是一种数据类型&#xff0c;类似于int、char等基本类型&#xff0c;不同的是它是一种复杂的数据类型。因为它的本质是类型&#xff0c;而不是数据&#xff0c;所以不存在于内存中&#xff0c;不能被…

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

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

【Alpha】开发日志Day8-0719

最近几天是攻坚阶段&#xff0c;大家配合得越来越娴熟了~ 以下是各位的每日小结&#xff1a; 姓名今日完成任务遇到的问题陈劼博写了一个PPT播放界面&#xff0c;后来发现师兄其实已经完成了黄志华尝试解决上传问题,但是没有成功&#xff1b;写了一个修改表单的代码,发现前端写…

MySQL--字符集

1.字符集概述 简单的说字符集就是一套文字符号及其编码、比较规则的集合20世纪60年代初期&#xff0c;美国标准化组织ANSI发布了第一个计算机的字符集ASCII(American Standard Code for Information Interchange)&#xff0c;后来进一步变成了国际标准ISO-646。这个字符集采用7…

【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属性…

war部署到tomcat

gs-rest-service-0.1.0.war复制到tomcat-9.0.0.M17\webapps\打开server.xml&#xff0c;这Host节点&#xff0c;加入<Context path"/gs" docBase"gs-rest-service-0.1.0.war" debug"0" privileged"true"/> gs相当于虚拟目录&…

C# Thread IsBackground作用

背景之前在做一个定时下载任务的时候&#xff0c;使用的是一个主线程在执行任务&#xff1b;后面需求调整了&#xff0c;需要在启用一个子线程执行优先级更高的单独通道下载。于是下意识的这么做 new Thread//创建后台线程Thread bThread new Thread(new ThreadStart(backgrou…

产品经理的分类及术语详解

一、按项目分类 1、前端型PM 一句话概述&#xff1a;制造口碑带来流量。 偏用户体验&运营&#xff0c;通过极致的产品设计&吸引眼球的产品营销策略&#xff0c;打造口碑&#xff0c;创造一款用户量巨大的产品。 【常见术语】 UCD&#xff08;User Centered Design…

Mybatis 拦截器

Mybatis定义了四种拦截器&#xff1a; Executor (update, query, flushStatements, commit, rollback, getTransaction, close, isClosed)ParameterHandler (getParameterObject, setParameters)ResultSetHandler (handleResultSets, handleOutputParameters)StatementHandler …

1295 N皇后问题

1295 N皇后问题 时间限制: 2 s 空间限制: 128000 KB 题目等级 : 黄金 Gold 题目描述 Description在nn格的棋盘上放置彼此不受攻击的n个皇后。按照国际象棋的规则&#xff0c;皇后可以攻击与之处在同一行或同一列或同一斜线上的棋子。n后问题等价于再nn的棋盘上放置n个皇后&…

CDN的强大功能

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