脚本功能说明:
这是一个用于CentOS 7系统的rsync远程备份同步服务一键卸载脚本,可以方便地清理和卸载定时备份与实时同步服务的相关组件。
-
卸载模式选择:
- 服务端:清理rsync服务端配置
- 客户端:清理inotify和定时备份配置
- 全部:同时清理服务端和客户端
-
清理内容:
- 停止并禁用相关服务(rsyncd/inotify_rsync)
- 删除配置文件(/etc/rsyncd.*)
- 删除日志文件
- 删除生成的脚本文件(/opt/*.sh)
- 清除定时任务
- 卸载相关软件包(rsync/inotify-tools)
-
特别注意:
- 不会删除EPEL源
- 不会自动删除备份目录(/opt/data_bak),会提示用户手动处理
- 保留了系统原有的rsync依赖(如果有其他服务依赖)
-
安全设计:
- 每个删除操作前都会检查文件是否存在
- 卸载后重新加载systemd
- 清晰的彩色状态提示
使用建议:在卸载前,请确保已备份重要数据,特别是备份目录中的数据。
脚本仓库地址:
https://gitee.com/cncsrf/rsync-remote-backup

#!/bin/bash
# Rsync服务一键卸载脚本
# 功能: 卸载定时备份和实时同步服务
# 颜色定义
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[0;33m'
BLUE='\033[0;34m'
NC='\033[0m' # No Color
# 打印彩色欢迎信息
echo -e "${GREEN}"
echo "======================================================"
echo " Centos7 rsync(远程定时和实时备份同步)一键卸载脚本 "
echo "======================================================"
echo -e "${NC}"
echo -e "${YELLOW}▌清理内容:${NC}"
echo -e " ${GREEN}➤${NC} 停止并禁用相关服务 (rsyncd/inotify_rsync)"
echo -e " ${GREEN}➤${NC} 删除配置文件 (/etc/rsyncd.*)"
echo -e " ${GREEN}➤${NC} 清除定时任务"
echo -e " ${GREEN}➤${NC} 删除日志文件 (/var/log/rsync_*.log)"
echo -e " ${GREEN}➤${NC} 卸载相关软件包 (rsync/inotify-tools)"
echo -e " ${GREEN}➤${NC} 删除systemd服务文件"
echo ""
echo -e "${RED}▌特别注意:${NC}"
echo -e " ${YELLOW}⚠${NC} 不会自动删除备份目录 (需手动处理)"
echo -e " ${YELLOW}⚠${NC} 不会卸载EPEL源"
echo -e " ${YELLOW}⚠${NC} 保留系统原有的rsync依赖"
echo -e " ${YELLOW}⚠${NC} 需要root权限执行"
echo -e "${BLUE}▌技术支持:${NC}https://gitee.com/cncsrf/rsync-remote-backup"
echo "============================================"
echo ""
# 检查root权限
if [ "$(id -u)" -ne 0 ]; then
echo -e "${RED}错误:请使用root用户运行此脚本!${NC}" >&2
exit 1
fi
# 选择卸载模式
echo -e "${YELLOW}请选择卸载模式:${NC}"
echo "1) 服务端(接收端)"
echo "2) 客户端(发送端)"
echo "3) 全部卸载"
read -p "输入数字 (1/2/3): " UNINSTALL_MODE
if [[ ! "$UNINSTALL_MODE" =~ ^[123]$ ]]; then
echo -e "${RED}错误:请输入1、2或3!${NC}" >&2
exit 1
fi
# 公共卸载函数
uninstall_common() {
echo -e "${YELLOW}正在卸载公共组件...${NC}"
# 停止并禁用rsync服务
if systemctl is-active --quiet rsyncd; then
systemctl stop rsyncd
systemctl disable rsyncd
echo -e "${GREEN}已停止rsyncd服务${NC}"
fi
# 删除rsync配置文件
[ -f "/etc/rsyncd.conf" ] && rm -f /etc/rsyncd.conf && echo "已删除 /etc/rsyncd.conf"
[ -f "/etc/rsyncd.secrets" ] && rm -f /etc/rsyncd.secrets && echo "已删除 /etc/rsyncd.secrets"
# 删除日志文件
[ -f "/var/log/rsync_backup.log" ] && rm -f /var/log/rsync_backup.log && echo "已删除 /var/log/rsync_backup.log"
[ -f "/var/log/inotify_rsync.log" ] && rm -f /var/log/inotify_rsync.log && echo "已删除 /var/log/inotify_rsync.log"
[ -f "/var/log/rsyncd.log" ] && rm -f /var/log/rsyncd.log && echo "已删除 /var/log/rsyncd.log"
# 删除PID文件
[ -f "/var/run/rsyncd.pid" ] && rm -f /var/run/rsyncd.pid && echo "已删除 /var/run/rsyncd.pid"
}
# 卸载服务端
uninstall_server() {
echo -e "${RED}正在卸载服务端组件...${NC}"
uninstall_common
# 提示但不删除备份目录
if [ -d "/opt/data_bak" ]; then
echo -e "${YELLOW}注意:备份目录 /opt/data_bak 仍然存在,请手动处理${NC}"
fi
# 卸载rsync软件包(但不卸载依赖)
if rpm -q rsync &>/dev/null; then
yum remove -y rsync
echo -e "${GREEN}已卸载rsync软件包${NC}"
fi
echo -e "${GREEN}服务端卸载完成!${NC}"
}
# 卸载客户端
uninstall_client() {
echo -e "${RED}正在卸载客户端组件...${NC}"
uninstall_common
# 停止并删除inotify服务
if systemctl is-active --quiet inotify_rsync; then
systemctl stop inotify_rsync
systemctl disable inotify_rsync
echo -e "${GREEN}已停止inotify_rsync服务${NC}"
fi
[ -f "/etc/systemd/system/inotify_rsync.service" ] && rm -f /etc/systemd/system/inotify_rsync.service && echo "已删除 /etc/systemd/system/inotify_rsync.service"
# 删除定时任务
crontab -l | grep -v "/opt/rsync_backup.sh" | crontab -
echo -e "${GREEN}已清除相关定时任务${NC}"
# 卸载软件包(但不卸载EPEL)
if rpm -q inotify-tools &>/dev/null; then
yum remove -y inotify-tools
echo -e "${GREEN}已卸载inotify-tools${NC}"
fi
if rpm -q rsync &>/dev/null; then
yum remove -y rsync
echo -e "${GREEN}已卸载rsync${NC}"
fi
echo -e "${GREEN}客户端卸载完成!${NC}"
}
# 执行卸载
case "$UNINSTALL_MODE" in
1)
uninstall_server
;;
2)
uninstall_client
;;
3)
uninstall_server
uninstall_client
;;
esac
# 重新加载systemd
systemctl daemon-reload
echo -e "${GREEN}已重新加载systemd${NC}"
echo -e "${GREEN}============================================${NC}"
echo -e "${GREEN} 卸载操作已完成! ${NC}"
echo -e "${GREEN}============================================${NC}"