どこのコンテナがたいへんそうなのかなぁ?ってぱっと調べたいと思ったので
作ってみました
echo "ContainerID ContainerName Apache Count" ; docker ps | awk 'NR>1 {print $1 " " $2}' | while read CONTAINER_ID IMAGE_NAME; do CNT=`docker exec $CONTAINER_ID sh -c "ps auxwww 2>null | grep [a]pache | wc -l"`; printf "%-15s %-30s %s\n" "$CONTAINER_ID" "$IMAGE_NAME" "$CNT" ; done
ContainerID ContainerName Apache Count
b17aed273d7e ABCFront 0
d5eb014989f0 ap_004 7
1ad5d0d4808e ap_003 7
fba7062b36d3 ap_002 6
2c00ee5897db ap_001 7
49e862f7acd2 ap_000 11
ワンラナー的な肝は
read
はスペース区切りの文字列を変数化してくれます
$ "echo "abc xyz" | { read VAR1 VAR2; echo "$VAR1 は $VAR2 です"; }
abc は xyz です
※{}で囲まないとうまくいかないです
先頭行を外して2行目から処理するawk 'NR>1 {}'
も覚えておいて損はないですね。