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/\*

おすすめ記事