当前位置:网站首页>[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
边栏推荐
- Super efficient! The secret of swagger Yapi
- I-BERT
- Pytorch view tensor memory size
- 如何正确截取字符串(例:应用报错信息截取入库操作)
- Intel Distiller工具包-量化实现1
- Mise en œuvre de la quantification post - formation du bminf
- I-BERT
- [today in history] February 13: the father of transistors was born The 20th anniversary of net; Agile software development manifesto was born
- Tdengine biweekly selection of community issues | phase III
- UML圖記憶技巧
猜你喜欢
随机推荐
Advance Computer Network Review(1)——FatTree
Post training quantification of bminf
使用标签模板解决用户恶意输入的问题
【图的三大存储方式】只会用邻接矩阵就out了
Notes 01
SAP ui5 date type sap ui. model. type. Analysis of the parsing format of date
Cesium draw points, lines, and faces
Philosophical enlightenment from single point to distributed
Intel distiller Toolkit - Quantitative implementation 2
CSP first week of question brushing
Mongodb installation and basic operation
What is the role of automated testing frameworks? Shanghai professional third-party software testing company Amway
甘肃旅游产品预订增四倍:“绿马”走红,甘肃博物馆周边民宿一房难求
Pytest参数化你不知道的一些使用技巧 /你不知道的pytest
Selenium+pytest automated test framework practice
LeetCode:41. Missing first positive number
Improved deep embedded clustering with local structure preservation (Idec)
LeetCode:836. Rectangle overlap
LeetCode:34. 在排序数组中查找元素的第一个和最后一个位置
LeetCode:26. 删除有序数组中的重复项

![[MySQL] multi table query](/img/eb/9d54df9a5c6aef44e35c7a63b286a6.jpg)

![[OC-Foundation框架]--<Copy对象复制>](/img/62/c04eb2736c2184d8826271781ac7e3.png)
![[OC-Foundation框架]-<字符串And日期与时间>](/img/75/e20064fd0066810135771a01f54360.png)
![[OC-Foundation框架]---【集合数组】](/img/b5/5e49ab9d026c60816f90f0c47b2ad8.png)
![[OC]-<UI入门>--常用控件的学习](/img/2c/d317166e90e1efb142b11d4ed9acb7.png)


