서버 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
간단한 인용문을 보호하세요줄을 둘러싸기 위해 간단한 따옴표를 사용하는 경우에는 조금 더 까다롭습니다. 한 가지 방법은 간단한 따옴표 앞에 닫는 간단한 따옴표(예)를 넣은 다음둘러 싸다간단한 인용문큰따옴표
"
마지막으로 간단한 인용문으로 다시 엽니다.'blah blah '"'"'blah blah'"'"' blah' # mmh well
또한 당신이 원하는 것은 인쇄하는 것입니다첫 번째field awk
, 두 번째 필드가 아닙니다. 그래서 print $1
아니야 print $2
.
다음은 잘 보호된 라인입니다.
ssh root@remoteIP -t 'size=$(du -hs /some/dir | awk '"'"'{print $1}'"'"')
echo ${size} ; bash --login'