シェルスクリプトのリトライ処理

回数無制限のリトライ

参考にしたサイトはコチラ.素晴らしい情報をありがとう!

$ until COMMAND;do sleep 1;done

ここの COMMAND という箇所に実行したいコマンドを書くだけ!失敗したらその1秒後にコマンドを再実行します.簡単でしょ!

回数制限付きのリトライ

$ for i in {1..10};do COMMAND&&break;sleep 1;done

for 文を使って,この書き方なら10回までリトライする.こっちは実はまだ試してないんだけど,きっと動くでしょう.

何に使ったの?

僕は kotoriotoko というシェルスクリプトライブラリを使ってるんだけど,これの動画アップロード機能がときどき失敗する.ときどきというか,10回に1回の割合で必ず失敗してるような印象.もちろんランダムさは少しあるけど,本当に100回実行したら,必ず10回は失敗してる感じがする.

こういうのを載せてる

これをたくさんアップロードしたいときに,失敗されるとその後の作業が混乱するから困るんだよね.だから失敗してもいいから,失敗したらリトライしてほしかった.そのためにシェルスクリプトのリトライの作り方を調べたのでした.

リトライしながら動画をアップ

まぁ見ても面白くないけど,リトライ処理を含めた動画アップロードのスクリプトの実行シーンを撮影してツイートしたんでした.Ubuntu の端末アプリを全画面にするとカッコイイね!

コメントを残す

Powered by WordPress.com. テーマ: Baskerville 2 by Anders Noren

ページ先頭へ ↑

%d人のブロガーが「いいね」をつけました。