【linux】sleepコマンドの使用例と注意点を解説
こんにちは。
普段はIT業界についてのブログを執筆してるエンジニアです。
» 参考:プログラマーの年収は200万円以下です【IT業界の残酷な成功法則】
今回は、linuxについての解説記事です。
sleepコマンドの使い方を確認したい人
「linuxで数秒待ってから次の処理を行うのにsleepコマンドの使い方を確認したいです。構文やそのまま使えるような具体例を見せてください。また、ミリ秒での指定も可能ですか?」
こんな悩みを解決します。
この記事を書いている私はIT業界歴12年、うちサーバエンジニア歴6年、年収1,000万円ちょっとの金融系エンジニアです。IRIXやSolarisなどのUnixやmac、Linuxなど様々なUNIX系環境を扱ってきました。
これまでの経験を踏まえ、コマンドの解説に留まらず実務視点で利用方法を記事にしました。お役にたちましたら幸いです。
本記事の内容
- 1. 構文: sleep [待ち時間(秒)]
- 2. [使用例1] 10秒後にコマンド/スクリプトを実行する
- 3. [使用例2] 3秒に1回繰り返してコマンドを実行する
- 4. sleepコマンドにはオプションがありません
- 5. ミリ秒単位でsleepしたいときはどうする?
- 6. 開発・運用業務でsleepを使うときの注意点
1.構文: sleep [待ち時間(秒)]
sleepコマンドを使う際は、待ち時間を秒単位で指定します。
2. 【使用例1】10秒後にコマンドやシェルスクリプトを実行する
以下の例では、dateコマンドを実行し、10秒待ってからもう一度dateコマンドを実行します。
% date;sleep 10;date
動作は次のようになります。
- 1. 最初のdateコマンドが実行されて、時刻が表示される
- 2. sleepのため、10秒間プロンプトが待ち状態になる
- 3. 再度dateコマンドが実行されて、10秒後の時刻が表示される
実行結果は以下の通りです。
7月25日 20時59分51秒 JST 7月25日 21時01分01秒 JST
3. 【使用例2】3秒に1回コマンドを実行する
繰り返しコマンドを実行する際にもsleepは役に立ちます。sleepを入れないと、連続実行してしまうからです。
while true do date sleep 10 done
実行結果は以下の通りです。
7月25日 21時05分24秒 JST 7月25日 21時05分34秒 JST 7月25日 21時05分44秒 JST 7月25日 21時05分54秒 JST 7月25日 21時06分04秒 JST 7月25日 21時06分14秒 JST 7月25日 21時06分24秒 JST 7月25日 21時06分34秒 JST (…以降、10秒ごとに繰り返し)
4.sleepコマンドにオプションはありません
例えば1分、1時間sleepしたい場合にはどうすればいいでしょうか?sleepには分単位・
時間単位で時間指定するためのオプションがないため、秒単位で指定をします。
% sleep 60 % sleep 3600
5.ミリ秒単位でsleepしたいとき
では1秒よりも短いsleepを入れたい場合はどうすればいいでしょうか。答えは、小数点以下で指定することができます。以下の例では、0.1秒間sleepします。
% sleep 0.1
sleepの小数指定は、処理時間の間の調整や極めて短期間の間隔を開けてコマンド実行を繰り返したい時に便利です。
6. 開発・運用業務上の注意点
バッチ処理においてsleepを用いる場合の注意点を幾つか示します。
sleep使用時の注意点1
本当は前提として終わってなくてはならない他のバッチ処理の完了を待ち合わせなくてはならないのに、代替手段としてsleepで時間的なつじつまを合わせた場合、ある日前提となるバッチ処理が遅延して前提が崩れ、突然問題が生じる可能性があります。
sleep使用時の注意点2
「使用例2」で示した方式(whileで回してコマンド実行&sleepをループ)で10秒間隔でコマンド実行したい場合、厳密には10秒間隔ではなく10秒+繰り返すコマンドの実行時間
の間隔で処理が行われます。
10秒に1回だと思っているとだんだんとズレていきますので正確に10秒に1回実行したい業務では作りが甘い、という事になります。
おわりに
今回は以上です。sleepの使い方と注意点を解説しました。参考になりましたら幸いです。
Blog TOP Linuxコマンドを勉強したい人向け|Linuxの使い方 記事まとめ
Linux&Linuxコマンドを勉強したい人向けの記事もくじ
用語解説・技術一般
"UNIXとLINUX"の違いについて解説します
CUIとGUIの違い・特徴について解説します
サーバリソースを確認するコマンドの使い方
【Linux】CPU使用率を確認する3つの方法を解説します
【Linux】topコマンドで,CPU消費の原因を特定する方法
【Linux】ps実行時に-efオプションを付ける理由について
【Linux】メモリ使用率を確認する|容量・空きの確認も
【Linux】ディスク容量を確認する|ディスク容量監視も
ファイル操作に関するコマンドの使い方
【Linux】ファイルの行数をカウントする方法を解説
【Linux】文字コード変換ならiconvコマンド1択です
【Linux】/dev/nullを、エンジニアが使う2つの目的
【Linux】findのexecオプションの使い方とその注意点
【Linux】findの結果から圧縮ファイルを作るコマンド
【Linux】hostsの場所はどこ?→/etc/hostsにあります
【Linux】touchコマンドで,時刻更新&空ファイル作成
Linux管理者用コマンドの使い方
【Linux】再起動コマンド(shutdown)の使い方と注意点
よく使う便利なコマンドの使い方
【Linux】改行なしでechoコマンドを使う時の -nオプション
【Linux】sleepコマンドの使用例と注意点について解説する
【Linux】rmコマンドでディレクトリを削除する方法を解説
【Linux】ファイルを削除するコマンド2選【rm以外もあり】
【Linux】awkの区切り文字を指定する,-Fオプションを解説
【Linux】sedで文字列の置換をするeオプションを解説する
【Linux】dateコマンドのフォーマットとその便利な使い方
【Linux】大文字から小文字に変換する方法【小文字から大文字も】
シェルの便利機能
「今の会社を辞めて転職します。エンジニア職に強みのあるおすすめの転職サイト・転職エージェントを教えて欲しい。また好条件で転職するにはどうすれば良いですか?」こんな悩みに答えます。 ITエンジニアに強いおすすめの転職サイト・転職エージェント3選 転職成功には強くてニューゲームが条件。どうやって実現する?