• 投稿者:
  • 投稿コメント:0件のコメント
  • 投稿カテゴリー:OS
  • 投稿の最終変更日:2025年1月22日

ホストOSとすべてのDockerコンテナでrsync –versionを実行し、その結果を出力するスクリプト

以下は、ホストOSとすべてのDockerコンテナでrsync --versionを実行し、その結果を出力するスクリプトです。このスクリプトは、ホストとコンテナ環境の両方でrsyncのバージョンを確認するプロセスを自動化します。


スクリプト内容

#!/bin/bash

# スクリプトの説明
echo "==== rsync バージョン確認スクリプト ===="

# ホストOSでのrsyncバージョン確認
echo "ホストOSのrsyncバージョンを確認します..."
if command -v rsync &> /dev/null; then
    rsync_version=$(rsync --version | head -n 1)
    echo "ホストOS: $rsync_version"
else
    echo "ホストOS: rsync がインストールされていません。"
fi

# Dockerコンテナ内のrsyncバージョン確認
echo "Dockerコンテナ内のrsyncバージョンを確認します..."
if ! command -v docker &> /dev/null; then
    echo "Dockerがインストールされていません。終了します。"
    exit 1
fi

# 起動中のコンテナリストを取得
containers=$(docker ps --format "{{.Names}}")

if [ -z "$containers" ]; then
    echo "起動中のDockerコンテナはありません。"
else
    for container in $containers; do
        echo "コンテナ: $container のrsyncバージョンを確認中..."
        rsync_version=$(docker exec -it "$container" bash -c 'if command -v rsync &> /dev/null; then rsync --version | head -n 1; else echo "rsync はインストールされていません"; fi')
        echo "コンテナ: $container - $rsync_version"
    done
fi

echo "==== 確認完了 ===="

スクリプトの動作説明

  1. ホストOSの確認
    • rsync --versionを実行し、バージョン情報を取得します。
    • rsyncがインストールされていない場合は警告を表示します。
  2. Docker環境の確認
    • docker psで現在起動しているコンテナ名を取得。
    • 各コンテナでrsync --versionを実行し、結果を表示します。
    • rsyncがコンテナ内にインストールされていない場合、その旨を表示。
  3. 結果の出力
    • ホストOSと各コンテナのrsyncバージョン情報をまとめて表示。

スポンサーリンク

使用方法

スクリプトを作成します

vi check_rsync_version.sh

スクリプトを張り付け、保存します

実行権限を付与します

chmod +x check_rsync_version.sh

スクリプトを実行します

./check_rsync_version.sh

出力例

==== rsync バージョン確認スクリプト ====
ホストOSのrsyncバージョンを確認します...
ホストOS: rsync 3.2.3 protocol version 31
Dockerコンテナ内のrsyncバージョンを確認します...
コンテナ: web-app のrsyncバージョンを確認中...
コンテナ: web-app - rsync 3.1.3 protocol version 31
コンテナ: db-service のrsyncバージョンを確認中...
コンテナ: db-service - rsync はインストールされていません
==== 確認完了 ====

ご不明点や追加機能のリクエストがあればXから私へ知らせください!

コメントを残す