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.pswp.cn/news/284184.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/284184.shtml
英文地址,請注明出處:http://en.pswp.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 防護原理是其主要在于在相關節點中成功的建立動態加速機…