Troubleshooting Linux Servers | sadservers | 刷題記錄 | Easy

更新於 2024/12/15閱讀時間約 10 分鐘

Overview

Easy共有九題,所有難度總共有75題,慢慢更新中。


1."Saint John": what is writing to this log file?

Scenario: "Saint John": what is writing to this log file?

Level: Easy

Type: Fix

Access: Public

Description: A developer created a testing program that is continuously writing to a log file /var/log/bad.log and filling up disk. You can check for example with tail -f /var/log/bad.log.

This program is no longer needed. Find it and terminate it.

Test: The log file size doesn't change (within a time interval bigger than the rate of change of the log file).

The "Check My Solution" button runs the script /home/admin/agent/check.sh, which you can see and execute.

Time to Solve: 10 minutes.

  1. tail用於查看文件的末尾內容。-f參數是「follow」的縮寫,讓tail命令保持開啟狀態,並即時顯示文件的最新新增內容。
tail -f /var/log/bad/log
raw-image
  1. lsof 命令用於顯示系統中已打開的文件和這些文件的相關信息。使用 grep 來過濾包含 "/var/log/bad/log" 字串的信息。
lsof | grep "/var/log/bad/log"
# 得知PID為584
raw-image


  1. kill 命令用於向指定的進程發送終止信號,讓該進程正常結束。**584**為PID
kill 584
raw-image


  1. 使用相同指令查看沒有再繼續寫入資料
tail -f /var/log/bad/log

2."Saskatoon": counting IPs.

Scenario: "Saskatoon": counting IPs.

Level: Easy

Type: Do

Description: There's a web server access log file at /home/admin/access.log. The file consists of one line per HTTP request, with the requester's IP address at the beginning of each line.

Find what's the IP address that has the most requests in this file (there's no tie; the IP is unique). Write the solution into a file /home/admin/highestip.txt. For example, if your solution is "1.2.3.4", you can do echo "1.2.3.4" > /home/admin/highestip.txt

Test: The SHA1 checksum of the IP address sha1sum /home/admin/highestip.txt is 6ef426c40652babc0d081d438b9f353709008e93 (just a way to verify the solution without giving it away.)

Time to Solve: 15 minutes.

  1. 計算指定文件 /home/admin/access.log 中的行數
wc -l /home/admin/access.log
raw-image


  1. 顯示文件 /home/admin/access.log 的前五行內容
head -5 /home/admin/access.log
raw-image


  1. 使用 cut 命令來從文件 access.log 中提取字段第一欄(f1),然後使用 -d 設定分隔符為破折號('-'),最後使用 > iplist.txt 將提取的字段保存到名為 iplist.txt 的文件中
cd /home/admin 
#切換到工作目錄

cut -f1 access.log -d '-' > iplist.txt
#將IP提取出來存到iplist.tx

head -5 iplist.txt
# 列出前五行檢查結果
raw-image


  1. 使用 cat 命令輸出 iplist.txt 的內容,通過管道 | 傳遞給 sort 命令對ip進行排序,最後使用 > ip_order.txt 將排序後的結果保存到 ip_order.txt 文件中
  • 因為uniq無法偵測重複行,除非它們彼此相鄰[1]。因此,在使用 uniq之前必須對文件中的內容進行排序 sort
cat iplist.txt | sort > ip_order.txt

head -10 ip_order.txt
# 列出前十行檢查結果
raw-image


  1. 使用uniq命令用於刪除連續重複的行,-c 會顯示每行重複出現的次數。sortuniq 的輸出進行排序,以便使用tail顯示排序後的結果的最後10行。
uniq -c ip_order.txt | sort | tail -10

echo "66.249.73.135" > /home/admin/highestip.txt
#依照題目指示將答案寫入到/home/admin/highestip.txt
raw-image
  1. 送出答案
raw-image

[1] https://www.geeksforgeeks.org/uniq-command-in-linux-with-examples/?ref=header_search#:~:text=Note%3A%20uniq%20isn%E2%80%99t%20able%20to%20detect%20the%20duplicate%20lines%20unless%20they%20are%20adjacent%20to%20each%20other.%20The%20content%20in%20the%20file%20must%20be%20therefore%20sorted%20before%20using%20uniq%20or%20you%20can%20simply%20use%20sort%20%2Du%20instead%20of%20uniq%20command.%C2%A0


3."Santiago": Find the secret combination

Scenario: "Santiago": Find the secret combination

Level: Easy

Type: Do

Description: Alice the spy has hidden a secret number combination, find it using these instructions:

  1. Find the number of lines with occurrences of the string Alice (case sensitive) in the *.txt files in the /home/admin directory
  2. There's a file where Alice appears exactly once. In that file, in the line after that "Alice" occurrence there's a number.

Write both numbers consecutively as one (no new line or spaces) to the solution file. For example if the first number from 1) is 11 and the second 22, you can do echo -n 11 > /home/admin/solution; echo 22 >> /home/admin/solution or echo "1122" > /home/admin/solution.

Test: Running md5sum /home/admin/solution returns d80e026d18a57b56bddf1d99a8a491f9(just a way to verify the solution without giving it away.)

Time to Solve: 15 minutes.

  1. 切換至工作目錄
pwd
cd /home/admin/
ls -l
raw-image


  1. 使用 grep 命令在所有 .txt 的文件中搜尋包含字符串 'Alice' 的行, -c 參數計算匹配的行數
grep -c 'Alice' *.txt
# 相加為411(第一題答案)
raw-image


  1. 使用 grep 命令來在文件 1342-0.txt 中搜尋包含字符串 'Alice' 的行,並接著顯示每個匹配行的後一行(-A1)
grep -A1 'Alice' 1342-0.txt
# 得到下一行出現的數字156(第二題答案)
raw-image


  1. 提交答案
echo '411156' > /home/admin/solution
raw-image

avatar-img
18會員
44內容數
歡迎來到「Marcos的方格子」!目前在「Marcos談科技」撰寫在職涯上學習到的知識,在「Marcos談書」分享我在日常的閱讀和心得,歡迎您的到來!!
留言0
查看全部
avatar-img
發表第一個留言支持創作者!
Marcos的方格子 的其他內容
在 Google Cloud 上保留靜態 IP 位址但未使用時,會按小時收取費用。使用 Cloud Functions 和 Cloud Scheduler 來識別和清理浪費的雲端資源,可以自動化的減少浪費的發生
在 OpenAI 推出 ChatGPT 模型的企業版後不到一天,Google Cloud Next 2023開跑,展示了Google Cloud最新產品發佈,並體現了各科技龍頭在 AI 領域搶佔主導地位的激烈競賽。
在著陸區(Landing Zone)在規劃時,在上一篇文章[1]的網路架構分享是以Shared VPC為例,但是在現實生活中,總是有各種前人留下的歷史共業或公司規範、作業考量而不能使用Shared VPC來集中管理雲端環境的網路架構。 因此分享常見的網路架構設計和設計架構時參考的因素!
💡 什麼是登陸區(Landing Zone)?這是一種模塊化與可擴展的配置,讓組織可以因應商業需要動態使用Google Cloud。
數位轉型是對組織運作方式的根本性重塑。 數位轉型使用各種不同的資訊技術並利用數據驅動來優化工作流程,達到對快速變動的市場更快、更智能、更即時的決策。最終,改變了客戶的期望並創造了新的商機。
在 Google Cloud 上保留靜態 IP 位址但未使用時,會按小時收取費用。使用 Cloud Functions 和 Cloud Scheduler 來識別和清理浪費的雲端資源,可以自動化的減少浪費的發生
在 OpenAI 推出 ChatGPT 模型的企業版後不到一天,Google Cloud Next 2023開跑,展示了Google Cloud最新產品發佈,並體現了各科技龍頭在 AI 領域搶佔主導地位的激烈競賽。
在著陸區(Landing Zone)在規劃時,在上一篇文章[1]的網路架構分享是以Shared VPC為例,但是在現實生活中,總是有各種前人留下的歷史共業或公司規範、作業考量而不能使用Shared VPC來集中管理雲端環境的網路架構。 因此分享常見的網路架構設計和設計架構時參考的因素!
💡 什麼是登陸區(Landing Zone)?這是一種模塊化與可擴展的配置,讓組織可以因應商業需要動態使用Google Cloud。
數位轉型是對組織運作方式的根本性重塑。 數位轉型使用各種不同的資訊技術並利用數據驅動來優化工作流程,達到對快速變動的市場更快、更智能、更即時的決策。最終,改變了客戶的期望並創造了新的商機。
你可能也想看
Google News 追蹤
Thumbnail
徵的就是你 🫵 超ㄅㄧㄤˋ 獎品搭配超瞎趴的四大主題,等你踹共啦!還有機會獲得經典的「偉士牌樂高」喔!馬上來參加本次的活動吧!
Thumbnail
隨著理財資訊的普及,越來越多台灣人不再將資產侷限於台股,而是將視野拓展到國際市場。特別是美國市場,其豐富的理財選擇,讓不少人開始思考將資金配置於海外市場的可能性。 然而,要參與美國市場並不只是盲目跟隨標的這麼簡單,而是需要策略和方式,尤其對新手而言,除了選股以外還會遇到語言、開戶流程、Ap
Thumbnail
呈上篇,若是在大型系統中使用,重複被調用時,在每次紀錄時都會創建一個新的 FileHandler,這會導致日誌處理器不斷累積,從而使日誌重複記錄。 [Python]使用logging創建兩個以上的日誌紀錄 使用__new__的方法來避免重複調用 改良後 setup_logger 方法中創建一
Thumbnail
介紹工作後幾個常見的小問題,包括寫 Log 的好習慣、本地印出錯誤或過程、PHPCS 工具、變數儲存於設定檔、避免魔術數字、程式碼靜態分析與動態分析。
Thumbnail
本文將介紹一些常用的 Linux 指令,幫助新手快速上手。主要內容包括文件和目錄管理(如 ls、cd、mkdir)、檔案操作(如 cp、mv、rm)。通過這些指令的學習,使用者可以更快速地操作 Linux 系統。
Thumbnail
在處理Linux時,遇到了Kubuntu 22.04的SSH連線問題。本文將介紹如何完整移除之前裝過的SSH並重新安裝以解決問題。
Thumbnail
logging 是 Python 中用於記錄程式運行時信息的模組,它可以幫助你在開發過程中更好地管理和追蹤程式的執行狀態和錯誤信息。 本文較著重使用兩種不同的方法來創建日誌紀錄。 其他有關logging的教學,我推薦以下文章,他介紹蠻詳細的,我就不多贅述了。
Thumbnail
打開 PowerShell 關閉wsl  wsl --shutdown 執行: Set-ExecutionPolicy RemoteSigned -Scope CurrentUser iwr -useb https://raw.githubusercontent.com/okibcn/wslc
Thumbnail
資料庫之備份工作大都是自動執行,但是執行結果是否成功,需要安排人員去檢查,有時疏忽忘記確認作業,致備份工作失敗仍不知道,等到有一天需要回復舊有資料的場合時,才發現找不到過去某段期間的備份資料,造成無法彌補之後果。   2.    改善: 2.1 設計一執行檔,功能為打開備
Thumbnail
題目敘述 題目會給我們一個定義好的類別和function介面,要求我們實作建構子和ping() function來滿足指定的需求。 RecentCounter類別的建構子 建構子應該初始化來電紀錄,內容為空(零筆資料) int ping(int t) t代表來電時刻,單位是毫秒m
Thumbnail
題目敘述 題目會給我們兩個輸入,字串s和字串t,要求我們判定s是否為t的子序列(Subsequence)? 題目的原文敘述 測試範例 Example 1: Input: s = "abc", t = "ahbgdc" Output: true Example 2: Input:
Thumbnail
Semgrep 是一個功能強大的 SAST 工具,可以幫助開發人員早期發現程式碼中的安全問題,本文介紹如何將 Semgrep 整合到 GitLab Pipeline 以進行 SAST 掃描。
Thumbnail
徵的就是你 🫵 超ㄅㄧㄤˋ 獎品搭配超瞎趴的四大主題,等你踹共啦!還有機會獲得經典的「偉士牌樂高」喔!馬上來參加本次的活動吧!
Thumbnail
隨著理財資訊的普及,越來越多台灣人不再將資產侷限於台股,而是將視野拓展到國際市場。特別是美國市場,其豐富的理財選擇,讓不少人開始思考將資金配置於海外市場的可能性。 然而,要參與美國市場並不只是盲目跟隨標的這麼簡單,而是需要策略和方式,尤其對新手而言,除了選股以外還會遇到語言、開戶流程、Ap
Thumbnail
呈上篇,若是在大型系統中使用,重複被調用時,在每次紀錄時都會創建一個新的 FileHandler,這會導致日誌處理器不斷累積,從而使日誌重複記錄。 [Python]使用logging創建兩個以上的日誌紀錄 使用__new__的方法來避免重複調用 改良後 setup_logger 方法中創建一
Thumbnail
介紹工作後幾個常見的小問題,包括寫 Log 的好習慣、本地印出錯誤或過程、PHPCS 工具、變數儲存於設定檔、避免魔術數字、程式碼靜態分析與動態分析。
Thumbnail
本文將介紹一些常用的 Linux 指令,幫助新手快速上手。主要內容包括文件和目錄管理(如 ls、cd、mkdir)、檔案操作(如 cp、mv、rm)。通過這些指令的學習,使用者可以更快速地操作 Linux 系統。
Thumbnail
在處理Linux時,遇到了Kubuntu 22.04的SSH連線問題。本文將介紹如何完整移除之前裝過的SSH並重新安裝以解決問題。
Thumbnail
logging 是 Python 中用於記錄程式運行時信息的模組,它可以幫助你在開發過程中更好地管理和追蹤程式的執行狀態和錯誤信息。 本文較著重使用兩種不同的方法來創建日誌紀錄。 其他有關logging的教學,我推薦以下文章,他介紹蠻詳細的,我就不多贅述了。
Thumbnail
打開 PowerShell 關閉wsl  wsl --shutdown 執行: Set-ExecutionPolicy RemoteSigned -Scope CurrentUser iwr -useb https://raw.githubusercontent.com/okibcn/wslc
Thumbnail
資料庫之備份工作大都是自動執行,但是執行結果是否成功,需要安排人員去檢查,有時疏忽忘記確認作業,致備份工作失敗仍不知道,等到有一天需要回復舊有資料的場合時,才發現找不到過去某段期間的備份資料,造成無法彌補之後果。   2.    改善: 2.1 設計一執行檔,功能為打開備
Thumbnail
題目敘述 題目會給我們一個定義好的類別和function介面,要求我們實作建構子和ping() function來滿足指定的需求。 RecentCounter類別的建構子 建構子應該初始化來電紀錄,內容為空(零筆資料) int ping(int t) t代表來電時刻,單位是毫秒m
Thumbnail
題目敘述 題目會給我們兩個輸入,字串s和字串t,要求我們判定s是否為t的子序列(Subsequence)? 題目的原文敘述 測試範例 Example 1: Input: s = "abc", t = "ahbgdc" Output: true Example 2: Input:
Thumbnail
Semgrep 是一個功能強大的 SAST 工具,可以幫助開發人員早期發現程式碼中的安全問題,本文介紹如何將 Semgrep 整合到 GitLab Pipeline 以進行 SAST 掃描。