当前位置:网站首页>[shell script] use menu commands to build scripts for creating folders in the cluster
[shell script] use menu commands to build scripts for creating folders in the cluster
2022-07-06 09:10:00 【chaolei_ nine thousand five hundred and twenty-seven】
Here's the catalog title
background
There is a need , You need to create the same directory on each host in the cluster , For example, to add a directory x, Then all hosts in the cluster need to create this x Catalog , And change the execution permission of the directory .
Realization
For ease of operation , Prepare to use menu commands to build options , The script selects the corresponding operation according to the options .
2.1 The configuration file
services_conf The configuration is as follows :
test1/logs;test1/project-logs;test1/agent/logs
test2/logs;test2/project-logs;test2/agent/logs
test3/logs;test3/project-logs;test3/agent/logs
test4/logs;test4/project-logs;test4/agent/logs
2.2 Script
#!/bin/bash
# Determine if the configuration file exists
function file_exist() {
conf_filename=$1
[ ! -f $conf_filename ] && {
echo "there is no conf file named $conf_filename"
exit 1
}
}
# Execute commands in the cluster
function create_dir() {
echo "ansible The order to be executed is $1"
ansible all -m shell -a "$1"
}
function main_op() {
services_conf=$1
services_name=`cat $services_conf | grep -v "^#"`
oldIFS=$IFS
IFS=$'\n'
for service in $services_name
do
echo "service:$service Start to deal with ........."
IFS=$";"
for sub_item in $service
do
# If the folder does not exist, create
if [ ! -d /home/work/chao/$sub_item ];then
create_dir "mkdir -p /home/work/chao/$sub_item && chmod -R 777 /home/work/chao/$sub_item"
else
echo "$sub_item Already exists ..............."
fi
done
echo "$service Finished processing ..................."
echo
done
IFS=$oldIFS
}
########## The script starts to execute
echo "Now ,the shell will be executed named $0.............."
PS3="Enter option"
flag=1
while [ $flag -eq 1 ]
do
echo "Please input a number: 1. Create directory ; 2. sign out "
select option in " Create directory " " sign out "
do
case $option in
" sign out ")
flag=0
break
;;
" Create directory ")
echo -e "\033[31m Start creating directory ................\033[0m"
file_exist services_conf
main_op services_conf
echo
echo -e "\033[31m Finish creating directory ................\033[0m"
;;
*)
clear
echo " I'm sorry , Wrong option entered !"
echo "Please input a number: 1. Create directory ; 2. sign out "
;;
esac
#select
done
#while
done
边栏推荐
- requests的深入刨析及封装调用
- Redis之Bitmap
- Nacos installation and service registration
- [OC]-<UI入门>--常用控件-UIButton
- Booking of tourism products in Gansu quadrupled: "green horse" became popular, and one room of B & B around Gansu museum was hard to find
- MYSQL卸载方法与安装方法
- LeetCode:214. Shortest palindrome string
- 五层网络体系结构
- [OC-Foundation框架]---【集合数组】
- Intel distiller Toolkit - Quantitative implementation 1
猜你喜欢
Advanced Computer Network Review(5)——COPE
LeetCode:124. 二叉树中的最大路径和
CUDA实现focal_loss
LeetCode:221. Largest Square
What is MySQL? What is the learning path of MySQL
Intel distiller Toolkit - Quantitative implementation 1
什么是MySQL?MySql的学习之路是怎样的
Redis之五大基础数据结构深入、应用场景
Pytest参数化你不知道的一些使用技巧 /你不知道的pytest
Nacos 的安装与服务的注册
随机推荐
Mathematical modeling 2004b question (transmission problem)
LeetCode:387. The first unique character in the string
CUDA实现focal_loss
go-redis之初始化连接
Intel Distiller工具包-量化实现3
项目连接数据库遇到的问题及解决
LeetCode:剑指 Offer 48. 最长不含重复字符的子字符串
在QWidget上实现窗口阻塞
LeetCode:498. 对角线遍历
数学建模2004B题(输电问题)
Leetcode: Sword finger offer 42 Maximum sum of continuous subarrays
pytorch查看张量占用内存大小
使用latex导出IEEE文献格式
[OC foundation framework] - string and date and time >
【图的三大存储方式】只会用邻接矩阵就out了
Notes 01
一篇文章带你了解-selenium工作原理详解
使用标签模板解决用户恶意输入的问题
Advance Computer Network Review(1)——FatTree
如何正确截取字符串(例:应用报错信息截取入库操作)