我有一个服务器 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/\*