
Мне нужно передавать несколько файлов журнала каждый час в хранилище журналов, к которому могут получить доступ все пользователи, и я использую rsync для этого, но проблема возникает, когда файл журнала ротируется и автоматически архивируется, rsync обнаруживает новый файл и передает его тоже, это означает, что на целевом сервере у меня есть:
example.log.2014-01-17--00
и
example.log.2014-01-17--00.gz
Это тот же файл журнала, но сжатый с помощью gzip -9.
это моя строка rsync, она включена в скрипт:
rsync -rvzt --include "*/" --include "$pattern" --exclude "*" $directory [email protected]:/home/user/directory/$subdir/$basefilename
он запускается каждый час с помощью crontab и переносит все файлы, соответствующие $pattern и $directory, включенным в файл, содержащий пути и шаблоны, которые я хочу перенести.
Поэтому мой вопрос заключается в том, есть ли опция rsync, которую я не видел, или есть ли какая-то возможность сделать это и как?
Заранее спасибо.
решение1
Рассматривали ли вы возможность использования пересылки rsyslog [1]?
Также, из [2], похоже, что добавление --exclude '*.gz'
должно исправить вашу проблему. Зачем вы это делаете --exclude '*'
? Я бы понял, что каждый файл исключается из синхронизации.
[1]http://www.rsyslog.com/storing-and-forwarding-remote-messages/
[2]http://www.thegeekstuff.com/2011/01/rsync-exclude-files-and-folders/