前言
有时候,我们在使用 Linux 系统时,会出现下面这样的情景:
-
1、一个命令或程序需要很长时间才能运行完毕,在这过程中,系统可能会假死,我们做任何操作都没用,只好重启系统;
-
2、我们仅仅想让命令或程序运行指定的时间,到了时间点就让命令/程序中止;
-
3、Log 刷新很快,但我们只需要 10 秒钟的 log。
我们有两种方法来实现这样的需求。
1、timeout命令的安装,timeout命令并不是安装原有的命令包
[root@king log]# yum provides timeout
已加载插件:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
* base: mirrors.aliyun.com
* extras: mirrors.aliyun.com
* updates: mirrors.aliyun.com
coreutils-8.22-23.el7.x86_64 : A set of basic GNU tools commonly used in shell scripts
源 :base
匹配来源:
文件名 :/usr/bin/timeout
coreutils-8.22-23.el7.x86_64 : A set of basic GNU tools commonly used in shell scripts
源 :@anaconda
匹配来源:
文件名 :/usr/bin/timeout
time的使用方法
timeout 数字和时间单位 命令
- 数字单位可以支持小数
- 时间单位默认是秒(s),也可以支持分钟(m),小时(h),天(d)
- timeout 是到了指定的时间就会发生一个SIGKILL
实际的timeout命令使用
timeout 1m tail -f /var/log/messages-20190905
timeout 0.1h tail -f /var/log/messages-20190905
timeout 10 dmesg -w
知识拓展 dmesg -w
dmesg -w 是查看开机的信息
dmesg -c 是删除开机信息,清除ring buffer中的内容。
但是dmesg -c 删除开机信息,在/var/log/dmesg 下的开机信息,还是会被保存
timeout 的对手 watch命令
- timeout 是一个按照时间终结执行的命令
- watch 是一个按照时间不间断执行的命令
- watch是只能在当前终端进行执行的一个命令,这个不同于crontab计划任务执行的命令