从 ssh 批量搜索/替换字符串?

从 ssh 批量搜索/替换字符串?

我正在销售一个由 60 个站点组成的网络,这些站点在 /home/ 文件夹中的所有文件中都具有相同发布商 ID (google_ad_client="pub-xxxxxxxxxxxxxxxx") 的 adsense。

我如何通过 ssh 进行批量搜索/替换以将我的 ID 更改为买家 ID?

答案1

所以你想通过 ssh 连接到每台机器并进行更改?使用 ssh 和 expect 应该非常简单。查看此关于该方法的 stackoverflow 问题。基本上你只需要使用 expect 来自动化 ssh 登录,然后在每台服务器上运行如下命令(全部通过 expect 完成):

查找/home/-type f-maxdepth 1-print0|xargs-0 sed-i's/pub-xxxxxxx/pub-12345/'

这将使用 sed 来编辑 /home 中的每个文件(并且不编辑树中的较低文件),并用后者替换第一个字符串的出现。

如果这不是一次性的事情,您可以研究更干净地自动化,例如设置无密码 ssh 登录以消除 expect 步骤。但是,如果我正确理解了您的问题,您实际上是在寻找一次性解决方案,这就是我说以这种方式使用 expect 的原因。

相关内容