当前位置:网站首页>[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
边栏推荐
- [oc]- < getting started with UI> -- learning common controls
- Mongodb installation and basic operation
- Philosophical enlightenment from single point to distributed
- LeetCode:387. The first unique character in the string
- 什么是MySQL?MySql的学习之路是怎样的
- LeetCode:836. 矩形重叠
- Advanced Computer Network Review(3)——BBR
- Intel distiller Toolkit - Quantitative implementation 2
- requests的深入刨析及封装调用
- Redis之Bitmap
猜你喜欢
随机推荐
Problems encountered in connecting the database of the project and their solutions
LeetCode:498. Diagonal traversal
LeetCode:34. 在排序数组中查找元素的第一个和最后一个位置
[oc]- < getting started with UI> -- common controls - prompt dialog box and wait for the prompt (circle)
Simclr: comparative learning in NLP
LeetCode:214. Shortest palindrome string
Advance Computer Network Review(1)——FatTree
[OC foundation framework] - [set array]
LeetCode:剑指 Offer 48. 最长不含重复字符的子字符串
LeetCode:26. Remove duplicates from an ordered array
【每日一题】搬运工 (DFS / DP)
Selenium+Pytest自动化测试框架实战(下)
使用标签模板解决用户恶意输入的问题
【shell脚本】——归档文件脚本
LeetCode:34. Find the first and last positions of elements in a sorted array
[sword finger offer] serialized binary tree
Using label template to solve the problem of malicious input by users
LeetCode:236. 二叉树的最近公共祖先
Selenium+pytest automated test framework practice (Part 2)
Nacos installation and service registration




![[OC]-<UI入门>--常用控件的学习](/img/2c/d317166e90e1efb142b11d4ed9acb7.png)




