ding_cw 发表于 2013-09-23 14:58

inotify rsync 问题请教

aaa目录如果有文件变化则同步增加到ccc目录
bbb目录如果有文件变化则同步增加到ccc目录

ccc目录整个同步到另一台服务器上

单独运行rsync的三条命令是正常的

将脚本在后台运行后只有aaa目录同步增加到ccc目录是正常的其余两个不正常怀疑是while   done语句不对请大神指点

#!/bin/bash

/usr/local/bin/inotifywait -mrq --timefmt '%d/%m/%y %H:%M' --format '%T %w%f' -e close_write,delete,create,attrib /data/aaa | while read files
    do
      /usr/bin/rsync -vzrtopgu /data/aaa /data/ccc >/dev/null 2>&1
      echo "${files} was rsynced" >> /var/log/rsync.log 2>&1
done

/usr/local/bin/inotifywait -mrq --timefmt '%d/%m/%y %H:%M' --format '%T %w%f' -e close_write,delete,create,attrib /data/bbb | while read files
    do
      /usr/bin/rsync -vzrtopgu /data/bbb/ /data/ccc/ >/dev/null 2>&1
      echo "${files} was rsynced" >> /var/log/rsync.log 2>&1
done

/usr/local/bin/inotifywait -mrq --timefmt '%d/%m/%y %H:%M' --format '%T %w%f' -e close_write,delete,create,attrib /data/ccc | while read files
    do
      /usr/bin/rsync -vzrt --delete --port=5873 --password-file=/etc/rsync.pas /data/ccc rsyncuser@11.11.11.11::image
      echo "${files} was rsynced" >> /var/log/rsync.log 2>&1
done

关阴月飞 发表于 2013-09-27 13:08

回复 1# ding_cw

shell脚本中是一行一行执行命令的,
inotifywait 的-m 参数是一直监视不退出, 就是说,这里等于是个死循环, 脚本后面的代码根本没机会运行。

ding_cw 发表于 2013-09-27 14:45

回复 2# 关阴月飞


    那我应该怎样才能实现同时监视3个文件夹的状态呢   分别写3个脚本还是使用别的参数?

关阴月飞 发表于 2013-09-27 14:56

回复 3# ding_cw


可以将前面的两个循环放到后台执行,不过最好是分开三个脚本,互不干涉。   
页: [1]
查看完整版本: inotify rsync 问题请教