You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何编写Bash脚本监控文件夹变更并同步内容至另一文件夹

实现文件夹变更监控与自动同步的Bash脚本

当然可以!这是个非常实用的需求,我常用inotifywait(专门监控文件系统事件的轻量工具)搭配rsync(高效的文件同步工具)来实现,这俩工具在绝大多数Linux发行版里都能轻松安装部署。

第一步:安装依赖工具

根据你的Linux发行版选择对应命令安装:

  • Debian/Ubuntu 系列:
    sudo apt update && sudo apt install inotify-tools rsync -y
    
  • RHEL/CentOS 系列:
    sudo yum install inotify-tools rsync -y
    

第二步:编写监控同步脚本

创建一个名为folder_sync.sh的脚本,记得替换成你自己的源文件夹和目标文件夹路径:

#!/bin/bash

# 配置你的源文件夹和目标文件夹路径
SOURCE_DIR="/path/to/your/source/folder"
TARGET_DIR="/path/to/your/target/folder"

# 检查源文件夹是否存在,不存在则退出
if [ ! -d "$SOURCE_DIR" ]; then
    echo "错误:源文件夹 $SOURCE_DIR 不存在!"
    exit 1
fi

# 检查目标文件夹,不存在则自动创建
if [ ! -d "$TARGET_DIR" ]; then
    echo "目标文件夹不存在,正在创建..."
    mkdir -p "$TARGET_DIR"
fi

echo "开始监控文件夹:$SOURCE_DIR,同步至:$TARGET_DIR"

# 持续监控源文件夹的核心变更事件
inotifywait -m -r -e create,delete,modify,move "$SOURCE_DIR" | while read -r directory events filename; do
    echo "检测到变更:$events 在 $directory$filename"
    # rsync同步,-a是归档模式(同步权限、时间戳、子文件夹等),--delete会删除目标中源没有的文件(按需启用)
    rsync -av --delete "$SOURCE_DIR/" "$TARGET_DIR/"
    echo "同步完成于 $(date '+%Y-%m-%d %H:%M:%S')"
done

第三步:脚本使用说明

  1. 给脚本添加执行权限:
    chmod +x folder_sync.sh
    
  2. 前台直接运行(关闭终端会停止监控):
    ./folder_sync.sh
    
  3. 后台持续运行(关闭终端也不会中断):
    nohup ./folder_sync.sh &
    
    运行日志会自动保存在当前目录的nohup.out文件里。

实用调整建议

  • 自定义监控事件:如果不需要监控删除操作,可以把-e create,delete,modify,move改成-e create,modify,move;
  • 排除特定内容:不想同步临时文件的话,给rsync加--exclude='*.tmp'参数,排除文件夹则用--exclude='temp_dir/';
  • 开机自动运行:可以把脚本做成systemd服务,创建/etc/systemd/system/folder-sync.service文件:
    [Unit]
    Description=Folder Sync Monitor
    After=network.target
    
    [Service]
    User=your_username
    ExecStart=/path/to/your/folder_sync.sh
    Restart=always
    
    [Install]
    WantedBy=multi-user.target
    
    然后执行sudo systemctl daemon-reload、sudo systemctl enable folder-sync、sudo systemctl start folder-sync即可开机自启。

内容的提问来源于stack exchange,提问作者Mr. Foxy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 07:09:05