通过 SSH 连接到服务器并执行和打印命令

通过 SSH 连接到服务器并执行和打印命令

我有一个服务器 AA,并且必须从 shell 脚本使用 ssh 连接到服务器 BB。在服务器 BB 上,我想检查给定文件夹是否为空,如果不为空,则应删除所有文件和目录。

但o/p和打印命令应该在服务器AA上打印。

尝试使用下面的脚本,但在 ssh 之后,命令在当前服务器上执行。 SSH 之后,什么也没有显示。请帮我。

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

相关内容