解决crontab定时输出top不执行办法

Top 命令是Linux系统中了解系统系统负载的重要命令。我们现在需要把top输出给记录下来用来分析。

我们先了解两个参数

-n 参数表示执行多少次,-n 1 表示 执行一次,执行10次就是-n 10

-d 参数表示几秒刷新一次,-d 1 就是 1s刷新一次,-d 10 就是10s

将以下shell保存到top.sh中,执行一次


NAME="/root/top_"$(date +%Y-%m-%d)
top -n 1 >> $NAME.txt

赋予执行权限

[bash]

chmod +x  top.sh

[/bash]

加入到crontab中

[bash]
crontab -e
[/bash]

* * * * * sh /root/top.sh

可是问题来了死活不执行,而我使用./top.sh确是正常执行的。

在top -n 1 >> $NAME.txt下面一行加上uptime >> test.log

[bash]

tail -f test.log

[/bash]

查看确实正常的能输出,说明crontab没有问题,那么问题就是出现在top命令上面了,解决办法很简单,加上-b参数即可。

-b 参数的意思是,批量模式运行

NAME="/root/top_"$(date +%Y-%m-%d)
top -b -n 1 >> $NAME.txt

此条目发表在笔记分类目录,贴了标签。将固定链接加入收藏夹。

发表评论

电子邮件地址不会被公开。 必填项已用*标注