Gnu*_*utt 6 bash logging stream
我正在编写一个bash脚本来执行异地备份,使用SSH上的rsync.我可以将STDOUT发送到记录器,用于记录日志
rsync --del -az -e 'ssh -i mycrt.crt' /home/gnutt/backup/ me@offisite:backup | logger -i
Run Code Online (Sandbox Code Playgroud)
但是我想要发送STDERR,所以如果出现问题,例如异地不可用,则应将该输出发送到记录器并记录.
您可以通过添加将STDERR描述符(2)重定向到STDOUT(1)2>&1,例如:
rsync --del -az -e 'ssh -i mycrt.crt' /home/gnutt/backup/ me@offisite:backup 2>&1 | logger -i
Run Code Online (Sandbox Code Playgroud)
如果你想要stderr而不是stdout(而不是stderr和stdout),你可以执行以下操作:
看起来像这样:
rsync --del -az -e 'ssh -i mycrt.crt' /home/gnutt/backup/ me@offisite:backup 9> /dev/null 1>&9 2>&1 | logger -i
Run Code Online (Sandbox Code Playgroud)
或者,您可以使用流程替换:
logger -i <( rsync --del -az -e 'ssh -i mycrt.crt' /home/gnutt/backup/ me@offisite:backup > /dev/null )
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6416 次 |
| 最近记录: |