스크립트에서는 내부에서 ssh를 시도한 다음 사용자를 전환하고 여러 명령을 실행하려고 시도합니다.
이 문제를 해결하는 데 도움을 주실 수 있나요?
예는 다음과 같습니다.
ssh $a@$e << EOF
sudo su hbase << EOF
echo "list '"$tID":.*' " | /ignio/hbase/bin/hbase shell &> ListOutput
cat ListOutput | grep "^"${tID}":" >ListOfTable
while read line; do
echo $line
tableName=`echo $line | cut -d':' -f2`
/hbase/bin/hbase org.apache.hadoop.hbase.mapreduce.Driver import $tID:$tablename hdfs:///backup/${tID}
EOF
EOF
미리 감사드립니다!
답변1
비밀번호 없는 sudo가 구성되어 있다고 가정합니다.
ssh user@host 'sudo -u sh -c hbase "command1;command2;command3"'
모든 원격 명령을 스크립트에 넣고 다음을 실행하는 것이 좋습니다.
ssh user@host 'sudo -u hbase /some/script'