首页 > 解决方案 > 如何在 bash 脚本中记录 lftp 错误

问题描述

我正在编写一个 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
}

关于如何记录此错误的任何想法?

标签: bashlftp

解决方案


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

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

推荐阅读