什么命令可以后台定时循环执行top
时间: 2024-10-26 10:17:46 浏览: 26
在Linux中,直接使用`top`命令作为后台定时循环执行的任务通常是不推荐的,因为`top`是交互式命令,不适合长时间无输入地运行。如果你想定期获取系统的资源状态,但不想频繁打开新窗口或控制台,可以考虑使用其他的命令行工具,比如`sshd`(如果在远程服务器上),或者是结合其他工具如`cron`、`nohup`、`screen`或`tmux`。
1. 使用`cron`定时任务:你可以编写一个shell脚本,让它每隔一段时间运行`top`,并将结果保存到文件或者直接发送邮件。例如,创建一个名为`my_top.sh`的文件:
```bash
while true; do
top > /path/to/output.log
sleep 600 # 每十分钟执行一次
done
```
然后配置`cron`定时任务:
```bash
crontab -e
*/10 * * * * /bin/bash /path/to/my_top.sh
```
2. 使用`nohup`命令:它可以让你的应用程序在用户登录关闭后继续运行。不过,`top`作为一个交互式程序,用`nohup`可能效果不佳:
```bash
nohup top &> /path/to/top_output.txt &
```
3. 使用`screen`或`tmux`:这两个都是终端管理器,允许你在一个会话中启动多个命令并保持它们在后台运行。比如,在`screen`中:
```bash
screen -dmS my_top top
```
这样可以在新开的屏幕会话里运行`top`,退出时`top`仍在后台运行。
4. 如果你想在控制台上定期更新`top`视图,可以用`watch`命令,但是它不能持久化记录历史:
```bash
watch -n 60 top
```
注意每个选项都有其适用场景和优缺点,根据实际需求选择最合适的方式。
阅读全文