<em id="pn7p8"><acronym id="pn7p8"><u id="pn7p8"></u></acronym></em>

    <th id="pn7p8"></th>

    <button id="pn7p8"></button>

      <dd id="pn7p8"></dd>
      <progress id="pn7p8"><track id="pn7p8"></track></progress>

      Linux培訓
      達內IT學院

      400-111-8989

      “懶惰”Linux 管理員的 10 個關鍵技巧

      • 發布:Linux培訓
      • 來源:網絡
      • 時間:2019-02-12 09:53

      好的系統管理員區分在效率上。如果一位高效的系統管理員能在 10 分鐘內完成一件他人需要 2 個小時才能完成的任務,那么他應該受到獎勵(得到更多報酬),因為他為公司節約了時間,而時間就是金錢,不是嗎?

      技巧是為了提高管理效率。雖然本文不打算對所有技巧進行討論,但是我會介紹 “懶惰” 管理員所用的 10 個基本法寶。這些技巧可以節約時間 —— 即使沒有因為高效而得到更多的報酬,但至少可以有更多的時間去玩。

      技巧 1卸載無響應的 DVD 驅動器

      網絡新手的經歷:按下服務器(運行基于 Redmond 的操作系統)DVD 驅動器上的 Eject 按鈕時,它會立即彈出。他然后抱怨說,在大多數企業 Linux 服務器中,如果在那個目錄中運行某個進程,彈出就不會發生。作為一名長期的 Linux 管理員,我會重啟機器。如果我不清楚正在運行什么,以及為何不釋放 DVD 驅動器,我則會彈出磁盤。但這樣效率很低。

      下面介紹如何找到保持 DVD 驅動器的進程,并輕松彈出 DVD 驅動器:首先進行模擬。在 DVD 驅動器中放入磁盤,打開一個終端,裝載 DVD 驅動器:

      # mount /media/cdrom

      # cd /media/cdrom

      # while [ 1 ]; do echo "All your drives are belong to us!"; sleep 30; done

      現在打開第二個終端并試著彈出 DVD 驅動器:

      # eject

      將得到以下消息:

      umount: /media/cdrom: device is busy

      在釋放該設備之前,讓我們找出誰在使用它。

      # fuser /media/cdrom

      進程正在運行,無法彈出磁盤其實是我們的錯誤。

      現在,如果您是根用戶,可以隨意終止進程:

      # fuser -k /media/cdrom

      現在終于可以卸載驅動器了:

      # eject

      fuser 很正常。

      技巧 2恢復出現問題的屏幕

      嘗試以下操作:

      # cat /bin/cat

      注意!終端就想垃圾一樣。輸入的所有內容非常零亂。那么該怎么做呢?

      輸入 reset。但是,輸入 reset 與 輸入 reboot 或 shutdown 太接近了。嚇得手心冒汗了吧 — 特別是在生產機器上執行這個操作時。

      放心吧,在進行此操作時,機器不會重啟。繼續操作:

      # reset

      現在屏幕恢復正常了。這比關閉窗口后再次登陸好多了,特別是必須經過 5 臺機器和 SSH 才能到達這臺機器時。

      技巧 3屏幕協作

      來自產品工程的高級維護用戶 David 打電話說:“為什么我不能在您部署的這些新機器上編譯 supercode.c”。

      您會問他:“您運行的是什么機器?”

      David 答道:“ Posh”。(這個虛夠的公司將它的 5 臺生產服務器以紀念 Spice Girls 的方式命名)。這下您可以大顯身手了,另一臺機器由 David 操作:

      # su - david

      轉到 posh:

      # ssh posh

      到達之后,運行以下代碼:

      # screen -S foo

      然后呼叫 David:

      “David,在終端運行命令 # screen -x foo”。

      這使您和 David 的會話在 Linux shell 中聯接在一起。您可以輸入,他也可以輸入,但彼此可以看到對方所做的事情。這避免了進入其他層次,而且雙方都有相同的控制權。這樣做的好處是 David 可以觀察到您的故障診斷技巧,并能準確了解如何解決問題。

      最后大家都能看到問題所在:David 的編譯腳本對一個不在此新服務器上的舊目錄進行了硬編碼。將它裝載后再次編譯即可解決問題,然后 David 繼續工作。您則可以繼續之前的娛樂活動。

      關于此技巧需要注意的一點是,雙方需要以同一用戶登錄。screen 命令還可以:實現多個窗口和拆分屏幕。請閱讀手冊頁獲取更多相關信息。

      對于 screen 會話,我還有最后一個技巧。要從中分離并讓它打開,請輸入 Ctrl-A D(即按住 Ctrl 鍵并點擊 A 鍵。然后按 D 鍵)。

      然后通過再次運行 screen -x foo 命令可以重新拼接起來。

      技巧 4找回根密碼

      如果忘記根密碼,就必須重新安裝整臺機器。更慘的是,許多人都會這樣做。但是啟動機器并更改密碼卻十分簡單。這并非在所有情況下都適用(比如設置了一個 GRUB 密碼,但也忘記了),但這里介紹一個 Cent OS Linux 示例,說明一般情況下的操作。

      首先重啟系統。重啟時會跳出如圖 1 所示的 GRUB 屏幕。移動箭頭鍵,這樣可以保留在此屏幕上,而不是進入正常啟動。


      然后,使用箭頭鍵選擇要啟動的內核,并輸入 E 編輯內核行。然后便可看到如圖 2 所示的屏幕:


      再次使用箭頭鍵突出顯示以 kernel 開始的行,按 E 編輯內核參數。到達如圖 3 所示的屏幕時,在圖 3 中所示的參數后追加數字 1 即可:


      然后按 Enter 和 B,內核會啟動到單用戶模式。然后運行 passwd 命令,更改用戶根密碼:

      sh-3.00# passwd

      New UNIX password:

      Retype new UNIX password:

      passwd: all authentication tokens updated successfully

      現在可以重啟了,機器將使用新密碼啟動。

      技巧 5 SSH 后門

      有很多次,我所在的站點需要某人的遠程支持,而他卻被公司防火強阻擋在外。很少有人意識到,如果能通過防火墻到達外部,那么也能輕松實現讓外部的信息進來。

      從本意講,這稱為 “在防火墻上砸一個洞”。我稱之為 SSH 后門。為了使用它,必須有一臺作為中介的連接到 Internet 的機器。

      在本例中,將這樣臺機器稱為 blackbox.example.com。公司防火墻后面的機器稱為 ginger。此技術支持的機器稱為 tech。圖 4 解釋了設置過程。


      以下是操作步驟:

      1、檢查什么是允許做的,但要確保您問對了人。大多數人都擔心您打開了防火墻,但他們不明白這是完全加密的。而且,必須破解外部機器才能進入公司內部。不過,您可能屬于 “敢作敢為” 型的人物。自己進行判斷應該選擇的方式,但不如意時不抱怨別人。

      2、使用 -R 標記通過 SSH 從 ginger 連接到 blackbox.example.com。假設您是 ginger 上的根用戶,tech 需要根用戶 ID 來幫助使用系統。使用 -R 標記將 blackbox 上端口 2222 的說明轉發到 ginger 的端口 22 上。這就設置了 SSH 通道。注意,只有 SSH 通信可以進入 ginger:您不會將 ginger 放在無保護的 Internet 上。

      可以使用以下語法實現此操作:

      ~# ssh -R 2222:localhost:22 thedude@blackbox.example.com

      進入 blackbox 后,只需一直保持登錄狀態。我總是輸入以下命令:

      thedude@blackbox:~$ while [ 1 ]; do date; sleep 300; done

      使機器保持忙碌狀態。然后最小化窗口。

      1、現在指示 tech 上的朋友使用 SSH 連接到 blackbox,而不需要使用任何特殊的 SSH 標記。但必須把密碼給他們:

      root@tech:~# ssh thedude@blackbox.example.com.

      2、tech 位于 blackbox 上后,可以使用以下命令從 SSH 連接到 ginger:

      thedude@blackbox:~$: ssh -p 2222 root@localhost

      3、Tech 將提示輸入密碼。應該輸入 ginger 的根密碼。

      4、現在您和來自 tech 的支持可以一起工作并解決問題。甚至需要一起使用屏幕!(參見 技巧 4)。

      技巧 6 通過 SSH 通道進行遠程 VNC 會話

      VNC 或虛擬網絡計算已經存在很長時間了。通常,當遠程服務器上的某類圖形程序只能在此服務器上使用時,我才需要 VNC。

      例如,假設在 技巧 5 中,ginger 是一臺存儲服務器。許多設備都使用 GUI 程序來管理存儲控制器。這些 GUI 管理工具通常需要通過一個網絡直接連接到存儲服務器,而這個網絡有時保存在專用的子網絡中。因此,只能通過 ginger 訪問這個 GUI。

      可以嘗試使用 -X 選項通過 SSH 連接到 ginger 并啟動它,但這對帶寬要求很高,您需要忍受等待的痛苦。VNC 是一個網絡友好的工具,幾乎適用于所有操作系統。

      假設設置與技巧 5 中的一樣,但希望 tech 能訪問 VNC 而不是 SSH。對于這種情況,需要進行一些類似的操作,不過轉發的是 VNC 端口。執行以下操作步驟:

      1、在 ginger 上啟動一個 VNC 服務器會話。運行以下命令:

      root@ginger:~# vncserver -geometry 1024x768 -depth 24 :99

      這些選項指示啟動服務器,分辨率為 1024x768,像素深度為每像素 24 位。如果使用較慢的連接設置,8 也許是更好的選項。使用 :99 指定可訪問 VNC 服務器的端口。VNC 協議在 5900 處啟動,因此 :99 表示服務器可從端口 5999 訪問。

      啟動該會話時,要求您指定密碼。用戶 ID 與啟動 VNC 服務器時的用戶相同(本例中就是根用戶)。

      2、從 ginger 連接到 blackbox.example.com 的 SSH 將 blackbox 上的端口 5999 轉發到 ginger。這通過運行以下命令在 ginger 中完成:

      root@ginger:~# ssh -R 5999:localhost:5999 thedude@blackbox.example.com

      運行此命令后,需要將此 SSH 會話保持為打開狀態,以便保留轉發到 ginger 的端口。此時,如果在 blackbox 上,那么運行以下命令即可訪問 ginger 上的 VNC 會話:

      thedude@blackbox:~$ vncviewer localhost:99

      這將通過 SSH 將端口轉發給 ginger,但我們希望通過 tech 讓 VNC 訪問 ginger。為此,需要另一個通道。

      3、在 tech 中,打開一個通道,通過 SHH 將端口 5999 轉發到 blackbox 上的端口 5999。這通過運行以下命令完成:

      root@tech:~# ssh -L 5999:localhost:5999 thedude@blackbox.example.com

      這次使用的 SSH 標記為 -L,它不是將 5999 放到 blackbox,而是從中獲取。到達 blackbox 后,需要保持此會話為打開狀態。現在即可在 tech 中使用 VNC 了!

      4、在 tech 中,運行以下命令使 VNC 連接到 ginger:

      root@tech:~# vncviewer localhost:99.

      Tech 現在將擁有一個直接到 ginger 的 VNC 會話。

      設置雖然有點麻煩,但比為修復存儲陣列而四處奔波強多了。不過多實踐幾次這就變得容易了。

      對此技巧我還要補充一點:如果 tech 運行的是 Windows? 操作系統,并且沒有命令行 SSH 客戶端,那么 tech 可以運行 Putty。Putty 可以設置為通過查找側欄中的選項來轉發 SSH 端口。如果端口是 5902 而不是本例中的 5999,則可以輸入圖 5 中的內容。


      如果進行了此設置,那么 tech 就可以使用 VNC 連接到 localhost:2,如同 tech 正在 Linux 操作系統上運行一樣。

      技巧 7 檢查帶寬

      設想:公司 A 有一個名為 ginger 的存儲服務器,并通過名為 beckham 的客戶端節點裝載 NFS。公司 A 確定他們需要從 ginger 得到更多的帶寬,因為有大量的節點需要 NFS 裝載 ginger 的共享文件系統。

      實現此操作的最常用和最便宜的方式是將兩個吉比特以太網 NIC 組合在一起。這是最便宜的,因為您通常會有一個額外的可用 NIC 和一個額外的端口。

      所以采取此這個方法。不過現在的問題是:到底需要多少帶寬?

      吉比特以太網理論上的限制是 128MBit/s。這個數字從何而來?看看這些計算:

      1Gb = 1024Mb;1024Mb/8 = 128MB;"b" = "bits,"、"B" = "bytes"

      但實際看到的是什么呢,有什么好的測量方法呢?我推薦一個工具 iperf。可以按照以下方法獲得 iperf:

      # wget http://dast.nlanr.net/Projects/Iperf2.0/iperf-2.0.2.tar.gz

      需要在 ginger 和 beckham 均可見的共享文件系統上安裝此工具,或者在兩個節點上編譯并安裝。我將在兩個節點均可見的 bob 用戶的主目錄中編譯它:

      tar zxvf iperf*gz

      cd iperf-2.0.2

      ./configure -prefix=/home/bob/perf

      make

      make install

      在 ginger 上,運行:

      # /home/bob/perf/bin/iperf -s -f M

      這臺機器將用作服務器并以 MBit/s 為單位輸出執行速度。

      在 beckham 節點上,運行:

      # /home/bob/perf/bin/iperf -c ginger -P 4 -f M -w 256k -t 60

      兩個屏幕上的結果都指示了速度是多少。在使用吉比特適配器的普通服務器上,可能會看到速度約為 112MBit/s。這是 TCP 堆棧和物理電纜中的常用帶寬。通過以端到端的方式連接兩臺服務器,每臺服務器使用兩個聯結的以太網卡,我獲得了約 220MBit/s 的帶寬。

      事實上,在聯結的網絡上看到的 NFS 約為 150-160MBit/s。這仍然表示帶寬可以達到預期效果。如果看到更小的值,則應該檢查是否有問題。

      我最近碰到一種情況,即通過連接驅動程序連接兩個使用了不同驅動程序的 NIC。這導致性能非常低,帶寬約為 20MBit/s,比不連接以太網卡時的帶寬還小!

      技巧 8 命令行腳本和實用程序

      Linux 系統管理員通過使用權威的命令行腳本會變得更高效。這包括巧妙使用循環和知道如何使用 awk、grep 和 sed 等的實用程序解析數據。通常這可以減少擊鍵次數,降低用戶出錯率。

      例如,假設需要為即將安裝的 Linux 集群生成一個新的 /etc/hosts 文件。一般的做法是在 vi 或文本編輯器中添加 IP 地址。不過,可以通過使用現有 /etc/hosts 文件并將以下內容追加到此文件來實現。在命令行上運行:

      # P=1; for i in $(seq -w 200); do echo "192.168.99.$P n$i"; P=$(expr $P + 1);

      done >>/etc/hosts

      200 個主機名(n001 到 n200)將由 IP 地址(192.168.99.1 到 192.168.99.200)來創建。手動填充這樣的文件有可能會創建重復的 IP 地址或主機名,因此這是使用內置命令行消除用戶錯誤的好例子。請注意,這是在 bash shell(大多數 Linux 發行版的默認值)內完成的。

      再舉一個例子,假設要檢查 Linux 集群中的各個計算節點中的內存大小是否一樣。通常,擁有一個發行版或類似的 shell 是最好的。但是為了演示,以下使用 SSH。

      假設 SSH 設置為不使用密碼驗證。然后運行:

      # for num in $(seq -w 200); do ssh n$num free -tm | grep Mem | awk '{print $2}';

      done | sort | uniq

      這樣的命令行相當簡潔。(如果在其中放入正則表達式情況會更糟)。讓我們對它進行細分,詳細討論各部分。

      首先從 001 循環到 200。使用 seq 命令的 -w 選項在前面填充 0。 然后替換 num 變量,創建通過 SSH 連接的主機。有了目標主機后,向它發出命令。本例中是:

      free -m | grep Mem | awk '{print $2}'

      這個命令的意思是:

      使用 free 命令獲取以兆字節為單位的內存大小。

      獲取這個命令的結果,并使用 grep 獲取包含字符串 Mem 的行。

      獲取那一行并使用 awk 輸出第二個字段,它是節點中的總內存。

      在每個節點上執行這個操作。

      在每個節點上執行命令后,200 個節點的整個輸出就傳送(|d)到 sort 命令,以對所有內存值進行排序。

      最后,使用 uniq 命令消除重復項。這個命令會導致以下情況中的一種:

      如果所有節點(n001 到 n200)擁有相同的內存大小,則只顯示一個數字。這個數字就是每個操作系統看到的內存大小。

      如果節點內存大小不同,將會看到幾個內存大小的值。

      最后,如果某個節點上的 SSH 出現故障,則會看到一些錯誤消息。

      這個命令并不是完美無缺的。如果發現與預期不同的內存值,您就不知道是哪一個節點出了問題,或者有多少個節點。為此需要發出另一個命令。

      這個技巧提供了一種查看某些內容的快速方式,而且如果發生錯誤,您可以立刻知道。其價值在于快速檢查。

      技巧 9 控制臺偵察

      有些軟件會向控制臺輸出錯誤消息,而控制臺不一定會顯示在 SHH 會話中。使用 vcs 設備可以進行檢查。在 SSH 會話中,在遠程服務器 # cat /dev/vcs1 上運行以下命令。這將顯示第一個控制臺中的內容。也可以使用 2、3 等查看其他虛擬終端。如果某個用戶在遠程系統上輸入,您將看到他輸入的內容。

      在大多數數據場中,使用遠程終端服務器、KVM 甚至 Serial Over LAN 是查看這類信息的最好方式;它也提供了帶外查看功能的一些好處。使用 vcs 設備能夠提供一種快速帶內方法,這能節省去機房查看控制臺的時間。

      技巧 10 隨機系統信息收集

      在 技巧 8 中,介紹了一個使用命令行獲取有關系統中總內存信息的例子。在這個技巧中,我將介紹幾個其他方法,用于從需要進行驗證、故障診斷或給予遠程支持的系統收集重要信息。

      首先,收集關于處理器的信息。通過以下命令很容易實現:

      # cat /proc/cpuinfo。

      這個命令給出關于處理器的速度、數量和型號的信息。在許多情況下使用 grep 可以得到需要的值。

      我經常做的檢查是確定系統中處理器的數量。因此,如果我買了一臺帶雙核處理器的四核服務器,我可以運行以下命令:

      # cat /proc/cpuinfo | grep processor | wc -l。

      然后我看到值應該是 8。如果不是,我會打電話給供應商,讓他們給我派送另一臺處理器。

      我需要的另一條信息是磁盤信息。可以使用 df 命令獲得。我總是添加 -h 標記,以便看到以十億字節或兆字節為單位的輸出。# df -h 還會顯示磁盤的分區情況。

      列表最后是查看系統固件的方式 —— 一個獲取 BIOS 級別和 NIC 上的固件信息的方法。

      要檢查 BIOS 版本,可以運行 dmidecode 命令。遺憾的是,不能輕易使用 grep 獲取信息,所以這不是一個很有效的方法。對于我的 Lenovo T61 laptop,輸出如下:

      #dmidecode | less

      ...

      BIOS Information

      Vendor: LENOVO

      Version: 7LET52WW (1.22 )

      Release Date: 08/27/2007

      ...

      這比重啟機器并查看 POST 輸出有效得多。

      要檢查以太網適配器的驅動程序和固件版本,請運行 ethtool:

      # ethtool -i eth0

      driver: e1000

      version: 7.3.20-k2-NAPI

      firmware-version: 0.3-0

      結束語

      可以從精通命令行的人那里學習很多技巧。最好的學習方式是:

      與其他人一起工作。共享屏幕會話并觀察其他人是如何工作的 —— 您會發現新的做事方法。可能需要謙虛一點,讓其他人引導,不過通常可以學到很多東西。

      閱讀手冊頁。認真閱讀手冊頁,即使是熟知的命令,也能獲得更深的見解。例如,您以前可能根本不知道可以使用 awk 進行網絡編程。

      解決問題。作為系統管理員,總是要解決問題,不管是您還是其他人引起的問題。這就是經驗,經驗可以使您更優秀、更高效。

      我希望至少有一個技巧能幫助您學習到您不知道的知識。像這樣的基本技巧可以使您更高效,并且能增長經驗,但最重要的是,技巧可以讓您有更多的空閑時間去做自己感興趣的事情,比如玩電子游戲。最好的管理員比較悠閑,因為他們不喜歡工作。他們能找到完成任務的最快方法,并且能快速完成任務,從而保持休閑的生活。

      預約申請免費試聽課

      填寫下面表單即可預約申請免費試聽!怕錢不夠?可就業掙錢后再付學費! 怕學不會?助教全程陪讀,隨時解惑!擔心就業?一地學習,可全國推薦就業!

      上一篇:Linux系統啟動流程探討
      下一篇:從一道面試題談linux下fork的運行機制

      拯救者Linux:我是如何給我的團隊引入Linux的

      Linux只有十三個字符的經典Fork炸彈

      騰訊十年運維老兵:運維團隊的五個“殺手锏”

      為您的Linux應用開發加油提速(二)

      • 掃碼領取資料

        回復關鍵字:視頻資料

        免費領取 達內課程視頻學習資料

      • 視頻學習QQ群

        添加QQ群:1143617948

        免費領取達內課程視頻學習資料

      Copyright ? 2021 Tedu.cn All Rights Reserved 京ICP備08000853號-56 京公網安備 11010802029508號 達內時代科技集團有限公司 版權所有

      選擇城市和中心
      黑龍江省

      吉林省

      河北省

      湖南省

      貴州省

      云南省

      廣西省

      海南省

      高清特黄a大片,日本真人真做爰,特级做人爱C级,免费a级毛片 百度 好搜 搜狗
      <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <文本链> <文本链> <文本链> <文本链> <文本链> <文本链>