Linux中以给定的间隔重复命令
Contents
1. 概述
在本教程中,我们将学习如何使用命令行每隔 X 秒自动重复任何 Linux 命令。
这对于自动化需要连续执行的任务特别有用。另一个用例是定期检查各种系统健康参数,以确保一切按预期工作。
2. Linux watch命令
考虑到这个目的,我们将仔细研究Linux watch 命令。由于watch命令是procps包的一部分,我们会发现它默认安装在几乎每个 Linux 系统上。因此,不需要安装。 watch命令默认每两秒执行一次提供的命令,并全屏显示输出。
在最基本的情况下,我们只通过传递我们想要执行的命令作为唯一参数来调用watch :
watch date
我们可以在这里看到几件事:在左上角,我们找到了当前的执行频率。在这种情况下,它是两秒。在右上角,我们找到主机名和当前日期。最后,在此之下,我们找到了我们调用的命令的输出,它恰好也是当前日期。每当经过两秒时,就会更新此输出。
3. 配置选项
显然,我们可以使用几个命令行参数来根据自己的喜好自定义此输出。
要更改执行频率,我们使用*-n*参数后跟执行之间的秒数:
watch -n 60 df -h
该命令将每分钟执行一次df -h,向我们显示硬盘上的磁盘使用情况。
为了将这个相当广泛的输出限制到相关行,我们将使用管道。
每当我们想在传递给watch的命令中使用管道时,我们需要将整个命令括在引号中:
watch -n 60 'df -h | grep /sda'
现在我们只显示*/dev/sda1* 上的磁盘使用情况,它每分钟刷新一次。
如果我们对输出第一行的信息不感兴趣,可以使用*-t*选项禁用标题栏:
watch -t date
最后,我们可以使用*-d*选项来动态突出显示我们感兴趣的命令的不同执行之间的差异。
free 命令是一个很好的尝试,以便看到它的实际效果:
watch -d free