来源: “码农不会写诗”公众号
链接:unbuffer禁用输出缓存,实现实时打印解决日志乱序
unbuffer
unbuffer是一个绕过Unix缓冲机制,实现实时显示标准输出流和标准错误流的命令行工具,在实时监控长时间运行进程或者进行复杂输出(多个不同流)log分析时都非常有用。
01 简介
unbuffer通过设置stdout和stderr的文件描述符属性关闭Unix输出流的缓冲机制,确保数据不存储在缓冲区中,强制命令的输出在每次写操作时立即刷新到终端。
unbuffer是调试和实时监控脚本或程序输出的有用工具,特别是在处理大量数据流时。
简单来说,在复杂输出流(复杂程序、软件、APP等)场景下,出现日志打印顺序跟预期不一致现象时,不妨一试。
02 安装
sudo apt-get update
sudo apt-get install expect -y
03 使用
unbuffer使用非常之简单,只需将其放在命令前即可
# unbuffer program [ args ]
unbuffer ls
unbuffer echo "This will be displayed immediately"
unbuffer python3 test.py