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 发布
-
+
首页
停止Moosefs服务
## 写一个脚本,卸载挂载:192.168.1.3,192.168.1.4,192.168.1.5 /mfsdata . 遇到target is busy强行停止 。逐一 停止moosefs服务,等前一个服务完全停止再开始停止下一个服务 moosefs-master:192.168.1.211. moosefs-metalogger:192.168.1.212 , moosefs-chunkserver:192.168.1.3,192.168.1.5,192.168.1.214 并关机 ``` #!/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 lsof "$dir" && 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 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") machines=("${chunkservers[@]}" "$master" "$metalogger") directory="/mfsdata" # Stop MooseFS services in order echo "Stopping MooseFS services..." stop_service "$master" "moosefs-master" stop_service "$metalogger" "moosefs-metalogger" for chunkserver in "${chunkservers[@]}"; do stop_service "$chunkserver" "moosefs-chunkserver" done # Unmount the directory on all machines echo "Unmounting '$directory' on all machines..." 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[@]}" # 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日 15:08
转发文档
收藏文档
上一篇
下一篇
手机扫码
复制链接
手机扫一扫转发分享
复制链接
Markdown文件
分享
链接
类型
密码
更新密码