日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > linux >内容正文

linux

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

發(fā)布時間:2023/12/6 linux 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 linux批量分发必会面试题,通过邮件反馈结果。 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

請準(zhǔn)備三臺linux機(jī)器為別為A,B,C,要求實(shí)現(xiàn)以下內(nèi)容
1、用自己的名字用戶完成一把鑰匙開多把鎖(A,鑰匙,B,C鎖)的免密碼登錄部署場景
該題在生產(chǎn)環(huán)境中的用途為;批量分發(fā)數(shù)據(jù),批量發(fā)布程序代碼,批量控制管理等。

大型批量管理軟件pupet/saltstack
2、在1題的前提下同樣用自己的名字用戶完成多把鑰匙開一把鎖(B,C鑰匙,A鎖)的免密碼登錄
B--A
C--A
一題中我們在A創(chuàng)建了鎖和鑰匙,所以B和C要控制A就先把鑰匙發(fā)給B和C,因?yàn)锳本地的鎖還不正常,就像A給B和C發(fā)公鑰一樣給自己再發(fā)一份,鎖的名字為authorrized_keys.這樣B和C就能無密碼登錄A.
在A上把鑰匙發(fā)給B和C
$scp -p .ssh/id_dsa bichen@192.168.0.102:~/.ssh
3、如何實(shí)現(xiàn)從A指定目錄批量分發(fā)文件到B,C,用戶的家目錄(借助1題部署結(jié)果)考察scp用法
$sh fenfa.sh
4、實(shí)現(xiàn)A指定的目錄文件分發(fā)到B,C任意目錄下(不用root用戶你會么)
在客戶端執(zhí)行命令
#visduo 輸入98gg跳轉(zhuǎn)到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這個用戶在這個機(jī)器上就有root權(quán)限可以執(zhí)行rsync這個命令,前提得用sudo提權(quán)。
或者也不用去客戶端,因?yàn)橥ㄟ^ssh可以連上客戶機(jī),所以直接執(zhí)行命令也可以。

在分發(fā)機(jī)上編輯下面面腳本,$0表示此腳本名稱,$1表示要發(fā)送的文件,$2表示要發(fā)送到遠(yuǎn)端的路徑,先將它拷貝到遠(yuǎn)端用戶的家目錄,在使用sudo提權(quán)rsync將其拷貝到對應(yīng)的路徑下。Scp命令后面加&&\表示此命令執(zhí)行成功后在執(zhí)行下一條命令。102.虛擬機(jī)未開機(jī)所以顯示失敗。

5、如何快速查看所有機(jī)器的負(fù)載load,cpu,內(nèi)存信息(借助問題1)的部署結(jié)果。
(思考如果服務(wù)器數(shù)量多,如何并發(fā)查看和分發(fā)數(shù)據(jù))
[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
查內(nèi)存,查負(fù)載
[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、附加題:實(shí)現(xiàn)每分鐘定時分發(fā)hosts文件到所有機(jī)器上,并把分發(fā)失敗,沒有分發(fā)成功的機(jī)器信息以郵件的形式發(fā)給運(yùn)維人員。

第一種方案:客戶端使用mail,服務(wù)端使用posfix
啟動posfix服務(wù)
[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命令,發(fā)郵件格式
mail -s “標(biāo)題” 郵件地址 <文件
mail -s “bichen”695410305@qq.com </etc/hosts
echo “正文”|mail -s “bichen” 695410305@qq.com
發(fā)送郵件,結(jié)果沒收到免費(fèi)的郵件會經(jīng)常收不到會耽擱事,所以要用收費(fèi)的,或者自己的。
[root@nfsserver ~]# mail -s "bichen" 695410305@qq.com </etc/hosts
[root@nfsserver ~]# mailq
Mail queue is empty
我們分發(fā)hosts的腳本,將分發(fā)結(jié)果追加重定向到/tmp/true.log、/tmp/fail.log,如果fail.log
的內(nèi)容不為空,說明有失敗的,就將fail.log發(fā)送到郵箱,最后清空日志。
#!/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
然后做定時任務(wù),所有的腳本都放在/server/scripts
#Crontab -u bichen -e 表示在bichen用戶下做定時任務(wù)
#fenfa hosts by yankefei at 20170807

          • /bin/sh /server/scripts/fenfa_hosts.sh &>/dev/null
            配置mail使用外部smtp發(fā)郵件
            通過修改配置文件可以使用外部smtp服務(wù)器,可以到達(dá)不使用sendmail等內(nèi)部郵件服務(wù)而用外部的smtp服務(wù)器發(fā)送郵件目的
            修改/etc/mail.rc最后一行加入
            Set from=
            Smtp=
            Username smtp-auth-password=
            Smtp-auth=login
            7、實(shí)現(xiàn)每天晚上00點(diǎn)定時把B,C上的數(shù)據(jù)備份到A上,并把備份結(jié)果信息以郵件的形式發(fā)給運(yùn)維人員。提示備份的目錄要包含ip或主機(jī)名
            使用scp寫成腳本做成定時任務(wù)

            8、用expect無交互式的批量分發(fā)密鑰到B,C即在第一步建立免密碼認(rèn)證之前分發(fā)密鑰就實(shí)現(xiàn)非交互批量發(fā)布。(如果一千太機(jī)器在第一做無密碼認(rèn)證時,得輸入1000次yes和1000次password)。
            (1)安裝expect
            [root@nfsserver ~]# yum install expect
            [root@nfsserver ~]# which expect
            /usr/bin/expect
            (2創(chuàng)建expect腳本 定義file變量,是我們的公鑰。Host為主機(jī)ip。兩個參數(shù)
            ,發(fā)送yes發(fā)送密碼)
            [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實(shí)現(xiàn)了一臺的免人工交互,所以還要在寫個腳本調(diào)用此腳本實(shí)現(xiàn)多臺非人工交互。
#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

轉(zhuǎn)載于:https://blog.51cto.com/10980975/2069988

總結(jié)

以上是生活随笔為你收集整理的linux批量分发必会面试题,通过邮件反馈结果。的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。