我有以下 powershell 脚本,用于在我的 3 台服务器上远程运行 Plink 命令(我拥有所有正确的权限)
$KAFKA_PATH = "/opt/kafka"
$KAFKA_PROP_FILE = $KAFKA_PATH + "/config/server.properties"
$ZK_PROP_FILE = $KAFKA_PATH + "/config/zookeeper.properties"
$KAFKA_START = $KAFKA_PATH + "/bin/kafka-server-start.sh"
$ZK_START = $KAFKA_PATH + "/bin/zookeeper-server-start.sh"
echo Y | plink -i $HOME\Documents\keys\authorized_key_priv.ppk secret1server -t "bash $ZK_START $ZK_PROP_FILE &"
timeout /t 5
echo Y | plink -i $HOME\Documents\keys\authorized_key_priv.ppk secret2server -t "bash $ZK_START $ZK_PROP_FILE &"
timeout /t 5
echo Y | plink -i $HOME\Documents\keys\authorized_key_priv.ppk secret3server -t "bash $ZK_START $ZK_PROP_FILE &"
timeout /t 10
echo Y | plink -i $HOME\Documents\keys\authorized_key_priv.ppk secret1server -t "bash $KAFKA_START $KAFKA_PROP_FILE &"
timeout /t 5
echo Y | plink -i $HOME\Documents\keys\authorized_key_priv.ppk secret2server -t "bash $KAFKA_START $KAFKA_PROP_FILE &"
timeout /t 5
echo Y | plink -i $HOME\Documents\keys\authorized_key_priv.ppk secret3server -t "bash $KAFKA_START $KAFKA_PROP_FILE &"
但我无法正确查看日志,而且其中一些日志似乎冻结了,导致后续日志无法正常运行。我只想让每个 plink 命令在单独的窗口中运行,这样我就可以看到每个命令出错或正常运行。我理解 & 符号表示我正在将其守护进程化,但没关系,如果我需要查看控制台输出,我可以将其删除。
任何帮助将不胜感激。
谢谢,
答案1
嗯...我只能说我自己很傻。
我不明白的是,我希望它作为一个命令(远程/本地无关紧要),所以它被视为一个命令。当我执行以下操作时,我看到一个带有控制台输出的新窗口
echo Y | cmd /c start plink -i $HOME\Documents\keys\authorized_key_priv.ppk secret1server -t ""bash $KAFKA_START $KAFKA_PROP_FILE ""&"""
它按预期工作。但这可能不是正确的解决方案?