[Linux] 常用命令之【sleep】

发布时间 2023-12-07 09:56:32作者: 千千寰宇

0 序言

  • 近期排查性能问题,需要监控线程、CPU的情况,需使用此命令,这次来个简单小结。

1 sleep 命令

1.1 作用

  • sleep命令是Linux系统中的一个非常常用的命令,它用于在终端或脚本执行的过程中让系统进行休眠等待。
  • 使用sleep命令可以让程序暂停执行一定的时间,从而达到控制程序执行节奏的效果。

1.2 语法

  • sleep命令语法:
sleep NUMBER[SUFFIX]

或 bin/sleep NUMBER[SUFFIX]

其中,NUMBER指的是休眠的时间,可以是整数或小数,SUFFIX则表示时间单位,默认为秒。支持的时间单位有:

  • s(秒)
  • m(分钟)
  • h(小时)
  • d(天)

1.3 示例

  • 休眠5秒钟
sleep 5

bin/sleep 5
  • 休眠3分钟
sleep 3m

bin/sleep 3m
  • 休眠1小时
sleep 1h

bin/sleep 1h
  • 休眠并输出进度条
#!/bin/bash

echo -n "Loading... "
sleep 1 &
pid=$!

while kill -0 $pid 2>/dev/null; do
    echo -n "."
    sleep 0.1
done
echo " Done!"

以上脚本会输出一个进度条,并在后台启动一个休眠1秒的sleep子进程,等待子进程结束后再输出“Done!”。

  • 定时间隔执行
#!/bin/bash

while true; do
    # do something
    sleep 5m
done

以上脚本会每隔5分钟执行一次“do something”操作。

  • 记录/监控 线程与CPU使用情况

为了定时去查看每条Thread CPU的使用,如每秒输出一次,使用以下Shell Script

vi cpu.sh
 
!/bin/sh
while [ true ]; do
  /bin/sleep 1
  ps -C java -L -o pcpu,cpu,nice,state,cputime,pid,tid | sort
  # ps -C <process ID> -L -o pcpu,cpu,nice,state,cputime,pid,tid | sort
done

执行时:

[root@ip tmp]#chmod 755 ./cpu.sh
[root@ip tmp]#./cpu.sh

每秒输出如下

 0.1   -   0 S 00:25:42 28009 28315
 0.1   -   0 S 00:25:42 28009 28363
 0.1   -   0 S 00:25:42 28009 28368
 0.1   -   0 S 00:25:42 28009 28502
 0.1   -   0 S 00:25:42 28009 28503
 0.1   -   0 S 00:25:43 28009 28327
 0.1   -   0 S 00:25:43 28009 28494
 0.1   -   0 S 00:25:43 28009

X 参考文献