Как я могу регистрировать ошибки lftp в скрипте bash - PullRequest
0 голосов
/ 29 октября 2018

Я пишу bash-скрипт для загрузки / выгрузки файлов, используя lftp с включением ведения журнала в файл (set xfer:log-file "$LOGFILE").

Во время моих тестов у меня было 550 access denied error, но, к моему удивлению, ошибка перешла в стандартный вывод вместо того, чтобы войти в мой лог-файл, и я не нашел способа перехватить ошибку. Я вставляю свою функцию загрузки ниже.

function xfer_up(){
  FOUND=$(ls $OUTBOX | wc -l)
  if [ $FOUND <= 0]; then
    log_info "no files available at $2 (EMPTY FOLDER)."
    return
  fi
  log_info "transfering files from $FOUND into $1/$2"
  lftp -u ${USER},${PASSWD} $1 << LFTP
set xfer:log true
set xfer:log-file "$LOGFILE"
set xfer:clobber true
set xfer:auto-rename true
debug 3
mput $OUTBOX/*.txt -O $2
quit
LFTP
}

Любые идеи о том, как я могу регистрировать эти ошибки?

Ответы [ 2 ]

0 голосов
/ 29 октября 2018

Я наконец получил это. Директива отладки может указывать на файл, поэтому настройка debug на debug -t -o $LOGDIR/debug.log 9 (где 9 - уровень отладки) сделала свое дело. Для регистрации только полученных сообщений (т.е. удаленных ответов) используйте уровень регистрации 4 или 5 вместо 9.

0 голосов
/ 29 октября 2018

Просто перенаправьте и добавьте стандартный вывод и стандартный вывод ошибок в лог-файл.

lftp -u ${USER},${PASSWD} $1 2>>"$LOGFILE" >>"$LOGFILE" <<LFTP
...