我有一堆Linux服务器,我需要在其中运行一些命令来获取备份服务器的主机文件条目。我正在计划使用plink制作Power Shell脚本来实现此目的。它将我记录在服务器中,但命令未执行。下面是Powershell控制台
$switch = "172.20.19.50"
$commands = "c:\scripts\cmd.txt"
$username = root
$pw = Read-Host -Prompt "Enter password" -AsSecureString
plink -ssh $switch -l $username -pw $pw -m $commands
output
bash: Support: command not found
bash: Maintenance: command not found
我的c:\ scripts \ cmd.txt包含以下两个命令:
Support
Maintenance
命令中有什么我想念的吗?同样,如果有人可以建议一种更好的方法来远程从linux服务器获取输出,那将是很大的帮助。我只需要查询一些命令即可获取输出
答案 0 :(得分:2)
在所有情况下,如果有99.999%的计算机告诉您找不到东西,则原因是实际上没有东西。那么,您是否100%确定服务器上存在这些命令?
在其他情况下,原因是东西在那儿,但不在正确的地方。您是否100%确定这些命令位于root用户的$PATH
中?
答案 1 :(得分:0)
我做了一个脚本,该脚本也做了同样的工作(连接到UNIX计算机并使用Powershell执行命令),我必须这样做:
echo y | & $Plinkpath -P 22 -v $User@$server -pw $passw "$commands $($target)"
$ commands 所在的位置:
/usr/local/bin/sudo /usr/sbin/userdel
因为sudo和userdel并不总是位于mi $ PATH中(如JörgW Mittag所说),所以我必须使用命令的完整路径。
希望这对您有用!