必要なファイルをすべてダウンロードした場合のシェルスクリプトのチェックイン方法

必要なファイルをすべてダウンロードした場合のシェルスクリプトのチェックイン方法

SFTP経由でリモートサーバーからファイルをダウンロードしました。今、私のすべてのファイル(与えられたnodeid)がダウンロードされたことを確認したいと思います。ダウンロードされていない場合は、sendmailを介して警告メッセージが表示されます。

ファイル形式:

"$today_date"_MPS_Cust_dump_"$nodeid".list.Z

today_date=date +%Y%m%d
declare -a nodeid=("302" "303" "304" "305" "311" "312" "313" "314" "315" "316" "317" "318" 
  "410" "411" "412" "415" "416" "418" "431" "432" "433" "434" "435" "436" "407" "408" "409" 
  "401" "402" "420" "421" "422" "425" "426" "427" "403" "404" "405" "406"
)

ベストアンサー1

これを使用してください:

today_date="$(date +%Y%m%d)" # use $(...) to assign the output of a command to a variable
declare -a nodeid=(...)

for id in "${nodeid[@]}"; do
  [ -e "${today_date}_MPS_Cust_dump_${id}.list.Z" ] || echo "$id is not downloaded"
done | mail -E -s "Subject" [email protected]

  • forループは配列内の各項目を繰り返しますnodeid
    • [ -e "..." ]現在のディレクトリに特定の名前のファイルが存在することを確認します。
    • || echo "..."ファイルが存在しない場合は、メッセージを印刷します。
  • | mail ...すべてが配管され、トピックが定義mail-sれ、-E本文が空で(すべてのファイルが存在する)、最後のパラメータがアドレスの場合、メールは送信されません。

おすすめ記事