linux之 创建多节点文件夹

本文介绍如何利用Linux下的mkdir命令创建多级目录,并详细解释了如何使用-p选项来一次性创建多级嵌套的目录结构,同时给出了具体的示例。



如果我想创建一个文件夹,很简单 mkdir   filename  就可以了

例如 我想创建文件夹  /mydata     使用mkdir 命令创建   mkdir  /mydata  ,


但如果我想创建一个多节点的文件夹呢, 如创建 类似 /mydata/data/backup  这样的文件夹捏,


还可以通过 mkdir  /mydata/data/backup  这样的方式创建吗? 不行的, 会提示  

no such file or directory ! 


通过老男人看看  , 有属性 -p    这个属性会创建需要的父级目录, 接下来试一下!


我想创建上文目录并赋予mask 内设权限


mkdir   -v  -p -m=rwrr  /mydata/data/backup

<think>好的,我现在需要在Linux集群中批量创建多个文件夹。用户之前提到的是在Hadoop环境中修改数据存储目录,可能涉及多个节点。首先,我得考虑如何在不同节点上同时创建目录,可能需要并行执行命令。 想到可以用SSH连接到各个节点执行mkdir命令,但手动一个个操作太麻烦。有没有工具能批量操作呢?记得集群管理常用工具像pdsh或者pssh,可以并行执行命令。例如,使用pssh的话,可以指定主机列表,然后发送创建文件夹的命令。但需要确保这些工具已经安装,并且配置了SSH免密登录,否则每次都要输入密码,不适合自动化。 另外,如果用户使用的是Hadoop集群,可能已经有分布式文件系统如HDFS,这时候创建文件夹应该用HDFS的命令,比如hadoop fs -mkdir。但用户的问题可能是在各个节点的本地文件系统创建目录,比如准备数据存储路径,像之前的引用中提到的修改Hadoop数据目录到/opt/software/hadoop-2.8.2/data,可能需要每个节点都有这个目录。 还有一种方法是编写一个脚本,遍历所有节点,使用ssh执行命令。比如,有一个主机列表文件hosts.txt,然后写一个循环读取每个主机,执行ssh user@host "mkdir -p /path/to/dir"。但同样需要配置免密登录,否则效率低下。 另外,引用中提到CDM工具可以周期性备份FTP文件到OBS,但这里用户的需求是创建文件夹,可能不相关。不过,用户可能希望创建文件夹用于存储数据,比如Hadoop的数据目录,所以需要确保所有节点都有相同的目录结构。 考虑权限问题,创建目录可能需要sudo权限,但如果是用户自己的目录,可能不需要。还要注意路径是否存在,使用mkdir -p可以自动创建目录。 总结可能的步骤:1. 准备主机列表;2. 使用并行SSH工具发送mkdir命令;3. 处理权限和路径问题。需要具体给出命令示例,比如使用pssh或循环ssh。</think>在Linux集群中批量创建文件夹可通过以下方法实现,具体步骤根据集群配置和权限要求选择: --- ### 方法一:使用并行SSH工具(推荐) 1. **安装并行SSH工具** ```bash # Ubuntu/Debian sudo apt-get install pssh # CentOS/RHEL sudo yum install pssh ``` 2. **创建主机列表文件** 新建`hosts.txt`,每行写入集群节点IP或主机名: ``` 192.168.1.10 192.168.1.11 192.168.1.12 ``` 3. **执行批量创建命令** ```bash pssh -h hosts.txt -l root -A -i "mkdir -p /opt/software/data/{dir1,dir2}" ``` - `-h`: 指定主机列表文件 - `-l`: 登录用户名(需有权限) - `-A`: 提示输入密码(若未配置SSH免密登录) - `-i`: 交互模式显示输出 - `mkdir -p`: 递归创建目录,若父目录不存在则自动创建 - `{dir1,dir2}`: 同时创建多个目录(Brace Expansion语法) --- ### 方法二:Shell脚本循环执行 若未安装并行工具,可通过循环遍历节点: ```bash #!/bin/bash nodes=("node1" "node2" "node3") # 替换为实际节点名 path="/opt/software/data" for node in "${nodes[@]}"; do ssh root@$node "mkdir -p $path/{dir1,dir2}" done ``` **注意**:需提前配置SSH免密登录[^5]。 --- ### 方法三:Ansible剧本(适用于复杂任务) 1. **编写YAML文件`create_dir.yml`**: ```yaml - hosts: all tasks: - name: 创建多个目录 file: path: "/opt/software/data/{{ item }}" state: directory loop: - "dir1" - "dir2" ``` 2. **执行剧本**: ```bash ansible-playbook -i inventory.ini create_dir.yml ``` - `inventory.ini`需包含集群节点信息[^1]。 --- ### 方法四:HDFS目录创建(若为分布式存储) 若需在HDFS上创建目录(如Hadoop集群): ```bash hadoop fs -mkdir -p /user/data/{dir1,dir2} ``` 此命令在HDFS文件系统中递归创建目录[^2]。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值