如何在bash脚本中记录lftp错误

时间:2018-10-29 14:16:52

标签: bash lftp

我正在编写一个bash脚本,以便使用lftp下载/上传文件并启用对文件(set xfer:log-file "$LOGFILE"的日志记录)。

在测试期间,我有一个550 access denied error,但令我惊讶的是,错误发生在stdout而不是日志文件中,并且我找不到捕获错误的方法。我在下面粘贴了我的上传功能。

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 :(得分:0)

只需将标准输出和标准错误输出重定向并附加到日志文件中即可。

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

答案 1 :(得分:0)

我终于明白了。 debug指令可以指向一个文件,因此将debug调整为debug -t -o $LOGDIR/debug.log 9(其中9是调试级别)就可以了。要仅记录接收到的消息(即远程响应),请使用日志级别4或5而不是9。