gpt4 book ai didi

linux - 如何使用 bash 脚本在远程机器上运行命令?

转载 作者:太空宇宙 更新时间:2023-11-04 12:48:09 24 4
gpt4 key购买 nike

我正在尝试在远程机器上运行以下命令,但没有执行任何命令,有人可以指出以下脚本的问题吗?

仅供引用 settings.yml 和 fuscation_util.rb 文件存在于 testuser 帐户中

脚本:

sshpass -p "PASSWORD" ssh -o StrictHostKeyChecking=no -T root@HOSTNAME <<EOF
su - testuser
NEWLINE=$'\n'
read -s -p "Enter Presto Password:${NEWLINE}" VD_PASSWORD
KEY=`cat settings.yml |grep '^key:'|sed 's/^key: //'`
VALUE=`ruby fuscation_util.rb encrypt "$KEY" "$VD_PASSWORD"`
echo "$VALUE"
EOF

输出:

cat: settings.yml: No such file or directory
ruby: No such file or directory -- fuscation_util.rb (LoadError)

只有当我尝试将 poutput 分配给某个变量时,我才会遇到错误,使用下面的脚本我没有遇到任何错误

脚本:

sshpass -p "PASSWORD" ssh -o StrictHostKeyChecking=no -T root@HOSTNAME <<EOF
su - testuser
NEWLINE=$'\n'
read -s -p "Enter Presto Password:${NEWLINE}" VD_PASSWORD
cat settings.yml |grep '^key:'|sed 's/^key: //'
ruby fuscation_util.rb encrypt "testvalue" "testpassword"
EOF

输出:

WORKING FINE

最佳答案

我相信,因为您是以 root 身份连接的,所以您在连接时进入的目录是 root 用户主目录。即使你改变了用户,你仍然会在同一个起始文件夹中(可能是 /root)。

如果您在执行命令之前显式cd 到所需的位置,您将可以访问所需的文件。

另一个选项 ( suggested by Shravan40) 是指定您希望处理的文件的绝对路径。


还应该提到的是,允许通过 SSH 进行根访问被认为是一种安全风险。我建议尽可能避免这种情况。

关于linux - 如何使用 bash 脚本在远程机器上运行命令?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38099465/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com