我有一个奇怪的错误,我一直无法找到任何关于此的信息。我想使用以下命令更改用户评论。
$ 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
在类似的循环中使用来编辑文件。
有谁知道我无法循环的原因?
我想在我在 VirtualBox 中运行的 linux 机器上安装一些软件。然后我想在 linux-VPS 上做同样的事情。
我认为我可以保存使用该history
命令运行的所有命令。有什么办法可以在另一台机器上运行这些命令吗?或者有什么方法可以做这样的事情?
如何通过 ssh 连接到多个主机(例如 host1、host2、host3 等)和 cat/etc/fstab
以生成report.txt
?
我有 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
.
我做了很多研究并找到了这些链接,但它们没有帮助。我不明白它们是如何工作的:
谁能解释一下逻辑?