Инкронд | Используйте переменную среды $HOSTNAME

Я использую Incrond, чтобы проверить папку на предмет изменений файла, которые запускают задание Rsync на наш сервер хранения. Эта конфигурация развернута через Puppet, и поэтому она хотела бы использовать переменную $HOSTNAME в пути назначения, чтобы она выполняла запись в свой собственный каталог.

/path/to/backup/ IN_CLOSE_WRITE,IN_CREATE,IN_MODIFY,IN_MOVED_TO,IN_CLOSE_NOWRITE /usr/bin/rsync -t --password-file=/etc/rsyncd.secrets /path/to/backup/$# rsync://rsync@STORAGESERVER/storage/$HOSTNAME/backup/$#

Однако эта переменная hostname недоступна в Incrond; и просто передает "имя хоста" в путь rsync.

Как я могу получить переменную $HOSTNAME для работы в Incrond?

1 ответ

Я бы предложил этот обходной путь:

Вместо запуска фактической команды rsync, я бы заставил incrond запускать скрипт bash, содержащий команду rsync, и у вас будет команда HOSTNAME, доступная в среде скрипта во время ее выполнения.

Очевидно, что сначала вы должны развернуть этот сценарий раньше, но поскольку вы используете puppet, это не должно быть трудной частью.

Другие вопросы по тегам