ホスト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 "==== 確認完了 ===="
スクリプトの動作説明
- ホストOSの確認:
rsync --version
を実行し、バージョン情報を取得します。- rsyncがインストールされていない場合は警告を表示します。
- Docker環境の確認:
docker ps
で現在起動しているコンテナ名を取得。- 各コンテナで
rsync --version
を実行し、結果を表示します。 - rsyncがコンテナ内にインストールされていない場合、その旨を表示。
- 結果の出力:
- ホスト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から私へ知らせください!