SSH를 통해 서버에 접속하고 명령을 실행하고 인쇄합니다.

SSH를 통해 서버에 접속하고 명령을 실행하고 인쇄합니다.

AA 서버가 있고 쉘 스크립트에서 SSH를 사용하여 BB 서버에 연결해야 합니다. BB 서버에서 모든 파일과 디렉터리를 삭제해야 하는 것은 아닌지, 지정된 폴더가 비어 있는지 확인하고 싶습니다.

그러나 o/p 및 인쇄 명령은 서버 AA에서 인쇄되어야 합니다.

아래 스크립트를 사용해 보세요. 하지만 ssh 이후에는 현재 서버에서 명령이 실행됩니다. SSHing 후에는 아무 것도 나타나지 않습니다. 도와주세요.

IFS='=' read -r -a param1 <<< "$1"
user=${param1[1]}
IFS='=' read -r -a param2 <<< "$2"
server=${param2[1]}
IFS='=' read -r -a param3 <<< "$3"
folder_path=${param3[1]}
ssh $user@$server <<EOF
echo $(hostname)
if [ -d $folder_path ] 
 then
{
 cd $folder_path 
 rm -rf $folder_path/* 
}
echo "Files under $folder_path has been deleted successfully 
exit 0
else
echo "No such file/folder"
exit 1
fi
EOF

답변1

귀하의 스크립트를 테스트한 결과 "cd $folder_path" 행만 제거하면 제대로 작동하며 정확한 순서로 키-값 쌍이 필요합니다.

./script user=username server=192.168.3.14 folder=fodername

그러나 단일 명령으로 모든 스크립트를 대체할 수 있습니다.

ssh user@server rm -rf foldername/\*

관련 정보