Linuxコマンド「sleep」


sleepコマンドは指定され時間処理を停止するコマンドです。

sleep 時間[smhd]

[smhd]は、秒(s)、分(m)、時間(h)、日(d)、を表します。

🐞 応用例

TCPで指定したホスト名、ポート名にアクセスして応答がなければあるまで1分間待つ場合は次のコマンドです。

for i in `seq 60`; do timeout 1 bash -c (echo > /dev/tcp/{hostname}/{port}) > /dev/null 2>&1 && break || sleep 1; done
  • seq:連続した数字の列(1,2,…60)を出力
  • timeout:1秒以内に処理が成功しなければタイムアウト
  • bash -c:標準入力から読み込んだコマンドを実行する
  • echo > /dev/tcp/{hostname}/{port}:TCPで指定したホスト、ポートにアクセス
  • > /dev/null/2&1:標準出力、標準エラーの内容を表示しない(捨てる)

参考リンク

📚 おすすめの書籍

🖥 サーバについて

このブログでは「Cloud Garage」さんのDev Assist Program(開発者向けインスタンス無償提供制度)でお借りしたサーバで技術検証しています。 Dev Assist Programは、開発者や開発コミュニティ、スタートアップ企業の方が1GBメモリのインスタンス3台を1年間無料で借りれる心強い制度です!(有償でも1,480円/月と格安)