我正在编写一个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
}
关于如何记录此错误的任何想法?
答案 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。