我目前需要在多个系统上安装 elasticstack,并希望通过 bash 脚本调用它。安装 elasticsearch 的两个步骤是添加 GPG 密钥,然后sources.list
为存储库创建一个文件。
在终端中手动运行此命令时,这些命令的传输方式如下:
wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -
echo "deb https://artifacts.elastic.co/packages/6.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-6.x.list
当尝试创建此操作的脚本时,它似乎只是挂起了。我假设这是由于命令管道造成的。所以我的问题是如何将这些行添加到 bash 脚本中,以便我能够毫无问题地运行它?
答案1
sudo
是脚本中通常不使用的命令(请参阅如何在脚本内运行“sudo”命令?),您最好以 root 身份运行整个脚本。您的脚本将是
#!/bin/bash
wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | apt-key add -
echo "deb https://artifacts.elastic.co/packages/6.x/apt stable main" >>/etc/apt/sources.list.d/elastic-6.x.list
并且您应该使它可执行chmod +x /path/to/script
并且运行它:
sudo /path/to/script