网站关键词怎么布局,网站设计分工,网站优化的作用,优化大师电脑版官方请准备三台linux机器为别为A,B,C,要求实现以下内容1、用自己的名字用户完成一把钥匙开多把锁#xff08;A#xff0c;钥匙#xff0c;B,C锁#xff09;的免密码登录部署场景该题在生产环境中的用途为#xff1b;批量分发数据#xff0c;批量发布程序代码#xff0c;批量…请准备三台linux机器为别为A,B,C,要求实现以下内容1、用自己的名字用户完成一把钥匙开多把锁A钥匙B,C锁的免密码登录部署场景该题在生产环境中的用途为批量分发数据批量发布程序代码批量控制管理等。 大型批量管理软件pupet/saltstack2、在1题的前提下同样用自己的名字用户完成多把钥匙开一把锁B,C钥匙A锁的免密码登录B--AC--A一题中我们在A创建了锁和钥匙所以B和C要控制A就先把钥匙发给B和C因为A本地的锁还不正常就像A给B和C发公钥一样给自己再发一份锁的名字为authorrized_keys.这样B和C就能无密码登录A.在A上把钥匙发给B和C$scp -p .ssh/id_dsa bichen192.168.0.102:~/.ssh3、如何实现从A指定目录批量分发文件到B,C,用户的家目录借助1题部署结果考察scp用法$sh fenfa.sh4、实现A指定的目录文件分发到B,C任意目录下不用root用户你会么在客户端执行命令#visduo 输入98gg跳转到98行root ALL(ALL) ALLbichen ALL(ALL) NOPASSWD:/usr/bin/rsync加入bichen用户echo “bichen ALL(ALL) NOPASSWD:/usr/bin/rsync”检查语法[rootlamp01 ~]# visudo -c/etc/sudoers: parsed OK这样子的话bichen这个用户在这个机器上就有root权限可以执行rsync这个命令前提得用sudo提权。或者也不用去客户端因为通过ssh可以连上客户机所以直接执行命令也可以。 在分发机上编辑下面面脚本$0表示此脚本名称$1表示要发送的文件$2表示要发送到远端的路径先将它拷贝到远端用户的家目录在使用sudo提权rsync将其拷贝到对应的路径下。Scp命令后面加\表示此命令执行成功后在执行下一条命令。102.虚拟机未开机所以显示失败。5、如何快速查看所有机器的负载loadcpu内存信息借助问题1的部署结果。思考如果服务器数量多如何并发查看和分发数据[bichennfsserver ~]$ vim view_upload.sh #!/bin/sh if [ $# -ne 1 ]thenecho USAGE:$0 COMMANDexit 1fifor n in 102 104doecho 192.168.0.$nssh -p22 bichen192.168.0.$n $1Done查内存查负载[bichennfsserver ~]$ sh view_upload.sh uptime192.168.0.102Nasty PTR record 192.168.0.102 is set up for 192.168.0.102, ignoring10:18:50 up 5 min, 1 user, load average: 0.00, 0.07, 0.04192.168.0.10410:18:50 up 1:27, 1 user, load average: 0.00, 0.00, 0.00[bichennfsserver ~]$ sh view_upload.sh free -m192.168.0.102Nasty PTR record 192.168.0.102 is set up for 192.168.0.102, ignoringtotal used free shared buffers cachedMem: 980 331 649 1 39 110-/ buffers/cache: 181 799Swap: 1983 0 1983192.168.0.104total used free shared buffers cachedMem: 980 320 659 1 50 103-/ buffers/cache: 166 814Swap: 1983 0 19836、附加题实现每分钟定时分发hosts文件到所有机器上并把分发失败没有分发成功的机器信息以邮件的形式发给运维人员。第一种方案客户端使用mail服务端使用posfix启动posfix服务[rootnfsserver ~]# /etc/init.d/postfix restartShutting down postfix: [ OK ]Starting postfix: [ OK ][rootnfsserver ~]# lsof -i :25COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAMEmaster 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”695410305qq.com /etc/hostsecho “正文”|mail -s “bichen” 695410305qq.com发送邮件结果没收到免费的邮件会经常收不到会耽搁事所以要用收费的或者自己的。[rootnfsserver ~]# mail -s bichen 695410305qq.com /etc/hosts[rootnfsserver ~]# mailqMail queue is empty我们分发hosts的脚本将分发结果追加重定向到/tmp/true.log、/tmp/fail.log,如果fail.log的内容不为空说明有失败的就将fail.log发送到邮箱最后清空日志。#!/bin/sh. /etc/init.d/functionsif [ $# -ne 2 ]thenecho USAGE:$0 FileName RemoteDirexit 1fi for n in 102 104 doscp -rp $1 bichen192.168.0.$n:~ /dev/null\ssh -t bichen192.168.0.$n sudo rsync $1 $2 /dev/nullif [ $? -eq 0 ]thenecho fenfa $1 to $2 192.168.0.$n is ok /tmp/true.logelseecho fenfa $1 to $2 192.168.0.$n is false /tmp/fail.logfidoneif [ -s /tmp/fail.log ]thenmail -s $(date %F\ %T)fenfa host 18689197973163.com/tmp/fail.log /tmp/true.log/tmp/fail.logfi然后做定时任务所有的脚本都放在/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 fromSmtpUsername smtp-auth-passwordSmtp-authlogin7、实现每天晚上00点定时把B,C上的数据备份到A上并把备份结果信息以邮件的形式发给运维人员。提示备份的目录要包含ip或主机名使用scp写成脚本做成定时任务8、用expect无交互式的批量分发密钥到B,C即在第一步建立免密码认证之前分发密钥就实现非交互批量发布。如果一千太机器在第一做无密码认证时得输入1000次yes和1000次password。1安装expect[rootnfsserver ~]# yum install expect[rootnfsserver ~]# which expect/usr/bin/expect2创建expect脚本 定义file变量是我们的公钥。Host为主机ip。两个参数发送yes发送密码[bichennfsserver ~]$ vim fenfa_sshkey.exp#!/usr/bin/expectif { $argc !2 } {send_user usage: expect fenfa_sshkey.exp file host\nexit} #define varset file [lindex $argv 0]set host [lindex $argv 1]set password yankefei#spawn scp /etc/hosts root192.168.0.102:/etc/hosts#spawn scp -P222 $file bichen$host:$dir#spawn ssh-copy-id -i $file -p 222 bichen$hostspawn ssh-copy-id -i $file -p 22 bichen$hostexpect {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 21 expect fenfa_sshkey.exp ~/.ssh/id_dsa.pub 192.168.0$ipif [ $? -eq 0 ];thenantion $ip /bin/trueantion $ip /bin/falsefidone转载于:https://blog.51cto.com/10980975/2069988