相关疑难解决方法(0)

带引号的 ssh 命令

我有一个奇怪的错误,我一直无法找到任何关于此的信息。我想使用以下命令更改用户评论。

$ sudo usermod -c "New Comment" user
Run Code Online (Sandbox Code Playgroud)

这将在登录到服务器时工作,但我想在 20 多台服务器上实现自动化。通常我能够使用一个列表并遍历服务器并运行命令,但在这种情况下我会收到错误消息。

$ for i in `cat servlist` ; do echo $i ; ssh $i sudo usermod -c "New Comment" user ; done 
serv1
Usage: usermod [options] LOGIN

Options:
lists usermod options

serv2
Usage: usermod [options] LOGIN

Options:
lists usermod options
.
.
.
Run Code Online (Sandbox Code Playgroud)

当我运行这个循环时,它会抛出一个错误,比如我错误地使用了命令,但它会在单个服务器上运行得很好。

翻翻SSH手册页我曾尝试-t-t -t标志,但那些没有工作。

我已经成功地perl -p -i -e在类似的循环中使用来编辑文件。

有谁知道我无法循环的原因?

shell ssh quoting

17
推荐指数
2
解决办法
2万
查看次数

如何在另一台机器上重现在一台机器上运行的命令?

我想在我在 VirtualBox 中运行的 linux 机器上安装一些软件。然后我想在 linux-VPS 上做同样的事情。

我认为我可以保存使用该history命令运行的所有命令。有什么办法可以在另一台机器上运行这些命令吗?或者有什么方法可以做这样的事情?

command-line shell command-history

8
推荐指数
2
解决办法
3576
查看次数

ssh 到多个主机并运行命令

如何通过 ssh 连接到多个主机(例如 host1、host2、host3 等)和 cat/etc/fstab以生成report.txt

ssh shell-script

3
推荐指数
2
解决办法
3万
查看次数

使用shell脚本在多个服务器上并行执行命令

我有 1000 台远程机器。我想对所有这些命令运行一些特定的命令,但要并行执行。我使用这些按顺序运行的命令:

for f in `cat host.lst`
do
       ./runScript.sh $f
done
Run Code Online (Sandbox Code Playgroud)

假设host.lst包含 100 个主机。我想runScript.sh在 100 台主机上并行运行。此外,应维护日志。

我无法在我的机器上安装任何实用程序,例如PSSH.

我做了很多研究并找到了这些链接,但它们没有帮助。我不明白它们是如何工作的:

在许多服务器上通过 SSH 自动运行命令

对匹配模式的多个文件并行执行命令

谁能解释一下逻辑?

linux shell shell-script

1
推荐指数
1
解决办法
5976
查看次数