温馨提示×

debian cpustat怎么定时

小樊
39
2026-09-01 17:29:35
栏目: 智能运维

在 Debian 上如果你想定时使用 cpustat(或类似 CPU 统计工具),常见做法有下面几种,按使用场景从简单到规范说明。


一、先确认你用的是哪种 cpustat

Debian 里常见的 “cpustat” 有两种:

  1. sysstat 包的 mpstat / sar
    apt install sysstat
    
  2. Go 写的 cpustat(github.com/uber-common/cpustat)
    cpustat 1
    

下面以通用方式讲,不管哪种都适用。


二、用 cron 定时执行(最常用)

1. 编辑当前用户的 cron

crontab -e

2. 示例:每 5 分钟采集一次 CPU 状态

*/5 * * * * /usr/bin/cpustat -s 1 1 >> /var/log/cpustat.log 2>&1

或如果是 mpstat

*/5 * * * * /usr/bin/mpstat 1 1 >> /var/log/mpstat.log

注意:

  • 绝对路径
  • 重定向输出,否则 cron 会发邮件给你

三、用 systemd 定时(更现代,推荐服务器)

1. 创建 service

sudo vim /etc/systemd/system/cpustat-collect.service

内容:

[Unit]
Description=Collect cpustat

[Service]
Type=oneshot
ExecStart=/usr/bin/cpustat -s 1 1 >> /var/log/cpustat.log

2. 创建 timer

sudo vim /etc/systemd/system/cpustat-collect.timer
[Unit]
Description=Run cpustat every 5 minutes

[Timer]
OnCalendar=*:0/5
Persistent=true

[Install]
WantedBy=timers.target

3. 启用

sudo systemctl daemon-reload
sudo systemctl enable --now cpustat-collect.timer

查看:

systemctl list-timers

四、如果只是“持续采样但定时保存”

cpustat -s 5 360 > /var/log/cpustat_$(date +%F).log &

或配合 logrotate 防止日志爆炸。


五、常见问题

1. cron 里 cpustat 找不到

which cpustat

然后用绝对路径。

2. 没权限读 /proc

用 root 的 cron:

sudo crontab -e

3. 想要图形/历史数据

直接用:

sar -u 1 0

sysstat 会自动记录历史(/var/log/sysstat)。


如果你能告诉我:

  • 用的是 cpustat 还是 mpstat
  • 多久一次 / 保存到哪里 / 做什么用

我可以给你一份可直接用的配置

0