Nowe posty

Autor Wątek: Monitorowanie folderu zdalnego  (Przeczytany 972 razy)

jagrok

  • Gość
Monitorowanie folderu zdalnego
« dnia: 2016-04-08, 12:01:03 »
Witam,

Panowie jest to mój pierwszy post na forum, dlatego na samym początku pragnąłbym wszystkich przywitać, za nim przejdę do sedna sprawy.

W ostatnim czasie borykam się z monitorowaniem folderu zdalnego w którym to po pojawieniu się nowego pliku dochodziło by do synchronizacji.
Na samym początku napisałem prostu skrypt, wykorzystujący inotify-tools.
Świetnie sprawdzał się w przypadku lokalnych folderów, w przypadku zdalnych już niestety nie.

Dlatego pomyślałem że będę monitorował sobie /zdalny/folder za pomocą komendy listującej.
W momencie gdy porównam listingi za pomocą komendy cmp i wykryje zmianę, zacznę synchronizować zawartość katalogów.
Wszystko pięknie działa.

Niestety nie przewidziałem jednej rzeczy.
Mój skrypt nie powinien synchronizować plików które już były synchronizowane, a np zostały skasowane bo były nie potrzebne.
Czy jest jakiś sposób by tego uniknąć ?

#!/bin/bash

### Logs path
path="/var/log/compare"
log="compare.log"
listing1="listing1.log"
listing2="listing2.log"
### Path which will be monitored
destination="/path/to/destination/"
source="/path/to/remote/folder"


## Watching for content in source folder
ls -lh $source > $path/$listing1
### I`m checking if something was changed
        echo "$(date)" 'INFO' 'I will compare listing files' >> "$path/$log"
        if cmp -s "$path/$listing1" "$path/$listing2"
### Files are the same
        then
        echo "$(date)" 'INFO' 'Listings are the same' >> "$path/$log"
### Files are different
        else
        rsync -art $source $destination
        echo "$(date)" 'INFO' 'Finished synchronization' >> "$path/$log"
fi
cp $path/$listing1 $path/$listing2