关于我们

质量为本、客户为根、勇于拼搏、务实创新

< 返回新闻公共列表

在Linux服务器中使用Watch定期运行命令?

发布时间:2023/11/2 12:59:03
香港云服务器

在Linux服务器中定期运行一个命令或进程是很常用的操作。从清理脚本,到重复的文件删除命令,再到自动的定期升级,所有的东西都可以配置成在Linux服务器中定期运行。

通常,实现这一目标的方法是配置Cron作业,当涉及到自动化脚本和后台作业时,Cron作业非常方便。但是,如果你需要周期性地运行一个命令或程序,并交互式地查看其输出,即(几乎)实时地查看;就不能使用Cron,因为它将所有的输出保存到日志文件中。

今天我们将学习watch命令,它可以让我们周期性地运行一个命令或程序,并显示实时输出。

使用watch命令的基本语法是。

$ watch command_name

这将使命令'command_name'每2秒运行一次,这是默认的时间。

$ watch ps -ef

上面的命令会每2秒调用'ps -ef'(用于显示正在运行的进程及其资源使用情况),这样我们就可以定期看到最新的资源使用情况。

每一分钟运行一条Linux命令

要指定定期运行的时间间隔,请使用-n选项。

$ watch -n time_interval_in_seconds command

例如,要每隔1分钟运行一个Linux命令或程序,使用以下命令。

$ watch -n 60 ps -ef 

这显然会每隔1分钟运行一次'ps -ef'命令。

另一个有趣的选项是参数-d,它将在每次周期性运行命令后突出显示输出的差异。例如,让我们再次运行ps命令,这次按内存使用量的降序排列输出,这样我们就可以很容易地看到突出显示的差异。

$ watch -d -n 5 ps aux --sort -%mem

如上图所示,高亮显示了ps命令当前运行中改变的值。请注意,这只会突出显示两个即时运行之间的差异,而不是所有运行之间的差异。

我们看到了简单的使用watch命令是如何让我们在Linux中周期性地运行程序的。watch命令有更多的选项,可以真正帮助用户定制他或她的周期性运行。可通过$ man watch查看更多选项。