背景
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
除了高亮显示输出中改变的部分外,你也可以设置让 watch
发现结果有改变时退出循环执行,方法是使用 -g/--chgexit
选项
watch -g free
默认情况下, watch
并不会关心命令的执行结果是否成功
但你可以让 watch
检测命令的返回值,当命令运行返回非0时发出蜂鸣(-b/–beep)或者直接退出(-e/–errexit)。
watch -e wrong_commands
最后,若你希望 watch
只显示出命令的执行结果,而不要显示第一行的那些信息,那么可以使用 -t
选项关闭title的显示
watch -t date
小结
watch对系统管理员而言是一个强大的工具,因为它可以用于监控、日志、运维、性能和系统运行时的吞吐量。
人们可以非常简单地格式化和推延watch的输出。
任何Linux命令/程序或脚本可以按照所需监测和连续输出。
希望对你有帮助。