watch 定期重复Linux / Unix命令(脚本)

背景 

Linux系统中重复执行命令的方法,包括设置特定的时间来重复执行的方法,需要的朋友可以参考下

watch 用法

watch  [options]  command

这里解释一下 options 

Options:
   -b,--beep如果命令退出不为零,则发出哔声
   -c,--color解释ANSI颜色序列
   -d,--differences [= <永久>]  突出显示更新之间的变化
   -e,--errexit如果命令具有非零退出,则退出
   -g,--chgexit当命令的输出更改时退出
   -n,--interval <secs>秒,两次更新之间等待  默认是2s
   -p,-精确尝试以精确间隔运行命令
   -t,--no-title关闭标题
   -x,--exec将命令传递给exec而不是“ sh -c”

  -h,--help显示此帮助并退出
  -v,--version输出版本信息并退出

watch 实际应用

1)例如,要使用df命令监视磁盘空间使用情况,并每隔5秒刷新一次屏幕,将运行:

watch -n 5 df -h

突出显示更新之间的差异   -d (--difference)选项将使watch突出显示连续更新之间的更改

可以尝试一下加入的炫酷效果。

2)监测某一个的文件

watch  -d ’ls -l | fgrep goface’       //goface为文件的名字

3)每隔10s执行某个sh脚本文件

watch -n  10  bash temperature.sh           // temperature.sh为 sh脚本文件     即:  watch -n  10  sudo sh temperature.sh 

常用参数再总结一波:

-n, –interval=<seconds>  指定时间间隔(秒),默认是2s

-t ,-no-title   会关闭watch命令在顶部的时间间隔

-d, –differences[=cumulative]  高亮显示变动,-d=cumulative选项会把变动过的地方(不管最近的那次有没有变动)都高亮显示出来.

为了方便大家理解,在网上找到图像化显示的效果,参考:https://www.itcodemonkey.com/article/3767.html

通过 -d 选项, watch 还能高亮显示两次输出中不同的部分,这个功能相当实用

watch -d -n 1 date

linux_watch02.gif


除了高亮显示输出中改变的部分外,你也可以设置让 watch 发现结果有改变时退出循环执行,方法是使用 -g/--chgexit 选项

watch -g free

默认情况下, watch 并不会关心命令的执行结果是否成功 

screenshot-56.png


但你可以让 watch 检测命令的返回值,当命令运行返回非0时发出蜂鸣(-b/–beep)或者直接退出(-e/–errexit)。

watch -e wrong_commands

screenshot-57.png


最后,若你希望 watch 只显示出命令的执行结果,而不要显示第一行的那些信息,那么可以使用 -t 选项关闭title的显示

watch -t date

screenshot-58.png

小结

watch对系统管理员而言是一个强大的工具,因为它可以用于监控、日志、运维、性能和系统运行时的吞吐量。

人们可以非常简单地格式化和推延watch的输出。

任何Linux命令/程序或脚本可以按照所需监测和连续输出。

希望对你有帮助。

发布了178 篇原创文章 · 获赞 373 · 访问量 30万+

猜你喜欢

转载自blog.csdn.net/qq_41204464/article/details/104011355