Вернуть множественный статус выхода в nagios

Алгоритм rsync дельта-передачи делает это по умолчанию. Цитата из справочной страницы rsync:

ОПИСАНИЕ

Rsync — это быстрый и необычайно универсальный инструмент для копирования файлов. Это может копировать локально, на/с другого хоста через любую удаленную оболочку или к/от удаленного демона rsync. Предлагает большое количество вариантов которые контролируют каждый аспект его поведения и позволяют очень гибко указание набора копируемых файлов. Он известен своим алгоритм дельта-передачи, который уменьшает объем данных, отправляемых через сети, отправляя только различия между исходными файлами и существующие файлы в месте назначения . Rsync широко используется для резервного копирования и зеркалирования, а также в качестве улучшенной команды копирования для повседневного использования. использовать.

Если вы хотите отключить его, вам придется использовать опцию -W или --весь-файл.

-W, --whole-file

Эта опция отключает алгоритм дельта-передачи rsync, который заставляет все переданные файлы отправляться целыми. То передача может быть быстрее, если эта опция используется, когда полоса пропускания между исходной и конечной машинами выше, чем пропускная способность на диск (особенно когда «диск» на самом деле является сетевым файловая система). Это значение по умолчанию, когда и источник, и место назначения указываются как локальные пути, но только в том случае, если не указан параметр пакетной записи. в результате.

Если вы действительно знаете, насколько изменился ваш файл, вы можете даже оптимизировать это поведение дельта-передачи, настроив размер вашего дельта-блока:

-B, --block-size=BLOCKSIZE

Это заставляет блок размер, используемый в алгоритме дельта-передачи rsync, к фиксированному значению. Обычно он выбирается в зависимости от размера каждого обновляемого файла. См. технический отчет для деталей.

А если вам нужна дополнительная информация о самом алгоритме, вы можете найти ее здесь: Алгоритм Rsync

1
25.05.2016, 17:58
1 ответ

Я не знаком с Nagios и его работой, но если он принимает только один код выхода за раз, вам нужно немного изменить ваш сценарий и запустить его несколько раз.

output=$(head -1 file)  # read first line
sed -i -e '1,1d' file   # delete the first line

  STATE=$(echo $output)

  if [ $STATE == "OFFLINE" ]; then
        echo "CRITICAL: STATE is $STATE" 
        exit 2
  else
        echo  "OK " > /dev/null
  fi

Если вы можете запустить этот сегмент несколько раз, вы получите несколько кодов выхода.

0
28.01.2020, 01:17

Теги

Похожие вопросы