2017-12-11 14 views
1

아래 코드는 내 것이며 ssh 연결을 얻을 수 있습니다. 그러나 그 후에 그것은 아무것도하지 않고있다.셸 스크립팅에서 레거시 내에서 에코를 실행할 수 없습니다.

log_time="date +%F\%T" 
PR_ONE="[email protected]" 
file="/home/log.txt" 
to_list="myemail" 
echo "`$log_time`" >> $file 
`ssh $PR_ONE "echo df -hP | grep fs1 | awk '{print $4}'"` >> $file 
cat $file | mailx -s "Disk space usages" $to_list 

나는 $log_time으로 만 이메일을받습니다. 나는 ssh 라인의 인용문에서 잘못된 것을하고 있음을 압니다.

필자는 쉘 스크립팅을 처음 사용합니다.

echo "df -hP | grep fs1 | awk '{print $4}'" | ssh -tt $PR_ONE >> $file 

또는이 선호 :

+0

이 *'$ (...)'대신 역 인용 부호의 사용을 선호 – Indent

+0

을 ? – Indent

+0

죄송합니다. 내 잘못이야. 사실 오타입니다. – zeewagon

답변

2

이 시도 awk 명령 후`i`는 무엇입니까 *

ssh -tt $PR_ONE <<EOF>> $file 
df -hP | grep fs1 | awk '{print $4}' 
EOF 
+0

첫 번째 명령이 실행되었습니다. 그러나 실행 중에는 stdin이 터미널이 아니기 때문에 의사 터미널을 할당 할 수 없다는 경고 메시지가 나타납니다. 또한 내가 얻는 것은'/ dev/mapper/VolGroup01-fs2vol 7.4T 6.4T 593G 92 %/net-si-091l/fs1'이지만,'awk'의'$ 4'는'593G' 만 쓰고 싶습니다. – zeewagon

+0

의사 - 할당 할당을 강제하기 위해'ssh -tt'를 사용하십시오 – Indent