我有60个ec2实例,它们共享相同的文件夹结构,彼此相似,但不完全相同。错误的文件已上传到所有60个实例,我想知道用正确的文件替换该文件的最佳方法是什么?该文件的名称相同,并且在所有实例中都放置在同一位置。一般而言,AWS是新手,因此非常感谢您的帮助。
答案 0 :(得分:0)
假设您不想使用ansible之类的东西,可以访问服务器,并且只想使用bash,则可以执行以下操作: 将服务器的所有IP地址放入一个文件,每行一个-就像这样:
IpAddresses.txt
10.20.15.1
10.20.15.44
10.20.15.65
然后创建一个脚本:
myscript.sh
#!/bin/bash
while read line; do
ssh -i path_to_key.pem ec2-user@$line 'sudo rm -rf /path_to_directory | command 2 | command 3'
done < IpAddresses.txt
也许您可以执行上述操作,首先删除不需要的目录,然后执行scp复制正确的文件。
取决于纠正问题所需的命令,但这是一个选择。
请注意,我尚未完全测试此命令-因此您可能需要更正/测试一点。
参考: https://www.shellhacks.com/ssh-execute-remote-command-script-linux/
答案 1 :(得分:0)
如果您的EC2实例具有正确的IAM permissions,则可以使用Run Command
服务来使用简单系统管理器(SSM)控制台。单击“运行命令”,然后从命令文档列表中选择AWS-RunShellScript
。在文本框中,您可以指定要运行的shell命令,在下面可以选择要在其上运行命令的实例集。
这是更新和管理大量实例(如您拥有的实例)的推荐方法。