ディレクトリのサイズを取得して変数に保存

ディレクトリのサイズを取得して変数に保存

サーバーBのディレクトリサイズを取得するために、サーバーAでコマンドを実行しようとしています。

このコマンドを使用して空の結果を得ました。

ssh root@remoteIP -t "size=$(du -hs /var/www/somesite.com/dir1/dir2/uploads/ |
                             awk '{print $2}'); echo ${size} ; bash --login"

答え1

私はローカルでテストしました。 size=$(ssh xxx@yyy "du -hs ./.config | cut -f 1") ; echo $size

私の端末から正しい出力を得ました。

size=$(ssh xxx@yyy "du -hs ./.config | cut -f 1") ; echo $size
8.0K

答え2

コマンドに渡す行は次SSHのとおりです。

size=$(du -hs /some/dir | awk '{print $1}'; echo ${size} ; bash --login

あなたはする必要があります保護する一部数値この行は最初から始まります説明した:$そして'

  • 良い方法保護する$ある簡単な引用を使用してください '、二重引用符は"機能しないためです。

    'blah blah "blah blah" blah' # sounds easy
    
  • 簡単な引用符を保護する行を囲むために単純な引用符を使用する場合は、少し面倒です。 1つの方法は、一重引用符の前に閉じる一重引用符(はい)を入れてから囲む簡単な引用二重引用符 "最後に、簡単な引用符でもう一度開きます。

    'blah blah '"'"'blah blah'"'"' blah' # mmh well
    

また、あなたが望むものは印刷することです最初field awk、2番目のフィールドではありません。だからでprint $1はないprint $2

以下はよく保護されたラインです。

ssh root@remoteIP -t 'size=$(du -hs /some/dir | awk '"'"'{print $1}'"'"')
                      echo ${size} ; bash --login'

関連情報