Penguasaan Baris Perintah Linux & Penskripan Bash · Pelajaran

Probe Kesihatan, Gerbang Kesediaan dan Gelung Menunggu

Laksanakan gelung menunggu kebergantungan dan probe keaktifan supaya perkhidmatan dalam bekas dimulakan dengan boleh dipercayai

Pelajaran 4 daripada 413 langkah

Probe Kesihatan, Gerbang Kesediaan dan Gelung Menunggu ialah pelajaran Penguasaan Baris Perintah Linux & Penskripan Bash percuma di CoddyKit. Ini ialah pelajaran 4 daripada 4. Anda boleh membaca keseluruhan pelajaran di bawah secara percuma — kemudian berlatih secara praktikal dalam pelayar menggunakan penyunting kod terbina dalam dan tutor kecerdasan buatan 24/7. Pelajaran ini merupakan sebahagian daripada laluan pembelajaran Penguasaan Baris Perintah Linux & Penskripan Bash, dan kemajuan anda disegerakkan merentas web serta aplikasi CoddyKit. Kursus Penguasaan Baris Perintah Linux & Penskripan Bash merangkumi sejumlah 4 pelajaran.

Mengapa Perkhidmatan Gagal Semasa Dimulakan

Dalam persekitaran berbekas, perkhidmatan jarang dimulakan secara berasingan. Aplikasi web memerlukan pangkalan datanya sedia, perkhidmatan mikro memerlukan broker mesejnya tersedia dan pekerja memerlukan cachenya diisi sebelum dapat memproses tugas.

Tanpa penyelarasan, bekas dimulakan secara selari dan permintaan pertama tiba sebelum kebergantungan sihat. Hasilnya ialah ralat sambungan ditolak, pengecualian penuding nol dan keadaan permulaan yang rosak sehingga memerlukan pemulaan semula secara manual.

  • Pemeriksaan keaktifan — adakah proses masih berjalan dan tidak tersekat?
  • Pemeriksaan kesediaan — adakah perkhidmatan sedia menerima trafik?
  • Gelung menunggu — skrip permulaan yang menyekat sehingga kebergantungan boleh dicapai

Kubernetes menyediakan mekanisme pemeriksaan terbina dalam, tetapi skrip cangkerang yang menggerakkan initContainers, pembungkus entrypoint.sh dan semakan kesihatan kendiri ditulis dalam Bash. Penguasaannya ialah kemahiran teras DevOps.

Corak Menunggu

Gelung menunggu kebergantungan yang paling mudah meninjau sasaran pada selang tetap sehingga sasaran itu boleh dicapai. Bentuk lazimnya menggunakan gelung while dengan nc (netcat) atau curl untuk memeriksa port TCP atau titik akhir HTTP.

Keputusan reka bentuk utama:

  • Masa tamat — hentikan selepas N saat supaya kebergantungan yang rosak tidak menyebabkan pod tergantung selama-lamanya
  • Selang pengunduran — tunggu antara pemeriksaan untuk mengelakkan perkhidmatan yang sedang pulih daripada menerima terlalu banyak permintaan
  • Kod keluar — keluar dengan kod 1 apabila masa tamat supaya bekas dimulakan semula (atau bekas pemulaan gagal dengan jelas)

Petikan di bawah menunggu sehingga 60 saat untuk port TCP menerima sambungan sebelum melancarkan proses utama.

#!/usr/bin/env bash
set -euo pipefail

HOST="${DB_HOST:-postgres}"
PORT="${DB_PORT:-5432}"
TIMEOUT=60
INTERVAL=2
ELAPSED=0

echo "[wait-for] Waiting for ${HOST}:${PORT}..."

until nc -z "$HOST" "$PORT" 2>/dev/null; do
  if (( ELAPSED >= TIMEOUT )); then
    echo "[wait-for] Timed out after ${TIMEOUT}s waiting for ${HOST}:${PORT}" >&2
    exit 1
  fi
  echo "[wait-for] ${HOST}:${PORT} not ready — retrying in ${INTERVAL}s (${ELAPSED}s elapsed)"
  sleep "$INTERVAL"
  (( ELAPSED += INTERVAL ))
done

echo "[wait-for] ${HOST}:${PORT} is up — continuing"
exec "$@"

Pemeriksaan Kesediaan HTTP dengan curl

Sambungan TCP hanya memberitahu anda bahawa port terbuka — bukan bahawa aplikasi di belakangnya sedia melayan permintaan. Banyak perkhidmatan mendedahkan titik akhir khusus seperti /health atau /readyz yang mengembalikan HTTP 200 hanya apabila semua subsistem dalaman telah dimulakan.

Gunakan curl --fail --silent --output /dev/null untuk memeriksa titik akhir kesediaan HTTP. Bendera --fail menyebabkan curl keluar dengan kod 22 untuk respons 4xx/5xx, lalu menggerakkan logik percubaan semula dengan kemas.

Bendera penting yang perlu diketahui:

  • --fail — anggap ralat HTTP sebagai ralat curl (keluar dengan kod bukan sifar)
  • --silent — sembunyikan keluaran kemajuan
  • --max-time N — masa tamat setiap permintaan dalam saat
  • --retry N --retry-delay S — lapisan percubaan semula curl sendiri (berguna untuk kes mudah)
#!/usr/bin/env bash
set -euo pipefail

HEALTH_URL="${HEALTH_URL:-http://localhost:8080/healthz}"
TIMEOUT=90
INTERVAL=3
ELAPSED=0

echo "[probe] Polling readiness at ${HEALTH_URL}"

until curl --fail --silent --output /dev/null \
           --max-time 2 "${HEALTH_URL}"; do
  if (( ELAPSED >= TIMEOUT )); then
    echo "[probe] Service not ready after ${TIMEOUT}s" >&2
    exit 1
  fi
  printf '[probe] Not ready yet (%ds elapsed)\n' "$ELAPSED"
  sleep "$INTERVAL"
  (( ELAPSED += INTERVAL ))
done

echo "[probe] Service is ready"
exec "$@"

Pengunduran Eksponen dalam Gelung Menunggu

Gelung percubaan semula pada selang tetap membebankan perkhidmatan yang sedang pulih pada kadar yang berterusan. Pengunduran eksponen menggandakan tempoh menunggu pada setiap percubaan, lalu mengurangkan beban semasa pemulihan sambil tetap mencapai kejayaan dengan cepat apabila perkhidmatan kembali tersedia.

Formula standardnya ialah: sleep_time = min(base * 2^attempt, max_sleep). Komponen variasi rawak (ofset pecahan rawak) mengelakkan masalah serbuan beramai-ramai apabila banyak bekas dimulakan semula serentak.

Corak ini digunakan oleh alat pengeluaran seperti wait-for-it, percubaan semula AWS SDK dan gelung pendamaian pengawal Kubernetes.

#!/usr/bin/env bash
set -euo pipefail

HOST="${HOST:-redis}"
PORT="${PORT:-6379}"
MAX_ATTEMPTS=8
BASE_SLEEP=1
MAX_SLEEP=30

for attempt in $(seq 1 "$MAX_ATTEMPTS"); do
  if nc -z "$HOST" "$PORT" 2>/dev/null; then
    echo "[backoff] Connected to ${HOST}:${PORT} on attempt ${attempt}"
    exec "$@"
  fi

  # Exponential backoff with jitter
  raw=$(( BASE_SLEEP * (2 ** (attempt - 1)) ))
  capped=$(( raw < MAX_SLEEP ? raw : MAX_SLEEP ))
  jitter=$(( RANDOM % 3 ))
  sleep_time=$(( capped + jitter ))

  echo "[backoff] Attempt ${attempt}/${MAX_ATTEMPTS} failed — sleeping ${sleep_time}s"
  sleep "$sleep_time"
done

echo "[backoff] ${HOST}:${PORT} unreachable after ${MAX_ATTEMPTS} attempts" >&2
exit 1

Memeriksa Berbilang Kebergantungan

Aplikasi sebenar mempunyai berbilang kebergantungan: pangkalan data, cache, broker mesej dan mungkin API luaran. Memeriksanya secara berturutan membazirkan masa permulaan. Pendekatan yang lebih baik ialah memeriksa semua kebergantungan secara selari dan menunggu sehingga semuanya berjaya.

Operator Bash & menjalankan setiap pemeriksaan di latar belakang, manakala wait mengumpulkan kod keluarnya. Jika mana-mana pemeriksaan gagal, titik masuk keluar dengan kod bukan sifar, lalu mencetuskan pemulaan semula bekas.

Teknik utama: tangkap PID latar belakang dengan $! dan hantarkannya secara eksplisit kepada wait supaya anda boleh menyemak kod keluar setiap proses.

#!/usr/bin/env bash
set -euo pipefail

wait_tcp() {
  local host="$1" port="$2" timeout="${3:-30}"
  local elapsed=0
  until nc -z "$host" "$port" 2>/dev/null; do
    (( elapsed >= timeout )) && { echo "TIMEOUT ${host}:${port}" >&2; return 1; }
    sleep 2; (( elapsed += 2 ))
  done
  echo "[ok] ${host}:${port}"
}

# Launch all probes in parallel
wait_tcp postgres 5432 60 &  PID_PG=$!
wait_tcp redis    6379 30 &  PID_RD=$!
wait_tcp rabbitmq 5672 45 &  PID_RQ=$!

# Collect results — fail fast if any probe failed
FAILED=0
for pid in $PID_PG $PID_RD $PID_RQ; do
  wait "$pid" || (( FAILED++ ))
done

if (( FAILED > 0 )); then
  echo "[entrypoint] ${FAILED} dependency probe(s) failed — aborting" >&2
  exit 1
fi

echo "[entrypoint] All dependencies ready"
exec "$@"

Keaktifan berbanding Kesediaan: Skrip Berbeza untuk Pemeriksaan Berbeza

Kubernetes membezakan pemeriksaan keaktifan dan pemeriksaan kesediaan, dan kedua-duanya harus melakukan perkara yang berbeza:

  • Pemeriksaan keaktifan — menjawab: adakah proses masih hidup dan tidak tersekat? Pemeriksaan ini harus pantas dan hanya menyemak keadaan dalaman, contohnya kewujudan fail PID proses atau titik akhir kesihatan setempat yang mengembalikan 200. Pemeriksaan keaktifan yang gagal akan menghentikan dan memulakan semula bekas.
  • Pemeriksaan kesediaan — menjawab: patutkah pod ini menerima trafik? Pemeriksaan ini mungkin menyemak kebergantungan hiliran. Pemeriksaan kesediaan yang gagal mengeluarkan pod daripada pengimbang beban Service tetapi tidak memulakannya semula.

Jangan sekali-kali meletakkan semakan kebergantungan yang perlahan dalam pemeriksaan keaktifan. Gangguan pangkalan data yang singkat akan menyebabkan semua pod aplikasi anda dimulakan semula secara tidak wajar dan memburukkan lagi masalah.

#!/usr/bin/env bash
# liveness.sh — fast local-only check
# Used in: livenessProbe.exec.command
set -euo pipefail

PID_FILE="/var/run/app/app.pid"
HEALTH_URL="http://127.0.0.1:8080/internal/live"

# Check 1: process is running
[[ -f "$PID_FILE" ]] || { echo "PID file missing" >&2; exit 1; }
kill -0 "$(cat "$PID_FILE")" 2>/dev/null || { echo "Process dead" >&2; exit 1; }

# Check 2: local endpoint responds (2s timeout — never block)
curl --fail --silent --max-time 2 --output /dev/null "$HEALTH_URL" || {
  echo "Liveness endpoint unresponsive" >&2
  exit 1
}

echo "live"
exit 0

Pemeriksaan Permulaan dan initContainers

Kubernetes menawarkan jenis pemeriksaan ketiga: startupProbe. Pemeriksaan ini berjalan menggantikan pemeriksaan keaktifan dan kesediaan sehingga berjaya sekali, lalu memberikan masa kepada aplikasi yang dimulakan dengan perlahan seperti pemanasan JVM dan penghijrahan pangkalan data untuk dimulakan tanpa mencetuskan kegagalan keaktifan palsu.

Untuk menunggu kebergantungan, initContainers selalunya lebih kemas berbanding skrip titik masuk. Bekas ini dijalankan sebelum bekas aplikasi dimulakan, dan Kubernetes mengendalikan logik percubaan semula serta pemulaan semula secara automatik. Imej bekas pemulaan hanya memerlukan sh, nc atau curl — anda boleh menggunakan imej minimum busybox atau alpine.

Contoh spesifikasi initContainer dalam manifes Pod:

# kubernetes/pod-with-init.yaml (illustrative — not runnable as bash)
# initContainers run sequentially before app containers
initContainers:
  - name: wait-for-postgres
    image: busybox:1.36
    command:
      - sh
      - -c
      - |
        set -e
        echo 'Waiting for postgres...'
        until nc -z postgres 5432; do
          echo 'postgres not ready — sleeping 2s'
          sleep 2
        done
        echo 'postgres is up'

  - name: run-migrations
    image: myapp:latest
    command: ['python', 'manage.py', 'migrate', '--noinput']
    envFrom:
      - secretRef:
          name: app-secrets

Skrip Pemeriksaan Kesihatan dengan Keluaran JSON

Sistem pengeluaran sering mengagregatkan status kesihatan merentas berbilang subsistem dan mendedahkannya sebagai muatan JSON berstruktur. Muatan ini digunakan oleh pengimbang beban, pengatur cara dan papan pemuka pemantauan.

Skrip pemeriksaan kesihatan Bash boleh membina keluaran JSON secara langsung menggunakan printf atau jq. Kod keluar masih mengawal automasi; isi JSON adalah untuk operator manusia dan sistem pemantauan.

Konvensyen: kembalikan HTTP 200 dengan {"status":"ok"} apabila sihat, dan HTTP 503 dengan {"status":"degraded", "checks":{...}} apabila tidak sihat. Skrip di bawah bertujuan untuk dihidangkan oleh pembungkus HTTP ringan seperti socat atau dipanggil secara langsung oleh pemeriksaan exec Kubernetes.

#!/usr/bin/env bash
# health_check.sh — composite health with JSON output
set -uo pipefail

check_postgres() {
  pg_isready -h "${DB_HOST:-postgres}" -p "${DB_PORT:-5432}" \
             -U "${DB_USER:-app}" -t 2 &>/dev/null
}

check_redis() {
  redis-cli -h "${REDIS_HOST:-redis}" -p "${REDIS_PORT:-6379}" \
             PING 2>/dev/null | grep -q PONG
}

check_disk() {
  local usage
  usage=$(df / | awk 'NR==2{gsub(/%/,"",$5); print $5}')
  (( usage < 90 ))
}

PG_OK=0; RD_OK=0; DSK_OK=0
check_postgres && PG_OK=1
check_redis    && RD_OK=1
check_disk     && DSK_OK=1

OVERALL=$(( PG_OK && RD_OK && DSK_OK ))
STATUS=$( (( OVERALL )) && echo 'ok' || echo 'degraded' )

printf '{"status":"%s","checks":{"postgres":%s,"redis":%s,"disk":%s}}\n' \
  "$STATUS" "$PG_OK" "$RD_OK" "$DSK_OK"

(( OVERALL )) && exit 0 || exit 1

Utiliti Masa Tamat dengan Corak Had Masa

Arahan GNU timeout membungkus sebarang arahan dan menghentikannya jika arahan itu tidak selesai dalam tempoh yang ditetapkan. Ini ialah cara paling kemas untuk menguatkuasakan had masa tegas pada gelung menunggu atau pemeriksaan kesihatan tanpa mengurus tugas latar belakang secara manual.

timeout DURATION COMMAND [ARGS...]

Kod keluar daripada timeout:

  • 0 — arahan berjaya dalam had masa
  • Kod keluar arahan — arahan berjalan tetapi mengembalikan nilai bukan sifar
  • 124 — masa arahan tamat (SIGTERM dihantar)
  • 137 — arahan dihentikan dengan SIGKILL (selepas --kill-after)

Mengesan kod keluar 124 membolehkan anda mencetak mesej masa tamat yang jelas dan bukannya ralat umum.

#!/usr/bin/env bash
set -euo pipefail

HOST="${DB_HOST:-postgres}"
PORT="${DB_PORT:-5432}"
DEADLINE=60  # seconds

# Inline poll loop, wrapped by timeout
timeout "$DEADLINE" bash -c "
  until nc -z '$HOST' '$PORT' 2>/dev/null; do
    echo '[wait] ${HOST}:${PORT} not ready...'
    sleep 2
  done
" && echo "[wait] ${HOST}:${PORT} is up" || {
  code=$?
  if (( code == 124 )); then
    echo "[wait] Timed out after ${DEADLINE}s waiting for ${HOST}:${PORT}" >&2
  else
    echo "[wait] Probe failed with exit code ${code}" >&2
  fi
  exit "$code"
}

exec "$@"

wait-for-it Kendiri dalam Bash Tulen

Banyak imej bekas minimum tidak mempunyai nc (netcat). Bash tulen boleh membuka sambungan TCP menggunakan penggantian proses kepada /dev/tcp, iaitu ciri terbina dalam Bash yang bukan standard tetapi disokong secara meluas serta tidak memerlukan sebarang alat luaran.

Sintaks: /dev/tcp/HOST/PORT — Bash membuka sambungan TCP apabila anda mengubah hala ke atau dari laluan ini. Bash menghasilkan ralat (keluar dengan kod bukan sifar) jika sambungan ditolak atau masa sambungan tamat.

Inilah teknik yang digunakan oleh skrip wait-for-it.sh yang popular dan disertakan dalam banyak persediaan Docker Compose. Skrip di bawah ialah pelaksanaan kendiri lengkap yang boleh anda COPY ke dalam sebarang Dockerfile.

#!/usr/bin/env bash
# wait-for-it.sh (pure bash, no nc/curl required)
set -uo pipefail

usage() { echo "Usage: $0 HOST:PORT [-t TIMEOUT] [-- COMMAND]"; exit 1; }

parse_hostport() {
  HOST="${1%%:*}"
  PORT="${1##*:}"
  [[ -n "$HOST" && "$PORT" =~ ^[0-9]+$ ]] || usage
}

[[ $# -ge 1 ]] || usage
parse_hostport "$1"; shift

TIMEOUT=30
[[ "${1:-}" == "-t" ]] && { TIMEOUT="$2"; shift 2; }
[[ "${1:-}" == "--" ]] && shift

wait_for() {
  local elapsed=0
  while (( elapsed < TIMEOUT )); do
    # Pure bash TCP probe — no nc, no curl
    if (exec 3<>"/dev/tcp/${HOST}/${PORT}") 2>/dev/null; then
      exec 3>&-
      return 0
    fi
    sleep 1
    (( elapsed++ ))
  done
  return 1
}

echo "Waiting for ${HOST}:${PORT} (timeout ${TIMEOUT}s)..."
if wait_for; then
  echo "${HOST}:${PORT} is available"
  [[ $# -gt 0 ]] && exec "$@"
else
  echo "Timed out waiting for ${HOST}:${PORT}" >&2
  exit 1
fi

Mengintegrasikan Pemeriksaan ke dalam entrypoint.sh

Corak titik masuk ialah cara standard untuk menggabungkan gelung menunggu, pengesahan persekitaran dan permulaan proses dalam satu skrip yang mudah diselenggara. Docker menggunakan ENTRYPOINT untuk memanggil skrip ini, dan skrip tersebut berakhir dengan exec "$@" untuk menyerahkan kawalan kepada CMD dengan PID yang sama (membolehkan penyaluran isyarat yang kemas).

entrypoint.sh bertaraf pengeluaran biasanya:

  • Mengesahkan pemboleh ubah persekitaran yang diperlukan lebih awal (gagal pantas)
  • Menjalankan gelung menunggu kebergantungan
  • Menjalankan penghijrahan pangkalan data jika berkenaan
  • Menjalankan pemeriksaan kendiri akhir
  • Memindahkan kawalan dengan exec "$@"

Menggunakan exec adalah penting — arahan ini menggantikan proses cangkerang supaya aplikasi menjadi PID 1 dan menerima SIGTERM secara langsung daripada Docker/Kubernetes semasa penutupan teratur.

#!/usr/bin/env bash
# docker/entrypoint.sh
set -euo pipefail

# ── 1. Validate required env vars ────────────────────────────────────
for var in DATABASE_URL REDIS_URL SECRET_KEY; do
  [[ -n "${!var:-}" ]] || { echo "FATAL: ${var} is not set" >&2; exit 1; }
done

# ── 2. Parse DB host/port from DATABASE_URL ──────────────────────────
DB_HOST=$(echo "$DATABASE_URL" | sed -E 's|.*@([^:/]+).*|\1|')
DB_PORT=$(echo "$DATABASE_URL" | sed -E 's|.*:([0-9]+)/.*|\1|')

# ── 3. Wait for dependencies ─────────────────────────────────────────
timeout 60 bash -c "
  until nc -z '${DB_HOST}' '${DB_PORT}' 2>/dev/null; do sleep 2; done
" || { echo "Database unreachable" >&2; exit 1; }

# ── 4. Run migrations ────────────────────────────────────────────────
echo "[entrypoint] Running migrations..."
python manage.py migrate --noinput

# ── 5. Hand off to CMD (exec preserves PID 1 for signal handling) ────
echo "[entrypoint] Starting application: $*"
exec "$@"

Semakan Pengetahuan: Pemeriksaan Keaktifan berbanding Kesediaan

Uji pemahaman anda tentang konsep utama yang dibincangkan dalam pelajaran ini.

Imbas Kembali: Pemeriksaan Kesihatan, Gerbang Kesediaan dan Gelung Menunggu

Dalam pelajaran ini, anda membina himpunan alat Bash untuk penyelarasan permulaan bekas yang boleh dipercayai. Inilah perkara yang telah anda pelajari:

  • Corak menunggu — gelung until nc -z HOST PORT dengan had masa tegas dan pengawal masa berlalu menghalang penyekatan tanpa had apabila kebergantungan rosak.
  • Pemeriksaan kesediaan HTTP — curl --fail --max-time mengesahkan bahawa aplikasi benar-benar sedia, bukan sekadar port terbuka.
  • Pengunduran eksponen — penggandaan selang menunggu antara percubaan semula mengurangkan beban serbuan beramai-ramai dan membolehkan perkhidmatan yang sedang pulih menjadi stabil.
  • Pemeriksaan kebergantungan secara selari — menjalankan pemeriksaan di latar belakang dengan & dan mengumpulkan hasil dengan wait $PID mengurangkan kependaman permulaan apabila terdapat berbilang kebergantungan.
  • Keaktifan berbanding Kesediaan — pemeriksaan keaktifan mestilah pantas dan hanya menyemak keadaan setempat; pemeriksaan kesediaan boleh menyemak sistem hiliran. Jangan sesekali mencampuradukkannya.
  • startupProbe — melindungi aplikasi yang dimulakan dengan perlahan daripada kegagalan keaktifan palsu semasa pemulaan.
  • Pemeriksaan /dev/tcp — semakan TCP Bash tulen tidak memerlukan alat luaran, menjadikannya sesuai untuk imej bekas minimum.
  • entrypoint.sh — pengesahan persekitaran, gelung menunggu, penghijrahan dan exec "$@" membentuk corak standard permulaan perkhidmatan dalam bekas.

Corak ini membentuk asas penggunaan bekas bertaraf pengeluaran yang mempunyai pemulihan kendiri merentas Docker Compose, Kubernetes dan ECS.

Percuma untuk bermula

Pelajari Bash dengan tutor kecerdasan buatan — percuma

Tulis dan jalankan kod sebenar dalam pelayar anda, dapatkan bantuan segera daripada tutor kecerdasan buatan yang tersedia 24/7, dan sambung semula dari tempat anda berhenti di web atau dalam aplikasi.

Kursus
22
Pelajaran
88

Soalan Lazim

Adakah pelajaran “Probe Kesihatan, Gerbang Kesediaan dan Gelung Menunggu” percuma?

Ya — teks penuh “Probe Kesihatan, Gerbang Kesediaan dan Gelung Menunggu” boleh dibaca secara percuma di web ini. Untuk berlatih secara interaktif menggunakan penyunting kod terbina dalam dan tutor kecerdasan buatan 24/7, serta membuka kunci baki kursus Penguasaan Baris Perintah Linux &amp; Penskripan Bash, tingkat taraf kepada CoddyKit PRO. Kursus Penguasaan Baris Perintah Linux &amp; Penskripan Bash merangkumi sejumlah 4 pelajaran.

Apakah yang akan saya pelajari dalam “Probe Kesihatan, Gerbang Kesediaan dan Gelung Menunggu”?

Laksanakan gelung menunggu kebergantungan dan probe keaktifan supaya perkhidmatan dalam bekas dimulakan dengan boleh dipercayai Anda berlatih Penguasaan Baris Perintah Linux &amp; Penskripan Bash menggunakan kod praktikal yang dijalankan terus dalam pelayar, manakala tutor kecerdasan buatan 24/7 menjawab soalan anda semasa anda mengikuti pelajaran.

Adakah saya memerlukan pengalaman untuk memulakan Penguasaan Baris Perintah Linux &amp; Penskripan Bash?

Tiada pengalaman terdahulu diperlukan. Pembelajaran Penguasaan Baris Perintah Linux &amp; Penskripan Bash di CoddyKit disusun untuk pelajar daripada peringkat pemula hingga lanjutan, jadi anda boleh bermula di sini atau dari awal dan belajar mengikut kadar anda sendiri. Ini ialah pelajaran 4 daripada 4.

Berapa lamakah pelajaran “Probe Kesihatan, Gerbang Kesediaan dan Gelung Menunggu” diambil?

Kebanyakan pelajaran CoddyKit mengambil masa kira-kira 5–10 minit. Setiap pelajaran ringkas dan interaktif, jadi anda boleh membuat kemajuan secara berterusan dan menyambung tepat dari tempat anda berhenti di web atau aplikasi.

Bolehkah saya menulis dan menjalankan kod dalam pelajaran Penguasaan Baris Perintah Linux &amp; Penskripan Bash ini?

Ya. Setiap pelajaran Penguasaan Baris Perintah Linux &amp; Penskripan Bash menyertakan penyunting kod terbina dalam, jadi anda boleh menulis dan menjalankan kod sebenar terus dalam pelayar serta menerima maklum balas kecerdasan buatan serta-merta — tanpa memerlukan persediaan setempat.

Semua pelajaran dalam kursus ini

  1. Menulis Dockerfile dan Titik Masuk Shell yang Ringkas
  2. Menyediakan Templat Konfigurasi dengan envsubst dan heredoc
  3. Menskripkan Sumber Awan melalui CLI dan jq
  4. Probe Kesihatan, Gerbang Kesediaan dan Gelung Menunggu
← Kembali ke Penguasaan Baris Perintah Linux &amp; Penskripan Bash