#!/bin/bash

请替换以下变量为实际值

A_SERVER="A服务器IP地址" A_USER="A服务器用户名" A_DIR="/path/to/sync" # A服务器需要同步的目录

B_SERVER="B服务器IP地址" B_USER="B服务器用户名" B_DIR="/path/to/sync" # B服务器需要同步的目录

EMAIL="收件人邮箱" SUBJECT="同步状态异常"

同步函数

sync_files() { rsync -avz --delete --exclude=".git" -e "ssh -o StrictHostKeyChecking=no" ${A_USER}@${A_SERVER}:${A_DIR} ${B_USER}@${B_SERVER}:${B_DIR} }

检查同步状态函数

check_sync() { diff <(ssh ${A_USER}@${A_SERVER} "cd ${A_DIR} && find . -type f -printf '%P\n' | sort") <(ssh ${B_USER}@${B_SERVER} "cd ${B_DIR} && find . -type f -printf '%P\n' | sort") }

发送邮件函数

send_email() { echo "同步状态异常,请检查!" | mail -s ${SUBJECT} ${EMAIL} }

执行同步

sync_files

检查同步状态

if check_sync; then echo "同步状态正常!" else echo "同步状态异常!" send_email fi

exit

写一个shell脚本将A服务器的文件同步到B服务器并自动检查两端的同步状态如果有文件没有同步则触发邮件通知

原文地址: https://www.cveoy.top/t/topic/cZAF 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录