系统相关
首页 > 系统相关> > linux-通过某些脚本在多台计算机的目录下创建文件?

linux-通过某些脚本在多台计算机的目录下创建文件?

作者:互联网

我必须在特定目录下创建一个文件functon.txt,该目录中有很多机器都可以使用hello world.到目前为止,这是我手动进行的操作,一个接一个地登录到每个框并创建文件.该目录由root拥有,因此我必须确保新文件也由root用户拥有.

david@machineA:~$sudo su
[sudo] password for david:
root@machineA:/home/david# cd /opt/Potle/ouyt/wert/1
root@machineA:/opt/Potle/ouyt/wert/1# vi functon.txt
root@machineA:/opt/Potle/ouyt/wert/1# ssh david@machineB

david@machineB:~$sudo su
[sudo] password for david:
root@machineB:/home/david# cd /opt/Potle/ouyt/wert/1
root@machineB:/opt/Potle/ouyt/wert/1# vi functon.txt
root@machineB:/opt/Potle/ouyt/wert/1# ssh david@machineC

.....

现在,我必须在大约200台计算机中执行此操作.我可以通过某种脚本来完成这些事情吗?如果可以的话,我可以多次输入密码,但是我不想手动登录到这些框中并手动执行所有其他步骤.

我有一个文件hosts.txt,其中逐行包含每台计算机.我可以逐行读取此文件并执行上述操作,但是我不确定该怎么做?

这对我来说只是一次练习,所以任何简单的方法都可以.我什至可以在脚本中对密码进行硬编码以完成此工作.完成这项任务的最佳方法是什么?

解决方法:

安装Ansible之后:

ansible -i /path/to/hosts.txt -m ping -u david --ask-pass all

查看是否可以成功ping通计算机.如果成功,请在2台计算机上尝试以下操作(仅用2台计算机创建另一个txt文件,并将其传递给-i选项).然后,您可以在所有计算机上运行此程序.如果该目录不存在,该命令将失败,您将在摘要中看到发生故障的计算机.

ansible -i /path/to/hosts.txt -m copy -a "src=/path/to/functon.txt dest=/opt/Potle/ouyt/wert/1/functon.txt" -u david --ask-pass --become --become-user root --ask-become-pass all

我没有测试.因此,请谨慎使用.

> -i:输入主机
> -m:模块
> -a:模块参数
> -u:用户
>-询问密码:询问用户密码
>-成为:成为另一个用户
>-成为用户:新用户
> –ask-become-pass:要求成为用户密码

标签:ansible,unix,ssh,ubuntu-14-04,linux
来源: https://codeday.me/bug/20191111/2023098.html