[Linux] 常用命令之【sleep】

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 參考文獻

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章