နာရီဝက်အတွင်း ဝဘ်ဝန်ဆောင်မှုများကို စောင့်ကြည့်ရန်အတွက် Bot − ကြေးနန်း + bash + cron

နာရီဝက်အတွင်း ဝဘ်ဝန်ဆောင်မှုများကို စောင့်ကြည့်ရန်အတွက် Bot − ကြေးနန်း + bash + cron

Иногда нужно быстро сделать мониторинг для нового сервиса, а готовой инфраструктуры/экспертизы под рукой нет. В этом гайде мы за полчаса реализуем инструмент для мониторинга любых веб-сервисов, используя только встроенные средства ubuntu: bash, cron и curl. Для доставки оповещений будем использовать telegram.

“ကိတ်မုန့်ပေါ်က ချယ်ရီ” သည် သုံးစွဲသူများ၏ စိတ်ပိုင်းဆိုင်ရာ ပါဝင်ပတ်သက်မှု ဖြစ်လာမည်ဖြစ်သည်။ လူတွေကို စမ်းသပ်ပြီး - အဲဒါက အလုပ်လုပ်တယ်။

ကျွန်ုပ်တို့သည် တယ်လီဆေးဝါးဝန်ဆောင်မှုမှ Doctor Nearby တွင် အသုံးပြုသူများ၏စိတ်ဖိစီးမှုအဆင့်ကို ဆုံးဖြတ်ရန် chatbot တစ်ခုကို ဖန်တီးသောအခါတွင် စောင့်ကြည့်ရန် လိုအပ်ပါသည်။ နာရီအနည်းငယ်အကြာတွင်၊ ကောင်းမွန်စွာအလုပ်လုပ်ရုံသာမက ၎င်း၏မက်ဆေ့ချ်များဖြင့်လည်း အပြုသဘောဆောင်သော ပရောဂျက်အသေးစားတစ်ခုကို ဖန်တီးခဲ့သည်။

ပထမဦးစွာ၊ scripts များပါသော repository ကိုရယူကြပါစို့။

git clone https://github.com/rshekhovtsov/msms.git

msms ဖိုဒါသို့သွား၍ ၎င်းတွင်အလုပ်လုပ်ပါ။

တယ်လီဂရမ်ကို ပိတ်ဆို့ထားပါက ပရောက်စီကို အသုံးပြုပါ။ အရိုးရှင်းဆုံးနှင့် ယုံကြည်ရဆုံးသော ရွေးချယ်မှုမှာ လည်စွပ်များဖြစ်သည်။

sudo apt install tor
sudo apt install torsocks

ဥပမာအနေဖြင့်၊ google.com စတင်စာမျက်နှာကို အဆင့်သုံးဆင့်ဖြင့် စောင့်ကြည့်သတ်မှတ်ကြပါစို့။

အဆင့် 1. တယ်လီဂရမ်တွင် ဘော့တ်တစ်ခုကို ဖန်တီးပြီး အသုံးပြုသူ အိုင်ဒီကို ရယူပါ။

  • တယ်လီဂရမ်ရှိ အဆက်အသွယ်များအတွက် ရှာဖွေရေးဘားတွင် ကျွန်ုပ်တို့ရှာဖွေသည်။ @botfather:

    နာရီဝက်အတွင်း ဝဘ်ဝန်ဆောင်မှုများကို စောင့်ကြည့်ရန်အတွက် Bot − ကြေးနန်း + bash + cron

  • ကျွန်ုပ်တို့သည် ၎င်းကို စတင်ရန် ခလုတ်ဖြင့် စတင်ပြီး၊ /newbot အမိန့်ကို ထည့်သွင်းပြီး မေးခွန်းများကို ဖြေပါ။ အမည်သည် အသုံးပြုသူများအား ပြသမည့် bot ၏အမည်ဖြစ်သည်ကို မှတ်သားထားရန်လိုပြီး အသုံးပြုသူအမည်သည် ထူးခြားပြီး “bot” ဖြင့်အဆုံးသတ်ရမည်-

    နာရီဝက်အတွင်း ဝဘ်ဝန်ဆောင်မှုများကို စောင့်ကြည့်ရန်အတွက် Bot − ကြေးနန်း + bash + cron

    အခြားအရာများထဲမှ၊ bot သည် msms ဖိုင်တွဲရှိ telegram-api-key.txt ဖိုင်သို့ ကူးယူသိမ်းဆည်းရမည်ဖြစ်ပြီး HTTP API အတွက် လျှို့ဝှက်တိုကင်တစ်ခုကို ထုတ်ပေးမည်ဖြစ်သည်။

  • ကျွန်ုပ်တို့သည် ကျွန်ုပ်တို့၏ bot ၏အမည်ကို ကြေးနန်းရှာဖွေမှုဘားတွင် ရိုက်ထည့်ပြီး စတင်လိုက်ပါ။
  • ပြီးပြည့်စုံသောထိတွေ့မှုအနေဖြင့်၊ စောင့်ကြည့်သတိပေးချက်လက်ခံသူများစာရင်းသို့ ကျွန်ုပ်တို့ကိုယ်တိုင် ထည့်လိုက်ကြပါစို့။
    sudo chmod +x ./recipients-setup.sh
    torsocks ./recipients-setup.sh

    Script သည် bot သို့ မကြာသေးမီကခေါ်ဆိုမှုများစာရင်းကို ပြသမည်ဖြစ်ပြီး၊ တယ်လီဂရမ်တွင် ကျွန်ုပ်တို့၏ ID နှင့် အမည်ပါသော စာကြောင်းတစ်ကြောင်းရှိရပါမည်။ ကျွန်ုပ်တို့သည် ဤအိုင်ဒီကိုယူပြီး ဖိုင်ဝန်ဆောင်မှုများ/google-recipients.txt တွင် သိမ်းဆည်းပါ။ ဖိုင်ဖော်မတ်- စာကြောင်းတစ်ခုစီသည် ID တစ်ခုစီဖြစ်သည်။ ဥပမာ-

    123456789
    987654321

လက်ခံသူအသစ်ကိုထည့်ရန်၊ တယ်လီဂရမ်တွင် bot ကိုစတင်ရန်၊ လက်ခံသူ-setup.sh ကိုဖွင့်ပြီး id ကို ဖိုင်သို့ထည့်ခိုင်းရန် လိုအပ်သည်။

အဆင့် 2။ စောင့်ကြည့်မှုကို သတ်မှတ်ပါ။

ဝန်ဆောင်မှုဖိုင်တွဲတွင် ini ဖိုင်တစ်ခုကို ဖန်တီးခြင်းဖြင့် ဝန်ဆောင်မှုကို ဖော်ပြသည်။ သင်သည် ကန့်သတ်ချက်ငါးခု သတ်မှတ်ရန် လိုအပ်သည်-

  1. MSMS_SERVICE_NAME: ဝန်ဆောင်မှုအမည် - သတိပေးချက်များနှင့် စောင့်ကြည့်ရေးမှတ်တမ်းတွင် အသုံးပြုပါမည်။
  2. MSMS_SERVICE_ENDPOINT: curl နှင့် ဆက်သွယ်မည့် ဝန်ဆောင်မှု၏ အဆုံးမှတ်။
  3. MSMS_CURL_PARAMS: အပိုဆောင်း curl ရွေးစရာများ၊ အောက်ဖော်ပြပါ ဥပမာကို ကြည့်ပါ။
  4. MSMS_EXPECTED: ဝန်ဆောင်မှုမှ မျှော်လင့်ထားသော တုံ့ပြန်မှု။ အဖြေတိုလျှင်သုံးပါ။
  5. MSMS_EXPECTED_FILEမျှော်လင့်ထားသောဝန်ဆောင်မှုတုံ့ပြန်မှုနှင့်အတူ ဖိုင်အမည်။ သတ်မှတ်ထားပါက၊ MSMS_EXPECTED ကို ထပ်ရေးပါ။
  6. MSMS_RECIPIENTS: အကြောင်းကြားချက် လက်ခံရရှိသူများစာရင်းနှင့်အတူ ဖိုင်။

google.com သို့ တောင်းဆိုမှုတစ်ခုသည် ပုံသေ html ကို ပြန်လည်ညွှန်းခြင်းဖြင့် ပြန်ပေးသည်၊ ၎င်းကို မျှော်လင့်ထားသော ဆာဗာတုံ့ပြန်မှုအဖြစ် ကျွန်ုပ်တို့ အသုံးပြုပါမည်-

curl google.com > services/google-response.html

services/google.ini ဖိုင်ကို ဖန်တီးကြပါစို့။

MSMS_SERVICE_NAME='google front page'

# service endpoint
MSMS_SERVICE_ENDPOINT='google.com'

# curl parameters
MSMS_CURL_PARAMS='-s --connect-timeout 3 -m 7'

# expected service response
MSMS_EXPECTED_FILE='google-response.html'

# recipients list file
MSMS_RECIPIENTS='google-recipients.txt'

В MSMS_CURL_PARAMS curl လုပ်နိုင်သည့်အရာအားလုံးကို သင်သတ်မှတ်နိုင်သည်၊၊

  1. ကွန်ဆိုးလ်နှင့် မှတ်တမ်းကို ရှုပ်ယှက်ခတ်ခြင်းမှ ရှောင်ရှားရန် curl မက်ဆေ့ချ်များကို ပိတ်ပါ- -s
  2. ဝန်ဆောင်မှုကိုစစ်ဆေးပြီး (စက္ကန့်ပိုင်းအတွင်း) ချိတ်ဆက်မှုအချိန်ကုန်ခြင်းကို သတ်မှတ်ပါ- --connect-timeout 3
  3. တုံ့ပြန်မှု အချိန်ကုန်ဆုံးရန် သတ်မှတ်ပါ- -m 7
  4. SSL အတွက် လက်မှတ်အတည်ပြုခြင်းကို ပိတ်ပါ (ဥပမာ၊ သင်သည် ကိုယ်တိုင်လက်မှတ်ထိုးထားသော လက်မှတ်ကို အသုံးပြုနေပါက) --insecure
  5. http တောင်းဆိုမှုအမျိုးအစားကို သတ်မှတ်ပါ- -X POST
  6. ခေါင်းစဉ်များကို သတ်မှတ်ပါ- -H "Content-Type: application/json"
  7. တောင်းဆိုချက်ကိုယ်ထည်ကို စာတန်း သို့မဟုတ် ဖိုင်အဖြစ် သတ်မှတ်ပါ။ ဖိုင်တစ်ခုအတွက် ဥပမာ- -d @request.json

ကျွန်ုပ်တို့သည် အကြောင်းကြားချက်များကို ပိတ်ထားပြီး အချိန်ကုန်ချိန်ကို 3 စက္ကန့်သတ်မှတ်ထားသည်။ ချိတ်ဆက်ရန်နှင့် 7 စက္ကန့်။ ဝန်ဆောင်မှု တုံ့ပြန်မှုကို လက်ခံရရှိရန်။

သတိ: နမူနာတွင်ရှိသကဲ့သို့ ကိုးကားချက်များတွင် ပါရာမီတာတန်ဖိုးများကို သတ်မှတ်ပါ။ ကံမကောင်းစွာပဲ၊ bash သည် ဤသဘောအရ အတော်လေး နုနယ်ပြီး မှားယွင်းသော ကိုးကားချက် အမှတ်အသားပါသော မတော်တဆ လိပ်ပြာတစ်ကောင်သည် ခွဲခြားရခက်သော အမှားများဖြင့် စကြဝဠာကို သေဆုံးစေနိုင်သည်။

စောင့်ကြည့်ရေးတွေ ထူထောင်ထားပါတယ်။ အားလုံးအဆင်ပြေကြောင်း စစ်ဆေးကြည့်ရအောင်။

sudo chmod +x ./monitoring.sh
torsocks ./monitoring.sh

ဇာတ်ညွှန်းသည် အောက်ပါကဲ့သို့သော မက်ဆေ့ချ်ကို ပြသသင့်သည်-

2020-01-10 12:14:31
health-check "google front page": OK

အဆင့် 3။ အချိန်ဇယားတစ်ခု သတ်မှတ်ခြင်း။

cron ဖြင့် စောင့်ကြည့်မှုအချိန်ဇယားကို သတ်မှတ်ကြပါစို့။

sudo crontab -e

မိနစ်တိုင်း google.com ကိုစစ်ဆေးရန် လိုင်းတစ်ခုထည့်လိုက်ရအောင်။

*/1 * * * * torsocks <ПУТЬ К ПАПКЕ РЕПОЗИТОРИЯ>/monitoring.sh >> <ПУТЬ К ПАПКЕ РЕПОЗИТОРИЯ>/monitoring.log 2>&1

စောင့်ကြည့်စစ်ဆေးခြင်း၏ လုပ်ဆောင်နိုင်စွမ်းကို အတည်ပြုပြီး နံနက် 11.00:XNUMX တွင် နေ့တိုင်း သတိပေးချက်တစ်ခု ထပ်ထည့်ပါမည်။ ၎င်းကိုလုပ်ဆောင်ရန်၊ ကျွန်ုပ်တို့သည် Script သို့ နေ့စဥ် parameter ကိုဖြတ်သန်းပါမည်-

0 11 * * * torsocks <ПУТЬ К ПАПКЕ РЕПОЗИТОРИЯ>/monitoring.sh DAILY >> <ПУТЬ К ПАПКЕ РЕПОЗИТОРИЯ>/monitoring.log 2>&1

2>&1 - အမှားများကို ပင်မအထွက်စီးကြောင်းသို့ ပြန်ညွှန်းပေးသည့် စံနည်းပညာတစ်ခု။ ရလဒ်အနေဖြင့် ၎င်းတို့သည် စောင့်ကြည့်ရေးမှတ်တမ်းတွင် အကျုံးဝင်မည်ဖြစ်သည်။

အပြောင်းအလဲများကို သိမ်းဆည်းပြီး command ဖြင့် ကောက်ယူကြပါစို့။

 sudo service cron reload

cron ဆက်တင်အကြောင်း သင်ပိုမိုဖတ်ရှုနိုင်သည် ဥပမာ၊ ဒီမှာ.

ထို့ကြောင့်၊ မိနစ်တိုင်းတွင် curl မှတစ်ဆင့် google.com သို့ ဆက်သွယ်မည့် စောင့်ကြည့်ရေး script တစ်ခုကို စတင်ပါမည်။ လက်ခံရရှိသည့် တုံ့ပြန်မှုသည် မျှော်လင့်ထားသည့်အရာနှင့် ကွဲပြားပါက၊ script သည် လက်ခံသူစာရင်းသို့ ကြေးနန်းအကြောင်းကြားစာ ပေးပို့မည်ဖြစ်သည်။ စာရင်းစစ်မှတ်တမ်းကို ဖိုင် monitoring.log တွင် သိမ်းဆည်းထားသည်။

အကယ်၍ ကျွန်ုပ်တို့သည် အခြားဝန်ဆောင်မှုတစ်ခုကို ထည့်ရန်လိုအပ်ပါက၊ ၎င်းအတွက် ini ဖိုင်အသစ်တစ်ခုကို ကျွန်ုပ်တို့သည် ဝန်ဆောင်မှုဖိုင်တွဲတွင် ဖန်တီးပြီး လိုအပ်ပါက သီးခြားလက်ခံသူစာရင်းတစ်ခုကို ဖန်တီးပါ။ အခြားအရာအားလုံးသည် အလိုအလျောက် လုပ်ဆောင်မည်ဖြစ်သည်။

စစ်ဆေးထားသော ဝန်ဆောင်မှုသည် မရရှိနိုင်ပါက မိနစ်တိုင်း သတိပေးချက် ပေးပို့ပါမည်။ ဝန်ဆောင်မှုကို အမြန်ပြန်မရနိုင်ပါက၊ bot ၏ တယ်လီဂရမ်ဂုဏ်သတ္တိများရှိ အကြောင်းကြားချက်များကို ယာယီပိတ်နိုင်သည်။

ယခု နောက်ထပ် အင်္ဂါရပ်များနှင့် scripts များကို အကောင်အထည်ဖော်ခြင်းအား အနီးကပ် လေ့လာကြည့်ကြပါစို့။

မက်ဆေ့ခ်ျပုံစံများနှင့် စိတ်ပိုင်းဆိုင်ရာ ထိတွေ့ဆက်ဆံမှု

bot နှင့် ဆက်သွယ်မှု ပိုမိုသွက်လက်စေရန်၊ ၎င်းကို Manechka ဟု အမည်ပေးကာ သင့်လျော်သော ကိုယ်ပွားရုပ်ပုံတစ်ပုံကို ထည့်သွင်းကာ မက်ဆေ့ချ်များ ဖန်တီးရန် ပရော်ဖက်ရှင်နယ် PR ကျွမ်းကျင်သူများကို ငှားရမ်းခဲ့သည်။ ကျွန်ုပ်တို့၏အတွေ့အကြုံကို သင်သုံးနိုင်သည် သို့မဟုတ် သင့်အရသာအတွက် ပြောင်းလဲနိုင်သည်။

ဤကဲ့သို့သော:

နာရီဝက်အတွင်း ဝဘ်ဝန်ဆောင်မှုများကို စောင့်ကြည့်ရန်အတွက် Bot − ကြေးနန်း + bash + cron
သို့မဟုတ် ဤကဲ့သို့ပင်

နာရီဝက်အတွင်း ဝဘ်ဝန်ဆောင်မှုများကို စောင့်ကြည့်ရန်အတွက် Bot − ကြေးနန်း + bash + cron
ဘာလို့မဖြစ်ရမလဲ?

ဘော့တ်အမည်နှင့် ကိုယ်ပွားကို တစ်ဆင့်သတ်မှတ်ထားသည်။ @botfather.
မက်ဆေ့ချ် နမူနာပုံစံများသည် ဖိုင်တွဲထဲတွင် ရှိနေသည်။ တင်းပလိတ်များ:

  • curl-fail.txt: curl သည် သုညမဟုတ်သော အမှားကုဒ်ကို ပြန်ပေးသောအခါ မက်ဆေ့ချ်ပို့သည်။ များသောအားဖြင့် ၎င်းသည် ဝန်ဆောင်မှုသို့ရောက်ရှိရန် မဖြစ်နိုင်ကြောင်း ပြောဆိုလေ့ရှိသည်။
  • daily.txt: ဝန်ဆောင်မှု စောင့်ကြည့်စစ်ဆေးခြင်း အလုပ်လုပ်ကြောင်း အတည်ပြုသည့် နေ့စဉ်မက်ဆေ့ဂျ်။
  • service-fail.txt: ဝန်ဆောင်မှုတုံ့ပြန်မှုသည် မျှော်လင့်ထားသည့်အရာနှင့် ကွဲပြားသည့်အခါ ပေးပို့သည့် မက်ဆေ့ချ်တစ်ခု။

နမူနာအဖြစ် Built-in မက်ဆေ့ခ်ျပုံစံများကို အသုံးပြု၍ စိတ်ကြိုက်ပြင်ဆင်မှုရွေးချယ်မှုများကို ကြည့်ကြပါစို့။
နမူနာပုံစံများသည် အီမိုဂျီကို အသုံးပြုသည်။ ကံမကောင်းစွာဖြင့်၊ habr သည် ၎င်းတို့ကို မပြပါ။
အီမိုဂျီကို ရွေးရန်၊ ရှာဖွေမှုတွင် အသုံးပြုရန် အဆင်ပြေသည်။ emojipedia.org:

နာရီဝက်အတွင်း ဝဘ်ဝန်ဆောင်မှုများကို စောင့်ကြည့်ရန်အတွက် Bot − ကြေးနန်း + bash + cron

သင်သည် သင့်လျော်သော သင်္ကေတကို နမူနာပုံစံ စာသားထဲသို့ ကူးယူပြီး (၎င်းသည် ပုံမှန် ယူနီကုဒ်ဖြစ်သည်)။

  1. curl-fail.txt-
    Котёнок,  помоги мне... 
    Не могу достучаться до сервиса "$MSMS_SERVICE_NAME" 
    `CURL EXIT CODE: $EXIT_CODE`

    ကျွန်ုပ်တို့သတ်မှတ်ထားသော ဝန်ဆောင်မှုအမည်ကို အသုံးပြုခဲ့သည် (ပြောင်းလဲနိုင်သည်။ MSMS_SERVICE_NAME) နှင့် curl exit code ပါရှိသော internal script variable (EXIT_CODE) Markup သုံးပြီး မက်ဆေ့ချ်ကိုလည်း ဖော်မတ်လုပ်ထားပါတယ်။ ကြေးနန်းအမှတ်အသား: "`" စာလုံးများသည် ပုံသေ အကျယ် စာသားကို ဝန်းရံထားသည်။ ကိုးကားချက်များနှင့် apostrophes များသည် bash သင်္ကေတများဖြစ်သောကြောင့် ၎င်းတို့ကို "" ဖြင့် လွတ်ကင်းပါသည်။ ပြောင်းလဲနိုင်သောအမည်များသည် "$" သင်္ကေတဖြင့် ရှေ့တွင်ရှိသည်။

    ရလဒ်:

    နာရီဝက်အတွင်း ဝဘ်ဝန်ဆောင်မှုများကို စောင့်ကြည့်ရန်အတွက် Bot − ကြေးနန်း + bash + cron

  2. service-fail.txt-
    Котёнок, помоги мне... 
    Сервис "$MSMS_SERVICE_NAME" меня расстроил
    Он работает неправильно, вот что он мне отвечает:
    `$RESPONSE`

    ရလဒ်:

    နာရီဝက်အတွင်း ဝဘ်ဝန်ဆောင်မှုများကို စောင့်ကြည့်ရန်အတွက် Bot − ကြေးနန်း + bash + cron

    ဤနေရာတွင် ကျွန်ုပ်တို့သည် အခြားသော script variable ကို အသုံးပြုသည်- RESPONSE. ၎င်းတွင်ဝန်ဆောင်မှုတုံ့ပြန်မှုပါရှိသည်။

  3. daily.txt-
    Малыш, привет!
    У меня всё хорошо, cлежу за сервисом:
    "$MSMS_SERVICE_NAME" каждую минутку...
    А как у тебя дела?
    

    ရလဒ်:

    နာရီဝက်အတွင်း ဝဘ်ဝန်ဆောင်မှုများကို စောင့်ကြည့်ရန်အတွက် Bot − ကြေးနန်း + bash + cron

Script များကို အကောင်အထည်ဖော်ခြင်းသို့ ဆက်သွားကြပါစို့။

စောင့်ကြည့်ရေးပဲဗျ။

monitoring.sh ရိုးရှင်းသော အလိုအလျောက်ရှာဖွေတွေ့ရှိမှုတစ်ခုလုပ်ဆောင်သည် - ၎င်းသည် ဝန်ဆောင်မှုဖိုင်တွဲမှ ini ဖိုင်အားလုံးကို ယူဆောင်ပြီး တစ်ခုစီအတွက် သတိပေးချက်များကို စစ်ဆေးခြင်းနှင့် ပေးပို့ခြင်းအတွက် ယုတ္တိဗေဒဖြင့် အဓိက script ကို လုပ်ဆောင်သည်-

#!/bin/bash
cd $(dirname "$0")/services

for service_ini  in $(ls *.ini); do
    bash ../msms.sh "$1" "$service_ini"
done

စောင့်ကြည့်မှုအခြေအနေနှင့်ပတ်သက်သည့် နေ့စဉ်မက်ဆေ့ဂျ်ကို ထုတ်ပေးရန်၊ သင်သည် နေ့စဉ် ကန့်သတ်ဘောင်ကို ဇာတ်ညွှန်းသို့ ပေးပို့နိုင်သည်။

ဇာတ်ညွှန်းစတင်သောအခါ၊ လက်ရှိဖိုင်တွဲသည် ဝန်ဆောင်မှုများသို့ ပြောင်းလဲသွားကြောင်း ကျေးဇူးပြု၍ သတိပြုပါ။ ၎င်းသည် သင့်အား ini ဖိုင်များတွင် ဝန်ဆောင်မှုများနှင့် ပတ်သက်သော ဖိုင်လမ်းကြောင်းများကို သတ်မှတ်ခွင့်ပြုသည်။

စစ်ဆေးခြင်းနှင့် အကြောင်းကြားချက်များကို ပေးပို့ခြင်းအတွက် Script

msms.sh ဝန်ဆောင်မှုကိုစစ်ဆေးခြင်းနှင့် သတိပေးချက်များပေးပို့ခြင်းအတွက် အဓိကယုတ္တိပါရှိသည်။

ကြေးနန်းဖြင့် လုပ်ဆောင်ခြင်း-

# telegram endpoint
TG_API_URL="https://api.telegram.org/bot$(cat ../telegram-api-key.txt)/sendMessage"

#################################################################
# send message to telegram
# parameter: message text
#################################################################
function send_message {
    for chat_id  in $(cat ../$MSMS_RECIPIENTS); do
	curl -s -X POST --connect-timeout 10 $TG_API_URL -d chat_id=$chat_id -d parse_mode="Markdown" -d text="$1"
	echo
    done
}

ဖိုင်တွင်သိမ်းဆည်းထားသော လျှို့ဝှက်သော့ကို အသုံးပြု၍ ကြေးနန်း REST API ကို ဝင်ရောက်ကြည့်ရှုရန် URL တစ်ခုကို ထုတ်ပေးပါသည်။

send_message လုပ်ဆောင်ချက်သည် ဤ REST API သို့ စာတိုပေးပို့ရန် curl ကို အသုံးပြုပြီး ini တွင် ကျွန်ုပ်တို့သတ်မှတ်ထားသော ဖိုင်မှ လက်ခံသူ ids များကို ရယူပါသည်။ ကျွန်ုပ်တို့ပေးပို့သည့်ဒေတာတွင် ကျွန်ုပ်တို့သည် မက်ဆေ့ချ်အမှတ်အသားကို အသုံးပြုကြောင်း ညွှန်ပြသည်- parse_mode="Markdown".

လက်ရှိ ရက်စွဲနှင့် အချိန်ကို ပြသပြီး ini ဖိုင်ကို တင်ကြပါစို့။

echo $(date '+%Y-%m-%d %H:%M:%S')

# load variables from .ini file:
. $2

မှော်ကြိုးတစ်ချောင်း . $2 ပုံမှန် script တစ်ခုအနေဖြင့် ဒုတိယ ကန့်သတ်ဘောင်သို့ ဖြတ်သွားသော ini ဖိုင်ကို လုပ်ဆောင်ပြီး ၎င်းတွင် သတ်မှတ်ထားသည့် တန်ဖိုးများကို ပတ်ဝန်းကျင် ကိန်းရှင်များအတွင်းသို့ ထည့်သွင်းသည်။

ကန့်သတ်ချက်ကို သတ်မှတ်ထားပါက ဖိုင်မှ မျှော်လင့်ထားသည့် တုံ့ပြန်မှုကို တင်ပါ။ MSMS_EXPECTED_FILE:

if [ -n "$MSMS_EXPECTED_FILE" ]; then
 MSMS_EXPECTED="$(cat "$MSMS_EXPECTED_FILE")"
fi

ကျွန်ုပ်တို့သည် ဝန်ဆောင်မှုကို စစ်ဆေးပြီး လိုအပ်ပါက သတိပေးချက်များ ပေးပို့ပါမည်။

RESPONSE="$(eval curl $MSMS_CURL_PARAMS "$MSMS_SERVICE_ENDPOINT")"
EXIT_CODE=$?
if [[ $EXIT_CODE != 0 ]]; then
    echo health-check "$MSMS_SERVICE_NAME" FAILED: CURL EXIT WITH $EXIT_CODE
    MESSAGE="$(cat ../templates/curl-fail.txt)"
    MESSAGE=$(eval echo $MESSAGE)
    send_message "$MESSAGE"
elif [[ "$RESPONSE" != "$MSMS_EXPECTED" ]]; then
    echo health-check "$MSMS_SERVICE_NAME" FAILED: "$RESPONSE"
    MESSAGE="$(cat ../templates/service-fail.txt)"
    MESSAGE=$(eval echo $MESSAGE)
    send_message "$MESSAGE"
else
    echo health-check "$MSMS_SERVICE_NAME": OK
fi

ပထမဦးစွာကျွန်ုပ်တို့သည် variable ကိုသတ်မှတ်သည်။ RESPONSE ဤဝန်ဆောင်မှုအတွက် curl command ကိုလုပ်ဆောင်ခြင်း၏ရလဒ်။

စကားရပ် EXIT_CODE=$? နောက်ဆုံး command ၏ရလဒ်ကို variable တစ်ခုထဲသို့ထည့်သည်၊ i.e. curl သတိပေးချက်တစ်ခု ပေးပို့ရန်လိုအပ်ပါက၊ ပုံစံပလိတ်ကို သက်ဆိုင်ရာဖိုင်မှ ဖတ်ပြီး အသုံးပြုသည့် လက်ခံသူများထံ ပေးပို့သည်။ send_message.

နောက်ဆုံးဘလောက်သည် နေ့စဥ်ပါရာမီတာကို လုပ်ဆောင်သည်-

if test "$1" = "DAILY"; then
    echo health-check "$MSMS_SERVICE_NAME" DAILY
    MESSAGE="$(cat ../templates/daily.txt)"
    MESSAGE=$(eval echo $MESSAGE)
    send_message "$MESSAGE"
fi

၎င်းသည် စောင့်ကြည့်စစ်ဆေးခြင်း၏ လုပ်ဆောင်နိုင်စွမ်းကို အတည်ပြုကြောင်း စာတိုတစ်စောင်ပေးပို့သည်။

အသုံးပြုသူ ID စာရင်းကို ရယူခြင်း။

လက်ခံသူများ-setup.sh bot သို့ နောက်ဆုံးရ မက်ဆေ့ချ်များကို ရယူရန် တယ်လီဂရမ် API ကို ခေါ်သည်-

curl -s https://api.telegram.org/bot$(cat telegram-api-key.txt)/getUpdates 
| python recipients-setup.py

စာရင်းကို လှပစွာပြသရန် ၎င်းသည် python magic ကိုအသုံးပြုသည်။ ၎င်းသည်မလိုအပ်ပါ၊ သင်အလိုရှိသော id ကို json မှထုတ်သည်

torsocks curl -s https://api.telegram.org/bot$(cat telegram-api-key.txt)/getUpdates

ကောက်ချက်

ထို့ကြောင့်၊ သင်သည် အဆင်သင့်လုပ်ထားသော scripts များနှင့် message templates များကို အသုံးပြုနိုင်ပြီး၊ စောင့်ကြည့်ထားသော ဝန်ဆောင်မှုများနှင့် သတိပေးချက်များအတွက်သာ စာရင်းများကို သတ်မှတ်နိုင်သည်။ သင်သည် bot အတွက် "ကိုယ်ရည်ကိုယ်သွေး" အသစ်တစ်ခုကို ဖန်တီးနိုင်သည်။ သို့မဟုတ် အဆိုပြုထားသည့်အရာကို အခြေခံ၍ သင့်ကိုယ်ပိုင်ဆုံးဖြတ်ချက်ကို ချနိုင်သည်။

နောက်ထပ် ဖွံ့ဖြိုးတိုးတက်မှုအတွက် ရွေးချယ်စရာများသည် bot ကိုယ်တိုင်တွင် စောင့်ကြည့်ခြင်းကို ပြင်ဆင်ခြင်းနှင့် စီမံခန့်ခွဲခြင်းကို အကြံပြုသော်လည်း ဤနေရာတွင် python မပါဘဲ သင်လုပ်ဆောင်၍မရပါ။ အကယ်၍ တစ်စုံတစ်ယောက်သည် ကျွန်ုပ်၏ရှေ့မှောက်တွင် ၎င်းကိုရရှိပါက၊ ဆွဲတင်ရန်တောင်းဆိုချက်ကို တင်သွင်းရမည့်နေရာကို သင်သိပါသလား။ :)

source: www.habr.com

DDoS ကာကွယ်ရေး၊ VPS VDS ဆာဗာများပါသည့် ဆိုက်များအတွက် ယုံကြည်စိတ်ချရသော hosting ကို ဝယ်ယူပါ။ 🔥 DDoS ကာကွယ်မှု၊ VPS VDS ဆာဗာများပါရှိသော ယုံကြည်စိတ်ချရသော ဝဘ်ဆိုက် hosting ကို ဝယ်ယူပါ | ProHoster