Я пытаюсь написать скрипт, который использует SSH, чтобы создать новый каталог и записать в него текстовый файл. У меня есть 1 мастер в сети, а затем 3 узла, на которых я хочу создать каталог. Эти 4 машины размещены на VMware.
#node1
ssh node1@192.168.1.102 'sudo touch /temp_dirname/host.txt'
ssh node1@192.168.1.102 'echo "node1" | sudo tee /temp_dirname/host.txt'
#node2
ssh node1@192.168.1.103 'sudo touch /temp_dirname/host.txt'
ssh node1@192.168.1.103 'echo "node1" | sudo tee /temp_dirname/host.txt'
#node3
ssh node3@192.168.1.104 'sudo touch /temp_dirname/host.txt'
ssh node3@192.168.1.104 'echo "node1" | sudo tee /temp_dirname/host.txt'
Когда я запускаю это, я получаю разные ошибки для каждого узла ... для узлов 1 и 2 я получаю
touch: cannot touch '/temp_dirname/host.txt': no such file or directory
и
tee: temp_dirname/host.txt: no such file or directory
и узел 3 I get:
touch: setting times of '/temp_dirname/ no such file or directory
и
tee: temp_dirname/host.txt: no such file or directory
Я совершенно запутался с этим, поскольку думал, что touch
создал файлы - так почему такого файла или каталога нет.
Если /temp_dirname
не существует, вы можете создать его с помощью mkdir -p /temp_dirname
.
-p
работает с любой произвольной глубиной, создавая каталоги по мере необходимости.