😺

SadServers 解説

2022/11/01に公開約3,400字

SadServers とは

SadServers とは "Like LeetCode for Linux" と あるように、 Linuxサーバ管理者向けの LeetCode のようなサイトで、Linuxサーバで発生する様々な問題に対して、その解決を行います。

(ちなみに、LeetCode とは、オンラインで、コーディングテストができるサイトです。GAFAなどのコーディング面接の対策に利用されます。)

問題ごとに、ある課題を持った仮想Linuxサーバが構築され、ブラウザからそのサーバのターミナルをしてして、課題解決を目ざします。

この文章では、SadServerの使い方について説明し、具体的な問題な解き方は、問題リストからのリンク先に記載します。

では、早速 SadServer に アクセスしてみましょう。
SadServer にアクセスすると、次の画面が表示されます。

SadServer

青字の Give Me a SadServer をクリックすると、1問目の問題ページに遷移します。
緑字の Show Me SadServers をクリックすると、問題リストを表示します。
各問題の解き方については、Show Me SadServersのテーブルからたどってください。

Give Me a SadServer

Give Me a SadServerをクリックして、1問目の"Saint John": what is writing to this log file?" を例に、SadServersの使い方、問題の見方について説明します。

問題ページが表示されると、ページ上部に "Your sesrver is being created. This takes about 30 seconds" と表示されます。これは、仮想Linuxサーバを構築しているので、30秒ほど待ちます。


30秒ほど経つと、"Ready! Open the server terminal in a new window" と表示されるので、リンクをクリックすると別Windowでターミナルが表示されます。このターミナルを操作して、問題を解きます。

General Instruction には、各問題共通の説明が記載されています。DeepLでの翻訳を記載します。

あなたは、実際の Linux サーバー(一時的な仮想マシン)に SSH セッションでフルアクセス(root)することができます。割り当てられた時間内にテストに合格するように、説明された問題を修正するために必要なことを何でもしてください。時間経過後、VMは終了します。

制約として、このサーバからインターネットに出ることはできません。DNSはローカルで利用可能です。また、SadServersが正常に動作するために必要な、説明した問題とは無関係のサービス、特にポート:2020と:6767で動作するサービスを妨害しないようにしてください。

行き詰まったときや、どうすればいいかわからないときは、「次のヒント/解決策」ボタンをクリックすると、解決策がわかるまで新しいヒント(と前のヒント)が表示されます。ヒントウィンドウを閉じて、もう一度 "Next Clue / Solution "をクリックすると、新しいヒントが表示されます。

問題が解決したと思ったら、「Check My Solution」ボタンをクリックし、与えられたテスト通りに解決したかどうかを確認します。

大切なのは、ヒントは欲しいときには、Next Clue/Solutionをクリックしてください。クリックするたびに、ヒントが増えます。
ターミナルを操作して、問題が解決したら、Check My Solutionをクリックしてください。

General Instructionの次に、問題が記されています。

  • Senario: 問題のタイトル
  • Level: 難易度 (Easy | Medium | Hard)
  • Description: 問題の本文。
  • Test: テストのパス条件 (クリア条件)
  • Time to Solve: この問題の時間。経過すると、ターミナルがクローズします。リロードすると、最初から試せます。
  • OS: 仮想サーバのOS

Show Me SadServers

緑字の Show Me SadServers をクリックすると、問題リストが表示されます。

リンクがあるものは、リンク先に解き方の解説をしています。

# Name Levle Time Released
1 "Saint John": what is writing to this log file? Easy 10 m 2022-08-03
3 "Saskatoon": counting IPs. Easy 15 m 2022-08-31
4 "Tokyo": can't serve web file Medium 15 m 2022-08-01
5 "Manhattan": can't write data into database. Medium 20 m 2022-06-13
6 "Cape Town": Borked Nginx Medium 15 m 2022-09-11
7 "Salta": Docker container won't start. Medium 15 m 2022-09-16
8 "Jakarta": it's always DNS. Hard 20 m 2022-08-03
9 "Bern": Docker web container can't connect to db container. Hard 20 m 2022-08-04
10 "Singara": Docker and Kubernetes web app not working. Hard 20 m 2022-09-18
11 "Karakorum": WTFIT – What The Fun Is This? Hard 20 m 2022-09-13
12 "Hong-Kong": can't write data into database. Hard 20 m 2022-09-24
13 "Venice": Am I in a container? Medium 15 m 2022-09-25

Discussion

ログインするとコメントできます