<menu id="guoca"></menu>
<nav id="guoca"></nav><xmp id="guoca">
  • <xmp id="guoca">
  • <nav id="guoca"><code id="guoca"></code></nav>
  • <nav id="guoca"><code id="guoca"></code></nav>

    系統管理員都應該知道的20個Linux命令(上)

    VSole2022-06-25 07:54:23

    在一個充斥著新工具和多樣化開發環境的世界中,幾乎所有開發人員或工程師都有必要學習一些基本的系統管理命令。特定的命令和軟件包可以幫助開發人員組織、排除故障并優化其應用程序,并且在出現問題時為操作員和系統管理員提供有價值的分類信息。

    無論你是新開發人員還是希望管理自己的應用程序,以下20個基本的sysadmin命令都可以幫助你更好地理解應用程序。它們還可以幫助你向系統管理員描述問題,并排除應用程序可能在本地工作而不在遠程主機上工作的原因。這些命令適用于Linux開發環境、容器、虛擬機(VM)和裸機。

    1. curl

    curl調用一個URL。使用此命令測試應用程序的端點或與上游服務端點的連接。curl對于確定應用程序是否可以訪問其他服務(如數據庫)或檢查服務是否正常非常有用。

    例如,假設您的應用程序拋出HTTP 500錯誤,指示它無法訪問MongoDB數據庫:

    $ curl -I -s myapplication:5000
    HTTP/1.0 500 INTERNAL SERVER ERROR
    


    -I 選項顯示頁面頭信息(header),-s選項不顯示頁面body信息。從本地桌面檢查數據庫的終結點:

    $ curl -I -s database:27017
    HTTP/1.0 200 OK
    


    那么問題出在哪里呢?檢查應用程序是否可以從應用程序主機訪問數據庫以外的其他位置:

    $ curl -I -s https://opensource.com
    HTTP/1.1 200 OK
    


    看起來沒問題。現在嘗試從應用程序主機訪問數據庫。你的應用程序正在使用數據庫的主機名,請首先嘗試:

    $ curl database:27017
    curl: (6) Couldn't resolve host 'database'
    


    這表示應用程序無法解析數據庫,因為數據庫的URL不可用,或者主機(容器或VM)沒有可用于解析主機名的名稱服務器。


    2. python -m json.tool / jq

    了解了curl后,信息的輸出可能比較很難讀取。所以有時候你需要提高輸出信息的可讀性。Python有一個內置的JSON庫,可以幫助實現這一點。您可以使用 python-m json.tool 縮進和組織json。要使用Python的JSON模塊,將JSON文件的輸出通過管道傳輸到python -m json.tool命令中。


    $ cat test.json
    {"title":"Person","type":"object","properties":{"firstName":{"type":"string"},"lastName":{"type":"string"},"age":{"description":"Age in years","type":"integer","minimum":0}},"required":["firstName","lastName"]}
    


    要使用Python庫,請使用-m(module)選項將輸出通過管道傳輸到Python:


    $ cat test.json | python -m json.tool
    {
        "properties": {
            "age": {
                "description": "Age in years",
                "minimum": 0,
                "type": "integer"
            },
            "firstName": {
                "type": "string"
            },
            "lastName": {
                "type": "string"
            }
        },
        "required": [
            "firstName",
            "lastName"
        ],
        "title": "Person",
        "type": "object"
    }
    


    對于更高級的JSON解析,您可以安裝jq。jq提供了一些從JSON輸入中提取特定值的選項。要像上面的Python模塊一樣漂亮地打印,只需將jq應用于輸出。


    $ cat test.json | jq
    {
      "title": "Person",
      "type": "object",
      "properties": {
        "firstName": {
          "type": "string"
        },
        "lastName": {
          "type": "string"
        },
        "age": {
          "description": "Age in years",
          "type": "integer",
          "minimum": 0
        }
      },
      "required": [
        "firstName",
        "lastName"
      ]
    }
    


    3. ls

    ls列出目錄中的文件。系統管理員和開發人員經常發出此命令。在容器空間中,此命令可以幫助確定容器映像的目錄和文件。除了查找文件外,ls還可以幫助您檢查權限。在下面的示例中,由于權限問題,您無法運行myapp。當您使用ls-l檢查權限時,您會發現這些權限在-rw-r--r--中沒有“x”,它們是只讀和寫的。


    $ ./myapp
    bash: ./myapp: Permission denied
    $ ls -l myapp
    -rw-r--r--. 1 root root 33 Jul 21 18:36 myapp
    


    4. tail

    tail顯示文件的最后一部分。你通常不需要每個日志行來進行故障排除。相反,您希望檢查日志中關于應用程序最近請求的內容。例如,當您向Apache HTTP服務器發出請求時,你可以使用tail檢查日志中發生了什么。


    $ tail -f /var/log/httpd/access.log
    


    -f 選項表示“follow”,該選項在日志行寫入文件時輸出日志行。該示例有一個后臺腳本,每隔幾秒鐘訪問一次端點,日志記錄請求。您也可以使用tail來查看文件的最后100行(使用-n選項),而不是實時跟蹤日志。


    $ tail -n 100 /var/log/httpd/access_log
    


    5. cat

    cat連接并打印文件。您可以發出cat來檢查依賴項文件的內容,或者確認您已經在本地構建的應用程序的版本。


    $ cat requirements.txt
    flask
    flask_pymongo
    


    上面的示例檢查Python Flask應用程序是否將Flask列為依賴項。


    6. grep

    grep搜索文件模式。如果要在另一個命令的輸出中查找特定模式,grep將高亮顯示相關行。使用此命令搜索日志文件、特定進程等。如果您想查看ApacheTomcat是否啟動,那么您可能會被大量的行所淹沒。通過將輸出管道化到grep命令,可以隔離指示服務器啟動的行。


    $ cat tomcat.log | grep org.apache.catalina.startup.Catalina.start
    01-Jul-2017 18:03:47.542 INFO [main] org.apache.catalina.startup.Catalina.start Server startup in 681 ms
    


    7. ps

    ps命令是procps-ng包的一部分,它提供用于調查進程ID的有用命令,顯示正在運行的進程的狀態。使用此命令確定正在運行的應用程序或確認預期進程。例如,如果要檢查正在運行的Tomcat web服務器,可以使用ps及其選項來獲取Tomcat的進程ID。


    $ ps -ef
    UID        PID  PPID  C STIME TTY          TIME CMD
    root         1     0  2 18:55 ?        00:00:02 /docker-java-home/jre/bi
    root        59     0  0 18:55 pts/0    00:00:00 /bin/sh
    root        75    59  0 18:57 pts/0    00:00:00 ps -ef
    為了更清晰,可以結合管道使用grep:
    $ ps -ef | grep tomcat
    root         1     0  1 18:55 ?        00:00:02 /docker-java-home/jre/bi
    


    8. env

    env允許您設置或打印環境變量。在故障排除過程中,您可能會發現它有助于檢查錯誤的環境變量是否會阻止應用程序啟動。在下面的示例中,此命令用于檢查應用程序主機上設置的環境變量。


    $ env
    PYTHON_PIP_VERSION=9.0.1
    HOME=/root
    DB_NAME=test
    PATH=/usr/local/bin:/usr/local/sbin
    LANG=C.UTF-8
    PYTHON_VERSION=3.4.6
    PWD=/
    DB_URI=mongodb://database:27017/test
    


    請注意,應用程序正在使用Python,并且具有連接到MongoDB數據庫的環境變量。


    9. top

    top顯示并更新已排序的進程信息。使用此監視工具可以確定哪些進程正在運行,以及它們消耗了多少內存和CPU。當你運行一個應用程序并在一分鐘后消亡時,會出現一種常見情況。首先,檢查應用程序的返回錯誤,這是一個內存錯誤:


    $ tail myapp.log
    Traceback (most recent call last):
    MemoryError
    


    真的是應用程序內存不足嗎?要確認,請使用top來確定應用程序消耗的CPU和內存量。在發布top時,您注意到一個Python應用程序使用了大部分CPU,內存使用率不斷攀升,并懷疑它就是您的應用程序。當它運行時,點擊“C”鍵可以看到完整的命令,如果進程是您的應用程序,則可以進行反向工程。它原來是內存密集型應用程序(memeater.py)。當您的應用程序內存不足時,系統將以內存不足(OOM)錯誤終止它。

    應用程序的內存和CPU使用率增加,最終被殺死


    通過點擊“C”鍵,您可以看到啟動應用程序的完整命令


    除了檢查您自己的應用程序外,您還可以使用top調試其他使用CPU或內存的進程。


    10. netstat

    netstat顯示網絡狀態。此命令顯示正在使用的網絡端口及其傳入連接。然而,netstat在Linux上并不是現成的。如果需要安裝它,可以在net-tools包中找到它。作為在本地進行實驗或將應用程序推送到主機的開發人員,您可能會收到一個錯誤,即端口已分配或地址已在使用。將netstat與協議、進程和端口選項一起使用表明,Apache HTTP服務器已經在下面的主機上使用了端口80。

    使用netstat-tulpn表明Apache已經在這臺機器上占用了端口80

    本文作者:Rosemary Wang,翻譯:GLIU

    原文來自:www.opensource.com

    python系統管理員
    本作品采用《CC 協議》,轉載必須注明作者和本文鏈接
    安全研究人員和系統管理員開發了一個工具,可以幫助用戶檢查 NPM JavaScript 軟件注冊表中軟件包中的清單不匹配。
    在一個充斥著新工具和多樣化開發環境的世界中,幾乎所有開發人員或工程師都有必要學習一些基本的系統管理命令。特定的命令和軟件包可以幫助開發人員組織、排除故障并優化其應用程序,并且在出現問題時為操作員和系統管理員提供有價值的分類信息。 無論你是新開發人員還是希望管理自己的應用程序,以下20個基本的sysadmin命令都可以幫助你更好地理解應用程序。它們還可以幫助你向系統管理員描述問題,并排除應用程序可
    調研還表明,僅一小部分CISO晉升高管層,兼具業務和技術職責。其中,超過三分之二的受訪CISO供職價值超50億美元的大企業。隨后,他一路晉升,成長為摩根大通旗下Bank One零售集團的CISO。之后,West供職美國五三銀行,擔任這家歷史悠久的銀行的企業CISO。West將其導師的成就歸功于能向領導層和董事會講好故事。據《財富》報道,真正的高管CISO非常稀缺,他們的薪酬在百萬美元以上。
    WebSecProbe是一款功能強大的Web應用程序網絡安全評估工具,該工具專為網絡安全愛好者、滲透測試人員和系統管理員設計,可以執行精確而深入的復雜網絡安全評估。
    近日,安全公司Gemini Advisory報道,黑客組織FIN7假冒網絡安全公司向企業提供滲透測試“服務”來實施勒索軟件攻擊。FIN7,又名“Carbanak”,自2015年首次出現在網絡犯罪領域以來就一直參與網絡攻擊并竊取現金,包括用MITM中間人攻擊惡意軟件感染ATM提款機。
    隨著攻防演練的頻繁和?們安全意識的提升,企業內部Windows主機的?令也設置的較為復雜,經 常拿到windows 服務器的時候,獲取到了hash,但是?法解密出密碼的情況,這時候就需要?法,攻擊者不需要花費時間來懟hash進?02測試環境Windows server 2012 ?先需要獲取ntml hash,由于直接從內存讀取到的可能是密碼修改之前的hash,這?些遠程命令的執??持wmi,默認開啟,且windows 默認不會將wmi 的操作記錄到?具的原理是wmi 創建進程執?impacket 中的smbexec 程序,命令如下python3 smbexec.py -hashes
    我經常聽到朋友問,是否有更好的Web日志安全性分析工具? 首先,我們應該清楚的是,日志文件不僅可以幫助我們追蹤入侵者的來源并找到其攻擊路徑,而且在正常的操作和維護中,日志還可以反映出許多安全攻擊。 一個簡單易用的Web日志分析工具可以大大提高效率。當前,行業中有許多日志分析工具。今天,我們推薦十種易于使用的Web日志安全性分析工具。
    VSole
    網絡安全專家
      亚洲 欧美 自拍 唯美 另类