Shell脚本
Reference
Shell笔记
shell自动清理30天以上的文件
shell自动备份PVE里的虚拟机系统文件
chatgpt做的自动备份pve镜像
shell 定时备份文件夹脚本以及删除过期备份
写一个断电按顺序自动关闭服务器的脚本
GPT:自动停止服务,控制关机
GPT: Shell 停止Docker 应用
GPT: Shell从文档读取配置信息
Shell传参给脚本,带参数运行
GPT:Shell停止Systemd服务
停止Moosefs服务
StartMoosefs.sh
StopMoosefs.sh
StopDocker.sh
StopSysyemService.sh
备份脚本
Linux运维常用脚本总结
网卡绑定bond配置脚本
自动取文件脚本
shell脚本: 同步两个本地文件夹
分割mysql-slow慢日志的脚本
解压不成功退出整个解压
Linux操作 :批量截取文件第一列,去重
文本的一些操作
nginx监控脚本
监控tomcat脚本
kafka监控脚本
zookeeper监控启动脚本
本文档使用 MrDoc 发布
-
+
首页
StopMoosefs.sh
#!/bin/bash #Define a function to stop a service and wait until it's completely stopped stop_service() { if ! ssh "${username}@$1" "systemctl status $2 | grep -q 'Active: active (running)'"; then echo "Service '$2' is already stopped on $1" return fi echo "Stopping service '$2' on $1..." ssh "${username}@$1" "systemctl stop $2" while ssh "${username}@$1" "systemctl status $2 | grep -q 'Active: active (running)'"; do echo "Waiting for service '$2' to stop on $1..." sleep 1 done } # Define a function to unmount the specified directory and wait until it's completely unmounted unmount_directory() { local machine="$1" local dir="$2" # Find all processes using the directory and kill them while ssh "${username}@$machine" lsof "$dir" && ssh "${username}@$machine" fuser "$dir" >/dev/null; do echo "Some file in '$dir' is still in use. Killing all processes using it on $machine..." ssh "${username}@$machine" "fuser -km $dir" sleep 3 done # Unmount the directory and wait until it's unmounted echo "Trying to unmount '$dir' on $machine..." ssh "${username}@$machine" "umount -f $dir" while ssh "${username}@$machine" "mount | grep -qF '$dir'"; do ssh "${username}@$machine" "umount -f $dir" echo "Waiting for '$dir' to be unmounted on $machine..." sleep 1 done } # Define a function to run a command on all machines in parallel #run_command() { # local command="$1" # shift # for host in "$@"; do # ssh "${username}@$host" "$command" & # done # wait # Wait for all background processes to finish #} ############################################################################################################ # Set the variables username="root" master="192.168.1.211" metalogger="192.168.1.212" chunkservers=("192.168.1.3" "192.168.1.5" "192.168.1.214") umountmachines=("192.168.1.3" "192.168.1.5" "192.168.1.4" ) directory="/mfsdata" # 第一步: 卸载所有挂载/mfsdata # Unmount the directory on all machines echo "Unmounting '$directory' on all machines..." for umounthost in "${umountmachines[@]}"; do unmount_directory "${umounthost}" "${directory}" done #run_command "if mount | grep -qF '$directory'; then echo 'Unmounting $directory...'; umount -f '$directory'; fi" "${machines[@]}" # Try to force-unmount the directory on all machines #echo "Trying to force-unmount '$directory' on all machines..." #run_command "if mount | grep -qF '$directory'; then echo 'Force-unmounting $directory...'; umount -f -l '$directory'; fi" "${machines[@]}" # 第二步 : 顺序停止服务 ## Stop MooseFS services in order echo "Stopping MooseFS services..." #1.停数据服务器 for chunkserver in "${chunkservers[@]}"; do stop_service "$chunkserver" "moosefs-chunkserver" done #2. 停日志服务器 stop_service "$metalogger" "moosefs-metalogger" #3.停主服务器 stop_service "$master" "moosefs-master" # Power off all machines #echo "Shutting down all machines..." #for host in "${machines[@]}"; do # ssh ${username}@$host "shutdown -h now" & #done # #wait # Wait for all background processes to finish #echo "All machines have been shut down successfully."
dz
2023年5月10日 16:09
转发文档
收藏文档
上一篇
下一篇
手机扫码
复制链接
手机扫一扫转发分享
复制链接
Markdown文件
分享
链接
类型
密码
更新密码