リモートコンピュータでsdbサイズのサイズを取得したい場合 - マスター
わかりました:
# ssh master "lsblk | grep \"^sdb\" | awk '{print \$4}' "
100G
しかし、
変数にサイズ値を設定して印刷しようとすると、次のような結果が得られます。
# VAR=` ssh master "lsblk | grep \"^sdb\" | awk '{print \$4}' " `
# echo $VAR
sdb 8:16 0 100G 0 disk
なぜ最終テストでは100Gサイズしか提供されないのですか?
ここで何が違いますか?
答え1
ローカルで実行できるタスクをリモートで実行しないでください。
var=$( ssh master lsblk | awk '/^sdb/ { print $4 }' )
値がsdb
変数にある場合(以下の説明を参照):
var=$( ssh master lsblk | awk -v disk="$variable" '$0 ~ disk { print $4 }' )
または行の先頭から強制的に一致させるには
var=$( ssh master lsblk | awk -v disk="$variable" '$0 ~ "^" disk { print $4 }' )
答え2
別のバックスラッシュを追加する必要があります。
VAR=` ssh master "lsblk | grep \"^sdb\" | awk '{print \\$4}' " `
echo $VAR
100G