os-scripting について
os-scriptingは、Linux、macOS、Windows向けのシステムトラブルシューティング、シェルスクリプト、管理作業を扱うワークフロースキル集です。環境確認からデバッグ、テスト、自動化まで必要な段階を選べ、検証と安全上の注意も示します。
主な機能
- 01環境とリソースの確認
- 02ShellCheckによるスクリプト分析
- 03スクリプトのデバッグと開発
- 04Batsテストと品質確認
- 05システム障害対応とタスク自動化
活用シーン
- 01システム性能やサービス障害の調査
- 02シェルスクリプトの検査、デバッグ、テスト
- 03システム保守用スクリプトの作成
- 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- 防御的なスクリプト作成
アクション
- オペレーティングシステムとバージョンを特定する
- 利用可能なツールとコマンドを確認する
- 権限とアクセスを検証する
- システムリソースを評価する
- ログとエラーメッセージを確認する
診断コマンド
# 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 による lintbats-testing-patterns- Bats によるテスト
アクション
- ShellCheck を実行して lint する
- スクリプトの構造を分析する
- 潜在的な問題を特定する
- エラー処理を確認する
- 変数の使用方法を検証する
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- エラーパターンの検出
アクション
- デバッグモードを有効にする
- ログ出力を追加する
- 実行フローを追跡する
- 失敗する箇所を切り分ける
- コンポーネントを個別にテストする
デバッグ手法
# 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- シェルスクリプト作成
アクション
- スクリプトの構造を設計する
- 関数を実装する
- エラー処理を追加する
- 入力検証を含める
- ヘルプドキュメントを追加する
スクリプトのテンプレート
#!/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- テストの自動化
アクション
- Bats テストを作成する
- エッジケースをテストする
- エラー条件をテストする
- 期待される出力を検証する
- テストスイートを実行する
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- サーバー管理
アクション
- 症状を特定する
- システムログを確認する
- リソース使用状況を分析する
- 接続性をテストする
- 設定を検証する
- 修正を適用する
トラブルシューティングコマンド
# 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- シェルスクリプト作成
アクション
- 自動化の機会を特定する
- 自動化ワークフローを設計する
- スクリプトを実装する
- cron/systemd でスケジュールを設定する
- 自動化の稼働状況を監視する
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- クラウドと DevOpssecurity-audit- セキュリティテストdatabase- データベース操作
制限事項
- タスクが上記の範囲に明確に該当する場合にのみ、このスキルを使用してください。
- 出力を、環境固有の検証、テスト、または専門家によるレビューの代わりとして扱わないでください。
- 必要な入力、権限、安全上の境界、または成功基準が不足している場合は、作業を中止して確認を求めてください。
コメント
Markdown 対応