小编Req*_*ist的帖子

如何管理所有终端输出,包括从脚本到日志文件的错误消息

我正在尝试为大型备份文件创建可读的日志文件.
在脚本中,我只是将命令的所有输出传递给一个大文件,然后可以通过脚本"清理".例如:

echo "Error occurred" >> log.file
mount disk >> log.file
Run Code Online (Sandbox Code Playgroud)

在执行脚本时,我错过了警告和错误,我在控制台管道.

backup.script >> log.file
Run Code Online (Sandbox Code Playgroud)

但即便如此,当我通过cron执行脚本(带管道)时,错误消息并不总是记录在我的文件中,我从rsync和脚本错误中收到邮件:

rsync: writefd_unbuffered failed to write 4 bytes to socket [sender]: Broken pipe (32)
rsync: write failed on "/mnt/backup1/xxxxx": No space left on device (28)
rsync error: error in file IO (code 11) at receiver.c(322) [receiver=3.0.9]
rsync: connection unexpectedly closed (215 bytes received so far) [sender]
rsync error: error in rsync protocol data stream (code 12) at io.c(605) [sender=3.0.9]
Run Code Online (Sandbox Code Playgroud)

并在发生脚本错误时:

/data/scripts/backup.auto: line 320: syntax error …
Run Code Online (Sandbox Code Playgroud)

bash scripting error-reporting pipe

0
推荐指数
1
解决办法
1万
查看次数

标签 统计

bash ×1

error-reporting ×1

pipe ×1

scripting ×1