我正在尝试编写一个脚本,该脚本使用 SSH 创建一个新目录并在其中写入文本文件。我在网络上有 1 个主节点,然后有 3 个节点我想在其上创建目录。这 4 台机器托管在 VMware 上。
#node1
ssh [email protected] 'sudo touch /temp_dirname/host.txt'
ssh [email protected] 'echo "node1" | sudo tee /temp_dirname/host.txt'
#node2
ssh [email protected] 'sudo touch /temp_dirname/host.txt'
ssh [email protected] 'echo "node1" | sudo tee /temp_dirname/host.txt'
#node3
ssh [email protected] 'sudo touch /temp_dirname/host.txt'
ssh [email protected] '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 上我得到:
touch: setting times of '/temp_dirname/ no such file or directory
和
tee: temp_dirname/host.txt: no such file or directory
我对此感到非常困惑,因为我认为touch
创建了文件 - 那么为什么没有这样的文件或目录。
答案1
如果/temp_dirname
不存在,您可以使用 创建它mkdir -p /temp_dirname
。
-p
适用于任意深度,根据需要创建目录。