mcpField
O
os-scripting

os-scripting

github.com/sickn33開発48.7k79 回インストール今日更新
リポジトリ

os-scripting について

os-scriptingは、Linux、macOS、Windows向けのシステムトラブルシューティング、シェルスクリプト、管理作業を扱うワークフロースキル集です。環境確認からデバッグ、テスト、自動化まで必要な段階を選べ、検証と安全上の注意も示します。

主な機能

  1. 01環境とリソースの確認
  2. 02ShellCheckによるスクリプト分析
  3. 03スクリプトのデバッグと開発
  4. 04Batsテストと品質確認
  5. 05システム障害対応とタスク自動化

活用シーン

  1. 01システム性能やサービス障害の調査
  2. 02シェルスクリプトの検査、デバッグ、テスト
  3. 03システム保守用スクリプトの作成
  4. 04定期的な管理作業のスケジュール設定

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/sickn33/agentic-awesome-skills --skill os-scripting

インストール後、Claude Code で/os-scriptingを入力して読み込まれたか確認します。

詳細

OS/シェルスクリプトのトラブルシューティングワークフローバンドル

概要

Linux、macOS、Windows におけるオペレーティングシステムのトラブルシューティング、シェルスクリプト作成、システム管理のための包括的なワークフローです。このバンドルでは、システムの問題のデバッグ、堅牢なスクリプトの作成、管理タスクの自動化に必要なスキルを連携させます。

このワークフローを使用するタイミング

次の場合にこのワークフローを使用します。

  • シェルスクリプトのエラーをデバッグするとき
  • 本番環境で使用できる bash スクリプトを作成するとき
  • システムの問題をトラブルシューティングするとき
  • システム管理タスクを自動化するとき
  • プロセスやサービスを管理するとき
  • システムリソースを設定するとき

実行範囲

必要なフェーズのみを選択してください。以下の診断の多くは Linux を対象としています。macOS/Windows では、コマンドの利用可否と構文を確認してください。実行前にスクリプトを確認し、まず構文チェックと lint チェックを実行してください。不明なコードは使い捨ての環境で実行してください。bash -x/set -x はコマンドを実行し、秘密情報を漏えいさせる可能性があります。認証情報の処理はトレースしないでください。サービスの再起動、特権を要するインストール、スケジュール済みジョブには、対象に応じた権限が必要です。タイマーが機能するには、レビュー済みの対応する backup.service が必要です。タイマーだけではバックアップは実行されません。

ワークフローのフェーズ

フェーズ 1:環境の評価
呼び出すスキル
  • bash-linux - Linux の bash パターン
  • bash-pro - プロフェッショナルな bash スクリプト作成
  • bash-defensive-patterns - 防御的なスクリプト作成
アクション
  1. オペレーティングシステムとバージョンを特定する
  2. 利用可能なツールとコマンドを確認する
  3. 権限とアクセスを検証する
  4. システムリソースを評価する
  5. ログとエラーメッセージを確認する
診断コマンド
# System information
uname -a
cat /etc/os-release
hostnamectl

# Resource usage
top
htop
df -h
free -m

# Process information
ps aux
pgrep -f pattern
lsof -i :port

# Network status
netstat -tulpn
ss -tulpn
ip addr show
コピー&ペースト用プロンプト
Use @bash-linux to diagnose system performance issues
フェーズ 2:スクリプトの分析
呼び出すスキル
  • bash-defensive-patterns - 防御的なスクリプト作成
  • shellcheck-configuration - ShellCheck による lint
  • bats-testing-patterns - Bats によるテスト
アクション
  1. ShellCheck を実行して lint する
  2. スクリプトの構造を分析する
  3. 潜在的な問題を特定する
  4. エラー処理を確認する
  5. 変数の使用方法を検証する
ShellCheck の使用方法
# Install ShellCheck
sudo apt install shellcheck  # Debian/Ubuntu
brew install shellcheck      # macOS

# Run ShellCheck
shellcheck script.sh
shellcheck -f gcc script.sh

# Fix common issues
# - Use quotes around variables
# - Check exit codes
# - Handle errors properly
コピー&ペースト用プロンプト
Use @shellcheck-configuration to lint and fix shell scripts
フェーズ 3:デバッグ
呼び出すスキル
  • systematic-debugging - 体系的なデバッグ
  • debugger - デバッグの専門家
  • error-detective - エラーパターンの検出
アクション
  1. デバッグモードを有効にする
  2. ログ出力を追加する
  3. 実行フローを追跡する
  4. 失敗する箇所を切り分ける
  5. コンポーネントを個別にテストする
デバッグ手法
# Enable debug mode
set -x  # Print commands
set -e  # Exit on error
set -u  # Exit on undefined variable
set -o pipefail  # Pipeline failure detection

# Add logging
log() {
    echo "[$(date '+%Y-%m-%d %H:%M:%S')] $*" >> /var/log/script.log
}

# Trap errors
trap 'echo "Error on line $LINENO"' ERR

# Test sections
bash -n script.sh  # Syntax check
bash -x script.sh  # Trace execution
コピー&ペースト用プロンプト
Use @systematic-debugging to trace and fix shell script errors
フェーズ 4:スクリプトの開発
呼び出すスキル
  • bash-pro - プロフェッショナルなスクリプト作成
  • bash-defensive-patterns - 防御的なパターン
  • linux-shell-scripting - シェルスクリプト作成
アクション
  1. スクリプトの構造を設計する
  2. 関数を実装する
  3. エラー処理を追加する
  4. 入力検証を含める
  5. ヘルプドキュメントを追加する
スクリプトのテンプレート
#!/usr/bin/env bash
set -euo pipefail

# Constants
readonly SCRIPT_NAME=$(basename "$0")
readonly SCRIPT_DIR=$(cd "$(dirname "$0")" && pwd)

# Logging
log() {
    local level="$1"
    shift
    echo "[$(date '+%Y-%m-%d %H:%M:%S')] [$level] $*" >&2
}

info() { log "INFO" "$@"; }
warn() { log "WARN" "$@"; }
error() { log "ERROR" "$@"; exit 1; }

# Usage
usage() {
    cat <<EOF
Usage: $SCRIPT_NAME [OPTIONS]

Options:
    -h, --help      Show this help message
    -v, --verbose   Enable verbose output
    -d, --debug     Enable debug mode

Examples:
    $SCRIPT_NAME --verbose
    $SCRIPT_NAME -d
EOF
}

# Main function
main() {
    local verbose=false
    local debug=false

    while [[ $# -gt 0 ]]; do
        case "$1" in
            -h|--help)
                usage
                exit 0
                ;;
            -v|--verbose)
                verbose=true
                shift
                ;;
            -d|--debug)
                debug=true
                set -x
                shift
                ;;
            *)
                error "Unknown option: $1"
                ;;
        esac
    done

    info "Script started"
    # Your code here
    info "Script completed"
}

main "$@"
コピー&ペースト用プロンプト
Use @bash-pro to create a production-ready backup script
Use @linux-shell-scripting to automate system maintenance tasks
フェーズ 5:テスト
呼び出すスキル
  • bats-testing-patterns - Bats テストフレームワーク
  • test-automator - テストの自動化
アクション
  1. Bats テストを作成する
  2. エッジケースをテストする
  3. エラー条件をテストする
  4. 期待される出力を検証する
  5. テストスイートを実行する
Bats テストの例
#!/usr/bin/env bats

@test "script returns success" {
    run ./script.sh
    [ "$status" -eq 0 ]
}

@test "script handles unknown arguments" {
    run ./script.sh --unknown
    [ "$status" -ne 0 ]
    [ "$output" == *"Unknown option:"* ]
}

@test "script shows help" {
    run ./script.sh --help
    [ "$status" -eq 0 ]
    [ "$output" == *"Usage:"* ]
}
コピー&ペースト用プロンプト
Use @bats-testing-patterns to write tests for shell scripts
フェーズ 6:システムのトラブルシューティング
呼び出すスキル
  • devops-troubleshooter - DevOps のトラブルシューティング
  • incident-responder - インシデント対応
  • server-management - サーバー管理
アクション
  1. 症状を特定する
  2. システムログを確認する
  3. リソース使用状況を分析する
  4. 接続性をテストする
  5. 設定を検証する
  6. 修正を適用する
トラブルシューティングコマンド
# Check logs
journalctl -xe
tail -f /var/log/syslog
dmesg | tail

# Network troubleshooting
ping host
traceroute host
curl -v http://host
dig domain
nslookup domain

# Process troubleshooting
strace -p PID
lsof -p PID
iotop

# Disk troubleshooting
du -sh /*
find / -type f -size +100M
lsof | grep deleted
コピー&ペースト用プロンプト
Use @devops-troubleshooter to diagnose server connectivity issues
Use @incident-responder to investigate system outage
フェーズ 7:自動化
呼び出すスキル
  • workflow-automation - ワークフローの自動化
  • cicd-automation-workflow-automate - CI/CD の自動化
  • linux-shell-scripting - シェルスクリプト作成
アクション
  1. 自動化の機会を特定する
  2. 自動化ワークフローを設計する
  3. スクリプトを実装する
  4. cron/systemd でスケジュールを設定する
  5. 自動化の稼働状況を監視する
Cron の例
# Edit crontab
crontab -e

# Backup every day at 2 AM
0 2 * * * /path/to/backup.sh

# Clean logs weekly
0 3 * * 0 /path/to/cleanup.sh

# Monitor disk space hourly
0 * * * * /path/to/monitor.sh
Systemd タイマーの例
# /etc/systemd/system/backup.timer
[Unit]
Description=Daily backup timer

[Timer]
OnCalendar=daily
Persistent=true

[Install]
WantedBy=timers.target
コピー&ペースト用プロンプト
Use @workflow-automation to create automated system maintenance workflow

よくあるトラブルシューティングのシナリオ

CPU 使用率が高い場合
top -bn1 | head -20
ps aux --sort=-%cpu | head -10
pidstat 1 5
メモリの問題
free -h
vmstat 1 10
cat /proc/meminfo
ディスク容量
df -h
du -sh /* 2>/dev/null | sort -h
find / -type f -size +500M 2>/dev/null
ネットワークの問題
ip addr show
ip route show
ss -tulpn
curl -v http://target
サービスの障害
systemctl status service-name
journalctl -u service-name -f
systemctl restart service-name

品質ゲート

ワークフローを完了する前に、次の項目を確認してください。

  • すべてのスクリプトが ShellCheck を通過する
  • Bats でテストが通過する
  • エラー処理が実装されている
  • ログが設定されている
  • ドキュメントが完成している
  • 自動化がスケジュールされている

関連するワークフローバンドル

  • development - ソフトウェア開発
  • cloud-devops - クラウドと DevOps
  • security-audit - セキュリティテスト
  • database - データベース操作

制限事項

  • タスクが上記の範囲に明確に該当する場合にのみ、このスキルを使用してください。
  • 出力を、環境固有の検証、テスト、または専門家によるレビューの代わりとして扱わないでください。
  • 必要な入力、権限、安全上の境界、または成功基準が不足している場合は、作業を中止して確認を求めてください。

コメント