我如何让 sar 显示前一天?

xen*_*ide 49 linux command-line load statistics

在我们的服务器上,输入sarshow's the system load statistics for today 从午夜开始,是否可以显示昨天的统计数据?

Ste*_*n D 72

通常,提供命令的sysstatsar保存日志/var/log/sysstat/或/var/log/sa/文件名,例如/var/log/sysstat/saddwheredd是一个月中某天的数值(从 01 开始)。默认使用当天的文件;但是,您可以更改与-f命令行开关一起使用的文件。因此,在本月 3 日,您将执行以下操作:

sar -f /var/log/sysstat/sa03
Run Code Online (Sandbox Code Playgroud)

如果要限制时间范围,可以使用-s和-e参数。如果您想定期获取昨天的文件并且永远无法记住日期并拥有 GNU 日期,您可以尝试

sar -f /var/log/sysstat/sa$(date +%d -d yesterday)
Run Code Online (Sandbox Code Playgroud)

我强烈建议阅读sar的手册页。

  • 在我们的 cPanel/CentOS 系统上,它似乎在 `/var/log/sa` 中 (13认同)
  • /var/log/sa 也适用于 Redhat (5认同)

小智 7

尝试以下命令以获取历史内存利用率详细信息。

sar -r -f /var/log/sa/sa01
Run Code Online (Sandbox Code Playgroud)

里面的文件/var/log/sa记录了世界上的一切。


jet*_*net 6

有一个“神奇”参数:-N,例如以下将显示昨天的统计数据:

sar -1
Run Code Online (Sandbox Code Playgroud)

从许多服务器收集每周数据,并将其放入 NFS:

parallel --tag --nonall -k -j 3 -S server1,server2,server3 \
  'of="/nfs-path/sar-$(hostname).out"; rm -f "${of}"; for N in {7..0}; do sar -A -$N 2> /dev/null >> "${of}"; done'
Run Code Online (Sandbox Code Playgroud)

这些文件可以加载到kSar中