微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Linux-将stderr传递到自动ftp脚本中的syslog

我正在使用简单的脚本来自动执行ftp.该脚本如下所示:

ftp -nv $FTP_HOST<<END_FTP
user $FTP_USER $FTP_PASS
binary
mkdir $REMOTE_DIR
cd $REMOTE_DIR
lcd $LOCAL
put $FILE
bye
END_FTP

但是我想将STDERR传送到syslog,将STDOUT传送到日志文件.通常,我会执行以下操作:ftp -nv $FTP_HOST 1>> ftp.log |记录程序<< END_FTP,但在这种情况下由于<< END_FTP而无法使用.如何正确执行脚本以使其正常工作?请注意,我只想重定向脚本中FTP命令的输出,而不重定向整个脚本.

解决方法:

无需将临时文件用于错误输出即可使用. 2& 1将错误输出发送到标准输出将要到达的位置,即管道. >>更改标准输出的位置(现在是文件),而不更改标准错误的位置.因此,错误进入记录器,输出至ftp.log.

ftp -nv $FTPHOST <<END_FTP 2>&1 >> ftp.log | logger
user $FTP_USER $FTP_PASS
binary
mkdir $REMOTE_DIR
cd $REMOTE_DIR
lcd $LOCAL
put $FILE
bye
END_FTP

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐