Quantcast
Channel: Bashタグが付けられた新着記事 - Qiita
Viewing all articles
Browse latest Browse all 2825

cronの代わりに定期実行してくれるバッチくん作成

$
0
0

概要

定期的にコマンドを事項してくれるシェルを作ったよというお話

cronのようなものですが、
cronと違うところは、コマンドが終了してから 次回処理をしてくれるので
2プロセス動くということがないというのが特徴

ソース

10秒ごとに Echoする処理

exec_sleep.sh
#!/bin/bash#いろいろ定義********************************endCount=2
sleepTime=10s

#function定義*******************************#ここにやりたいことかくよろし!
execCommand(){#実行する処理が自作のプログラムだったりする時はフルパスで書くとかCDするとかする必要あるっぽよecho"ECHO"}#改行出力処理
printSP(){#たまに出力結果を改行したくて空白出力処理をしてるわ!echo" "}#******************************************#以下本処理count=0
printSP

while :
do#開始時刻表示echo$[count+1]"回目Start : "`date +"%Y/%m/%d %p %I:%M:%S"`
    printSP

    #ループする処理
    execCommand
    printSP
    echo$[count+1]"回目End : "`date +"%Y/%m/%d %p %I:%M:%S"`count=$[$count+1]
    if[$count-ge$endCount];then
        echo"  "$count"回実行しました"break
    fi
    echo"  ****** now sleeping ******  "sleep$sleepTimedone

実行結果

[root@hogehoge ~]# sh exec_sleep.sh

1回目Start : 2021/01/14 AM 08:31:32

ECHO

1回目End : 2021/01/14 AM 08:31:32
  ****** now sleeping ******  
2回目Start : 2021/01/14 AM 08:31:42

ECHO

2回目End : 2021/01/14 AM 08:31:42
  2回実行しました


使い方

いろいろ定義部とfunction定義の部分を編集して

$ sh exec_sleep.sh

でOK

いろいろ定義部

定数とか変数を設定

  • endCount
    ループする回数を設定。
    サンプルは2回実行したいので2と入っている。

  • sleepTime
    sleepで寝かす時間。
    入力できる値は sleep --helpでご確認を。

function定義

  • execCommand
    このfunction内に 実行したい一連の処理を記載する。
    複数実行を順番に行うとかも可能。

作成理由

cronを入れていない Docker環境上でバッチを定期実行して様子を見る用に作成
定期的に実行しつつ、実行した時間を取りたかったので半ば無理やり作りました。


Viewing all articles
Browse latest Browse all 2825

Latest Images

Trending Articles