SSH로 서버에 접속하고 사용자를 전환한 후 여러 명령을 실행하세요.

SSH로 서버에 접속하고 사용자를 전환한 후 여러 명령을 실행하세요.

스크립트에서는 내부에서 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'

관련 정보