bash
1#!/bin/bash 2 3 4LIST_FILE="/tmp/list_file" 5USER=test 6PASS=test11 7DBNAME=test 8RESULT="/tmp/result" 9ERR_FILE="/tmp/error.txt" 10 11 12delete_target=`grep "delete:" $LIST_FILE` 13 14for i in $delete_target 15do 16 17 delete_sql=`mysql -u $USER -p"$PASS" $DBNAME -e delete from ${i} 2>&1 /dev/null` 18 19 if [ "$?" -eq 0 ]; then 20 echo $i:deleted >> $RESULT 21 else 22 echo $i: error $delete_sql >> $ERR_FILE 23 fi 24done
上記のように、削除したいテーブル名が書かれているリストファイルを読み込み、削除対象のテーブル名を一行ずつfor文で順番に削除する処理があります。
・実現したいこと
if [ "$?" -eq 0 ]; thenの中で、sql文が失敗した場合【スリープ30秒→3回までリトライ(3回目も失敗したらexit)】と言った処理を追加するにはどのような方法があるか教えて頂けますか?
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/07/09 02:06
2020/07/09 02:21
2020/07/09 03:00