Опция rsync –log-file, похоже, не работает

Вопрос или проблема

Я использую опцию --log-file в rsync, чтобы видеть логи. Но когда я попытался запустить, было сообщение:

--log-file нераспознанная опция

Вот моя команда:

/usr/bin/rsync -av -u --log-file="/sreeni/log.txt" --rsync-path=/usr/local/bin/rsync /sreeni nnmhpt20.ind.hp.com:/sreeni

Может кто-нибудь помочь мне с правильным синтаксисом?

Я также пробовал эти варианты.

/usr/bin/rsync -av -u --log-file /sreeni/log.txt --rsync-path=/usr/local/bin/rsync /sreeni nnmhpt20.ind.hp.com:/sreeni

и

/usr/bin/rsync -av -u --log-file="/sreeni/log.txt" --rsync-path=/usr/local/bin/rsync /sreeni nnmhpt20.ind.hp.com:/sreeni

Какой у вас дистрибутив? Для дистрибутива, не зависящего от типа, вы можете использовать простую перенаправление вывода.

rsync ваши_выбранные_опции >> выбранный_лог-файл 2>&1

что превращается в:

/usr/bin/rsync -av -u /sreeni nnmhpt20.ind.hp.com:/sreeni >> /sreeni/log.txt 2>&1

Тем не менее, для систем на базе Debian это, похоже, работает:

rsync -av -u --log-file=/var/log/atest.log SRC DEST 2>&1 1>/dev/null

в то время как для RHEL мне нужно было:

rsync -av -u SRC DEST 1>>/var/log/atest.log 2>/dev/null

это выражение работает для меня (ubuntu 12.10):

sudo rsync -axzuvh --force --delete --no-whole-file --log-file=/var/log/atest.log SRC DEST

не забывайте использовать sudo.

Я нашел, что этот способ работает для меня:

rsync -av /source/directory/ /destination/directory/ &> ~/todaysDate-sync.log &

Ответ или решение

Проблема, с которой вы столкнулись, связана с тем, что опция --log-file не является стандартной опцией для всех версий rsync. Поэтому использование этой опции может вызвать ошибку "unrecognized option".

Чтобы решить эту проблему и правильно записывать логи, есть несколько подходов:

  1. Перенаправление вывода: В большинстве случаев можно использовать простое перенаправление вывода. Это позволит вам сохранить как стандартный вывод, так и вывод ошибок в указанный вами файл. Вот пример команды с редиректом:

    /usr/bin/rsync -av -u /sreeni nnmhpt20.ind.hp.com:/sreeni >> /sreeni/log.txt 2>&1

    Здесь >> добавляет вывод к файлу /sreeni/log.txt, а 2>&1 объединяет стандартный вывод и вывод ошибок.

  2. Использование --log-file: Если вы уверены, что ваша версия rsync поддерживает --log-file, попробуйте использовать его без кавычек:

    /usr/bin/rsync -av -u --log-file=/sreeni/log.txt --rsync-path=/usr/local/bin/rsync /sreeni nnmhpt20.ind.hp.com:/sreeni
  3. Проблемы с правами: Убедитесь, что у вас есть права на запись в указанный файл лога. Если вы используете команду с привилегиями администратора, попробуйте:

    sudo /usr/bin/rsync -av -u --log-file=/var/log/atest.log /sreeni nnmhpt20.ind.hp.com:/sreeni
  4. Проверка дистрибутива: Некоторые дистрибутивы Linux могут иметь разные реализации rsync. Убедитесь, что используемая вами версия rsync поддерживает нужные вам опции. Вы можете проверить версию rsync, выполнив команду:

    rsync --version
  5. Кросс-дистрибутивные рекомендации: Если вы сталкиваетесь с проблемами на одной системе, возможно, имеет смысл использовать кросс-дистрибутивный подход. Приведенным ниже решением вы можете записывать логи вне зависимости от системы:

    rsync -av /source/directory/ /destination/directory/ &>> ~/todaysDate-sync.log &
  6. Проверка переменных среды: Иногда окружение или конфигурация системы могут влиять на выполнение команд. Проверьте, не установлены ли какие-либо мутации (alias) для rsync, которые могут мешать работе команд.

Если проблема все еще не решена, предоставьте дополнительные сведения, такие как версия rsync и используемая ОС, чтобы мы могли оказать более детальную помощь.

Оцените материал
Добавить комментарий

Капча загружается...