рдЖрдзреЗ рдШрдВрдЯреЗ рдореЗрдВ рд╡реЗрдм рд╕реЗрд╡рд╛рдУрдВ рдХреА рдирд┐рдЧрд░рд╛рдиреА рдХреЗ рд▓рд┐рдП рдмреЙрдЯ: рдЯреЗрд▓реАрдЧреНрд░рд╛рдо + рдмреИрд╢ + рдХреНрд░реЛрди



рдХрднреА-рдХрднреА рдЖрдкрдХреЛ рдПрдХ рдирдИ рд╕реЗрд╡рд╛ рдХреЗ рд▓рд┐рдП рдЬрд▓реНрджреА рд╕реЗ рдирд┐рдЧрд░рд╛рдиреА рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рд▓реЗрдХрд┐рди рд╣рд╛рде рдореЗрдВ рддреИрдпрд╛рд░ рдмреБрдирд┐рдпрд╛рджреА рдврд╛рдВрдЪрд╛ / рд╡рд┐рд╢реЗрд╖рдЬреНрдЮрддрд╛ рдирд╣реАрдВ рд╣реИред рдЗрд╕ рдЧрд╛рдЗрдб рдореЗрдВ, рдЖрдзреЗ рдШрдВрдЯреЗ рдореЗрдВ рд╣рдо рдХрд┐рд╕реА рднреА рд╡реЗрдм рд╕реЗрд╡рд╛рдУрдВ рдХреА рдирд┐рдЧрд░рд╛рдиреА рдХреЗ рд▓рд┐рдП рдПрдХ рдЙрдкрдХрд░рдг рд▓рд╛рдЧреВ рдХрд░реЗрдВрдЧреЗ, рдЬрд┐рд╕рдореЗрдВ рдХреЗрд╡рд▓ рдмрд┐рд▓реНрдЯ-рдЗрди рдЙрдмрдВрдЯреБ рдЙрдкрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛: рдмреИрд╢, рдХреНрд░реЛрди рдФрд░ рдХрд░реНрд▓ред рд╣рдо рдЕрд▓рд░реНрдЯ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдЯреЗрд▓реАрдЧреНрд░рд╛рдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗред

"рдХреЗрдХ рдкрд░ рдЪреЗрд░реА" рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреА рднрд╛рд╡рдирд╛рддреНрдордХ рднрд╛рдЧреАрджрд╛рд░реА рд╣реЛрдЧреАред рдпрд╣ рд▓реЛрдЧреЛрдВ рдкрд░ рдЬрд╛рдБрдЪ рдХреА рдЬрд╛рддреА рд╣реИ - рдпрд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред

рдЬрдм рд╣рдордиреЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рддрдирд╛рд╡ рдХреЗ рд╕реНрддрд░ рдХреЛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдбреЙрдХреНрдЯрд░ рдирд┐рдпрд░ рдЯреЗрд▓реАрдореЗрдбрд┐рд╕рд┐рди рд╕реЗрд╡рд╛ рдореЗрдВ рдПрдХ рдЪреИрдЯрдмреЙрдЯ рдмрдирд╛рдпрд╛, рддреЛ рд╣рдореЗрдВ рдирд┐рдЧрд░рд╛рдиреА рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдереАред рдХреБрдЫ рдШрдВрдЯреЛрдВ рдореЗрдВ, рдПрдХ рдорд┐рдиреА-рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдмрдирд╛рдпрд╛ рдЧрдпрд╛, рдЬреЛ рди рдХреЗрд╡рд▓ рд╢рд╛рдирджрд╛рд░ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдмрд▓реНрдХрд┐ рд╕рдХрд╛рд░рд╛рддреНрдордХ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рднреА рдЬреЛрдбрд╝рддрд╛ рд╣реИред

рдЖрд░рдВрдн рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рд╕рд╛рде рдПрдХ рднрдВрдбрд╛рд░ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ:

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

Msms рдлрд╝реЛрд▓реНрдбрд░ рдкрд░ рдЬрд╛рдПрдВ рдФрд░ рдлрд┐рд░ рдЙрд╕рдореЗрдВ рдХрд╛рдо рдХрд░реЗрдВред

рдпрджрд┐ рдЯреЗрд▓реАрдЧреНрд░рд╛рдо рдЕрд╡рд░реБрджреНрдз рд╣реИ, рддреЛ рдПрдХ рдкреНрд░реЙрдХреНрд╕реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред рд╕рдмрд╕реЗ рдЖрд╕рд╛рди рдФрд░ рд╕рдмрд╕реЗ рд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рд╡рд┐рдХрд▓реНрдк рдзрдбрд╝ рд╣реИ:

 sudo apt install tor sudo apt install torsocks 

рдПрдХ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд░реВрдк рдореЗрдВ, рд╣рдо рддреАрди рдЪрд░рдгреЛрдВ рдореЗрдВ google.com рдкреНрд░рд╛рд░рдВрдн рдкреГрд╖реНрда рдореЙрдирд┐рдЯрд░рд┐рдВрдЧ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░реЗрдВрдЧреЗред

STEP 1. рдЯреЗрд▓реАрдЧреНрд░рд╛рдо рдореЗрдВ рдмреЙрдЯ рдмрдирд╛рдПрдВ рдФрд░ рдпреВрдЬрд░ рдЖрдИрдбреА рд▓реЗрдВ


  • рддрд╛рд░ рдореЗрдВ рд╕рдВрдкрд░реНрдХ рдЦреЛрдЬ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдореЗрдВ, @botfather рджреЗрдЦреЗрдВ :


  • рд╣рдо рдЗрд╕реЗ рд╕реНрдЯрд╛рд░реНрдЯ рдмрдЯрди рд╕реЗ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ, / newbot рдХрдорд╛рдВрдб рджрд░реНрдЬ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рд╕рд╡рд╛рд▓реЛрдВ рдХреЗ рдЬрд╡рд╛рдм рджреЗрддреЗ рд╣реИрдВред рдЖрдкрдХреЛ рдпрд╣ рдзреНрдпрд╛рди рд░рдЦрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдХрд┐ рдирд╛рдо рдЙрд╕ рдмреЙрдЯ рдХрд╛ рдирд╛рдо рд╣реИ рдЬреЛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рдФрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдирд╛рдо рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╣реИ рдФрд░ "рдмреЙрдЯ" рдореЗрдВ рд╕рдорд╛рдкреНрдд рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП:



    рдЕрдиреНрдп рдмрд╛рддреЛрдВ рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдмреЙрдЯ HTTP рдПрдкреАрдЖрдИ рдХреЗ рд▓рд┐рдП рдПрдХ рдЧреБрдкреНрдд рдЯреЛрдХрди рдЬрд╛рд░реА рдХрд░реЗрдЧрд╛, рдЬрд┐рд╕реЗ рдЖрдкрдХреЛ рдПрдордПрд╕рдПрдордПрд╕ рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рдЯреЗрд▓реАрдЧреНрд░рд╛рдо-рдПрдкреА-рдХреА.рдЯреЗрдХреНрд╕реНрдЯ рдлрд╝рд╛рдЗрд▓ рдХреЛ рдХреЙрдкреА рдФрд░ рд╕рд╣реЗрдЬрдирд╛ рд╣реЛрдЧрд╛ред
  • рд╣рдо рдЯреЗрд▓реАрдЧреНрд░рд╛рдо рд╕рд░реНрдЪ рд▓рд╛рдЗрди рдореЗрдВ рдЕрдкрдиреЗ рдмреЙрдЯ рдХреЗ рдирд╛рдо рд╕реЗ рдЯрд╛рдЗрдк рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рдЗрд╕реЗ рдЪрд▓рд╛рддреЗ рд╣реИрдВред
  • рдПрдХ рдкрд░рд┐рд╖реНрдХрд░рдг рд╕реНрдкрд░реНрд╢ рдХреЗ рд░реВрдк рдореЗрдВ, рдирд┐рдЧрд░рд╛рдиреА рдЪреЗрддрд╛рд╡рдиреА рдкреНрд░рд╛рдкреНрддрдХрд░реНрддрд╛рдУрдВ рдХреА рд╕реВрдЪреА рдореЗрдВ рдЦреБрдж рдХреЛ рдЬреЛрдбрд╝реЗрдВ:

     sudo chmod +x ./recipients-setup.sh torsocks ./recipients-setup.sh 

    рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдмреЙрдЯ рдХреЛ рд╣рд╛рд▓ рдХреА рдХреЙрд▓ рдХреА рдПрдХ рд╕реВрдЪреА рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░реЗрдЧреА, рдЯреЗрд▓реАрдЧреНрд░рд╛рдо рдореЗрдВ рд╣рдорд╛рд░реА рдЖрдИрдбреА рдФрд░ рдирд╛рдо рдХреЗ рд╕рд╛рде рдПрдХ рдкрдВрдХреНрддрд┐ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдПред рд╣рдо рдЗрд╕ рдЖрдИрдбреА рдХреЛ рд▓реЗрддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕реЗ рд╕реЗрд╡рд╛рдУрдВ / google-recipients.txt рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╕рд╣реЗрдЬрддреЗ рд╣реИрдВред рдлрд╝рд╛рдЗрд▓ рдкреНрд░рд╛рд░реВрдк: рдкреНрд░рддреНрдпреЗрдХ рдкрдВрдХреНрддрд┐ рдПрдХ рдЖрдИрдбреА рд╣реИред рдПрдХ рдЙрджрд╛рд╣рд░рдг:

     123456789 987654321 

рдПрдХ рдирдпрд╛ рдкреНрд░рд╛рдкреНрддрдХрд░реНрддрд╛ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдЙрд╕реЗ рдЯреЗрд▓реАрдЧреНрд░рд╛рдо рдореЗрдВ рдмреЙрдЯ рд╢реБрд░реВ рдХрд░рдиреЗ, рдкреНрд░рд╛рдкреНрддрдХрд░реНрддрд╛-setup.sh рдЪрд▓рд╛рдиреЗ рдФрд░ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдЖрдИрдбреА рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╣рдирд╛ рд╣реЛрдЧрд╛ред

STEP 2. рдореЙрдирд┐рдЯрд░рд┐рдВрдЧ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░реЗрдВ


рд╕рд░реНрд╡рд┐рд╕ рдХрд╛ рд╡рд░реНрдгрди рд╕рд░реНрд╡рдЗрдбреАрдЬрд╝ рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рдПрдХ рдЖрдИрдПрдирдЖрдИ-рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рдХрд░ рд╣реЛрддрд╛ рд╣реИред рдкрд╛рдВрдЪ рдорд╛рдкрджрдВрдбреЛрдВ рдХреЛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:

  1. MSMS_SERVICE_NAME : рд╕реЗрд╡рд╛ рдирд╛рдо - рдХрд╛ рдЙрдкрдпреЛрдЧ рдЕрд▓рд░реНрдЯ рдФрд░ рдирд┐рдЧрд░рд╛рдиреА рд▓реЙрдЧ рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
  2. MSMS_SERVICE_ENDPOINT : рд╣рдо рдЬрд┐рд╕ рд╕реЗрд╡рд╛ рд╕реЗ рд╕рдВрдкрд░реНрдХ рдХрд░реЗрдВрдЧреЗ, рдЙрд╕рдХрд╛ рд╕рдорд╛рдкрди рдмрд┐рдВрджреБ рдХрд░реНрд▓ рдкрд░ рд╣реЛрдЧрд╛ред
  3. MSMS_CURL_PARAMS : рдЕрддрд┐рд░рд┐рдХреНрдд рдХрд░реНрд▓ рдкреИрд░рд╛рдореАрдЯрд░, рдиреАрдЪреЗ рдЙрджрд╛рд╣рд░рдг рджреЗрдЦреЗрдВред
  4. MSMS_EXPECTED : рдЕрдкреЗрдХреНрд╖рд┐рдд рд╕реЗрд╡рд╛ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ред рдЙрддреНрддрд░ рдЫреЛрдЯрд╛ рд╣реЛрдиреЗ рдкрд░ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
  5. MSMS_EXPECTED_FILE : рдЕрдкреЗрдХреНрд╖рд┐рдд рд╕реЗрд╡рд╛ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЗ рд╕рд╛рде рдлрд╝рд╛рдЗрд▓ рдирд╛рдоред рдпрджрд┐ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рддреЛ MSMS_EXPECTED рдХреЛ рдЕрдзрд┐рд▓реЗрдЦрд┐рдд рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
  6. MSMS_RECIPIENTS : рдЕрдзрд┐рд╕реВрдЪрдирд╛ рдкреНрд░рд╛рдкреНрддрдХрд░реНрддрд╛рдУрдВ рдХреА рд╕реВрдЪреА рдХреЗ рд╕рд╛рде рдлрд╛рдЗрд▓ рдХрд░реЗрдВред

Google.com рдкрд░ рдЕрдиреБрд░реЛрдз рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд html рдХреЛ рдкреБрдирд░реНрдирд┐рд░реНрджреЗрд╢рд┐рдд рдХрд░рдХреЗ рд▓реМрдЯрд╛рддрд╛ рд╣реИ, рд╣рдо рдЗрд╕реЗ рдЕрдкреЗрдХреНрд╖рд┐рдд рд╕рд░реНрд╡рд░ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗ:

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

рд╕реЗрд╡рд╛рдПрдВ / 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 рдЖрдк рд╡рд╣ рд╕рдм рдХреБрдЫ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рдХрд░реНрд▓ рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ:

  1. рдХрд░реНрд▓ рд╕рдВрджреЗрд╢реЛрдВ рдХреЛ рдЕрдХреНрд╖рдо рдХрд░реЗрдВ рддрд╛рдХрд┐ рдХрдВрд╕реЛрд▓ рдХреЛ рдмрдВрдж рди рдХрд░реЗрдВ рдФрд░ рд▓реЙрдЧ: -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 рд╕реЗрдХрдВрдб рдкрд░ред рд╕реЗрд╡рд╛ рд╕реЗ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред

рдзреНрдпрд╛рди рджреЗрдВ : рдПрдХрд▓ рдЙрджреНрдзрд░рдг рдореЗрдВ рдкреИрд░рд╛рдореАрдЯрд░ рдорд╛рди рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░реЗрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдПред рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рдмрд╢ рдЗрд╕ рдЕрд░реНрде рдореЗрдВ рдирд╛рдЬреБрдХ рд╣реИ, рдФрд░ рдЧрд▓рдд рдЬрдЧрд╣ рдкрд░ рдЧрд▓рддреА рд╕реЗ рдЙрдбрд╝рд╛рдпрд╛ рдЧрдпрд╛ рддрд┐рддрд▓реА рд╣рд╛рд░реНрдб-рдЯреВ-рдбрд╛рдпрдЧреНрдиреЛрд╕рд┐рд╕ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рдмреНрд░рд╣реНрдорд╛рдВрдб рдХреА рдореГрддреНрдпреБ рдХрд╛ рдХрд╛рд░рдг рдмрди рд╕рдХрддрд╛ рд╣реИред

рд╣рдордиреЗ рдирд┐рдЧрд░рд╛рдиреА рд░рдЦреАред рдЬрд╛рдВрдЪреЗрдВ рдХрд┐ рд╕рдм рдХреБрдЫ рдареАрдХ рд╣реИ:

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

рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рдлреЙрд░реНрдо рдХрд╛ рд╕рдВрджреЗрд╢ рджрд┐рдЦрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП:

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

рдЪрд░рдг 3. рдЕрдиреБрд╕реВрдЪреА рдХреЛ рд╕рдорд╛рдпреЛрдЬрд┐рдд рдХрд░реЗрдВ


рдХреНрд░реЛрди рдореЗрдВ рдПрдХ рдирд┐рдЧрд░рд╛рдиреА рдЕрдиреБрд╕реВрдЪреА рд╕реЗрдЯ рдХрд░реЗрдВ:

 sudo crontab -e 

рд╣рд░ рдорд┐рдирдЯ google.com рдЪреЗрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдкрдВрдХреНрддрд┐ рдЬреЛрдбрд╝реЗрдВ:

 */1 * * * * torsocks <   >/monitoring.sh >> <   >/monitoring.log 2>&1 

рдореЙрдирд┐рдЯрд░рд┐рдВрдЧ рдХреА рдкреБрд╖реНрдЯрд┐ рдХрд░рддреЗ рд╣реБрдП, рд╣рд░ рджрд┐рди 11.00 рдмрдЬреЗ рдЕрд▓рд░реНрдЯ рдЬреЛрдбрд╝реЗрдВред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рд▓рд┐рдП DAILY рдкреИрд░рд╛рдореАрдЯрд░ рдкрд╛рд╕ рдХрд░реЗрдВ:

 0 11 * * * torsocks <   >/monitoring.sh DAILY >> <   >/monitoring.log 2>&1 

2>&1 - рдорд╛рдирдХ рддрдХрдиреАрдХ рдореБрдЦреНрдп рдЖрдЙрдЯрдкреБрдЯ рд╕реНрдЯреНрд░реАрдо рдореЗрдВ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЛ рдкреБрдирд░реНрдирд┐рд░реНрджреЗрд╢рд┐рдд рдХрд░рддреА рд╣реИред рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рдЙрдиреНрд╣реЗрдВ рдирд┐рдЧрд░рд╛рдиреА рд▓реЙрдЧ рдореЗрдВ рднреА рд╢рд╛рдорд┐рд▓ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред

рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЛ рд╕рд╣реЗрдЬреЗрдВ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдХрдорд╛рдВрдб рд╕реЗ рдкрдХрдбрд╝реЗрдВ:

  sudo service cron reload 

рдЖрдк рдХреНрд░реЛрди рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рдкрдврд╝ рд╕рдХрддреЗ рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрд╣рд╛рдВ ред

рдЗрд╕ рдкреНрд░рдХрд╛рд░, рд╣рд░ рдорд┐рдирдЯ рдПрдХ рдирд┐рдЧрд░рд╛рдиреА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд▓реЙрдиреНрдЪ рдХреА рдЬрд╛рдПрдЧреА, рдЬрд┐рд╕реЗ google.com рдкрд░ gol рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдПрдХреНрд╕реЗрд╕ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдпрджрд┐ рдкреНрд░рд╛рдкреНрдд рдЙрддреНрддрд░ рдЕрдкреЗрдХреНрд╖рд┐рдд рд╕реЗ рднрд┐рдиреНрди рд╣реЛрддрд╛ рд╣реИ, рддреЛ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЯреЗрд▓реАрдЧреНрд░рд╛рдо рдореЗрдВ рдПрдХ рд╕реВрдЪрдирд╛ рдкреНрд░рд╛рдкреНрддрдХрд░реНрддрд╛рдУрдВ рдХреА рд╕реВрдЪреА рдореЗрдВ рднреЗрдЬ рджреЗрдЧреАред рдирд┐рдЧрд░рд╛рдиреА рд▓реЙрдЧ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдСрдбрд┐рдЯ рд▓реЙрдЧ рдмрдирд╛рдП рд░рдЦрд╛ рдЬрд╛рддрд╛ рд╣реИ

рдпрджрд┐ рдЖрдкрдХреЛ рджреВрд╕рд░реА рд╕реЗрд╡рд╛ рдЬреЛрдбрд╝рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рддреЛ рд╣рдо рдмрд╕ рд╕реЗрд╡рд╛ рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рдЗрд╕рдХреЗ рд▓рд┐рдП рдПрдХ рдирдИ рдЗрдирдЖрдИ-рдлрд╛рдЗрд▓ рдмрдирд╛рддреЗ рд╣реИрдВ рдФрд░ рдпрджрд┐ рдЖрд╡рд╢реНрдпрдХ рд╣реЛ, рддреЛ рдкреНрд░рд╛рдкреНрддрдХрд░реНрддрд╛рдУрдВ рдХреА рдПрдХ рдЕрд▓рдЧ рд╕реВрдЪреА рдмрдирд╛рдПрдВред рдмрд╛рдХреА рд╕рдм рдХреБрдЫ рдЕрдкрдиреЗ рдЖрдк рдХрд╛рдо рдХрд░реЗрдЧрд╛ред

рдпрджрд┐ рдЪреЗрдХ рдХреА рдЧрдИ рд╕реЗрд╡рд╛ рдЕрдиреБрдкрд▓рдмреНрдз рд╣реЛ рдЧрдИ рд╣реИ, рддреЛ рд╣рд░ рдорд┐рдирдЯ рдПрдХ рдЕрд▓рд░реНрдЯ рднреЗрдЬрд╛ рдЬрд╛рдПрдЧрд╛ред рдпрджрд┐ рдЖрдк рд╕реЗрд╡рд╛ рдХреЛ рдЬрд▓реНрджреА рд╕реЗ рдмрд╣рд╛рд▓ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рдЯреЗрд▓реАрдЧреНрд░рд╛рдо рдореЗрдВ рдмреЙрдЯ рдЧреБрдгреЛрдВ рдореЗрдВ рд╕реВрдЪрдирд╛рдУрдВ рдХреЛ рдЕрд╕реНрдерд╛рдпреА рд░реВрдк рд╕реЗ рдмрдВрдж рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдЕрдм рдЖрдЗрдП рд╕реНрдХреНрд░рд┐рдкреНрдЯреНрд╕ рдХреА рдЕрддрд┐рд░рд┐рдХреНрдд рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдФрд░ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдкрд░ рдХрд░реАрдм рд╕реЗ рдирдЬрд╝рд░ рдбрд╛рд▓реЗрдВред

рд╕рдВрджреЗрд╢ рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдФрд░ рднрд╛рд╡рдирд╛рддреНрдордХ рдЬреБрдбрд╝рд╛рд╡


рдмреЙрдЯ рдХреЗ рд╕рд╛рде рд╕рдВрдЪрд╛рд░ рдХреЛ рдФрд░ рдЕрдзрд┐рдХ рдЬреАрд╡рдВрдд рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдордиреЗ рдЗрд╕реЗ рдордиреНрдЪрдХрд╛ рдХрд╣рд╛, рдЗрд╕реА рддрд░рд╣ рдХреЗ рдЪрд┐рддреНрд░-рдЕрд╡рддрд╛рд░ рдХреЛ рдЬреЛрдбрд╝рд╛ рдФрд░ рд╕рдВрджреЗрд╢ рдкрд╛рда рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдкреЗрд╢реЗрд╡рд░ рдкреАрдЖрд░ рд╡рд┐рд╢реЗрд╖рдЬреНрдЮреЛрдВ рдХреЛ рд▓рдЧрд╛рдпрд╛ред рдЖрдк рд╣рдорд╛рд░реА рдЙрдкрд▓рдмреНрдзрд┐рдпреЛрдВ рдпрд╛ рдЕрдкрдиреЗ рд╕реНрд╡рд╛рдж рдореЗрдВ рдмрджрд▓рд╛рд╡ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЗрд╕ рддрд░рд╣:


рдпрд╛ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐:


рдХреНрдпреЛрдВ рдирд╣реАрдВ?

рдмреЙрдЯ рдирд╛рдо рдФрд░ рдЕрд╡рддрд╛рд░ @botfather рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕реЗрдЯ рдХрд┐рдП рдЧрдП рд╣реИрдВ ред
рд╕рдВрджреЗрд╢ рдЯреЗрдореНрдкрд▓реЗрдЯ рдЯреЗрдореНрдкрд▓реЗрдЯ рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рд╕реНрдерд┐рдд рд╣реИрдВ:

  • рдХрд░реНрд▓-рдлреЗрд▓.рдЯреЗрдХреНрд╕реНрдЯ : рдЬрдм рдХрд░реНрд▓ рдПрдХ рдЧреИрд░-рд╢реВрдиреНрдп рддреНрд░реБрдЯрд┐ рдХреЛрдб рд▓реМрдЯрд╛рддрд╛ рд╣реИ рддреЛ рд╕рдВрджреЗрд╢ рднреЗрдЬрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЖрдорддреМрд░ рдкрд░ рд╕реЗрд╡рд╛ рддрдХ рдкрд╣реБрдВрдЪрдиреЗ рдХреА рдЕрд╕рдВрднрд╡рддрд╛ рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИред
  • daily.txt : рджреИрдирд┐рдХ рд╕рдВрджреЗрд╢ рдпрд╣ рдкреБрд╖реНрдЯрд┐ рдХрд░рддрд╛ рд╣реИ рдХрд┐ рд╕реЗрд╡рд╛ рдирд┐рдЧрд░рд╛рдиреА рдХрд╛рд░реНрдп рдХрд░ рд░рд╣реА рд╣реИред
  • рд╕рд░реНрд╡рд┐рд╕-рдлреЗрд▓.рдЯреЗрдХреНрд╕реНрдЯ : рдореИрд╕реЗрдЬ рднреЗрдЬрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬрдм рд╕рд░реНрд╡рд┐рд╕ рд░рд┐рд╕реНрдкреЙрдиреНрд╕ рдЙрдореНрдореАрдж рд╕реЗ рдЕрд▓рдЧ рд╣реЛрддрд╛ рд╣реИред

рдЖрдЗрдП рд╣рдо рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рд╕рдВрджреЗрд╢ рдЯреЗрдореНрдкрд▓реЗрдЯреНрд╕ рдХреЗ рдЙрджрд╛рд╣рд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЕрдиреБрдХреВрд▓рди рдХреА рд╕рдВрднрд╛рд╡рдирд╛рдУрдВ рдХреА рдЬрд╛рдВрдЪ рдХрд░рддреЗ рд╣реИрдВред
рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдЗрдореЛрдЬреА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рд╣рдмрд░ рдЙрдиреНрд╣реЗрдВ рдкреНрд░рджрд░реНрд╢рд┐рдд рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред
Emojis рдХрд╛ рдЪрдпрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП emojipedia.org рдкрд░ рдЦреЛрдЬ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИ:



рдЖрдк рдЯреЗрдореНрдкрд▓реЗрдЯ рдХреЗ рдкрд╛рда рдореЗрдВ рдЙрдЪрд┐рдд рдЪрд░рд┐рддреНрд░ рдХреЛ рдХреЙрдкреА рдФрд░ рдкреЗрд╕реНрдЯ рдХрд░рддреЗ рд╣реИрдВ (рдпрд╣ рд╕рд╛рдорд╛рдиреНрдп рдпреВрдирд┐рдХреЛрдб рд╣реИ)ред
  1. рдХрд░реНрд▓-fail.txt:

     ,  ...      \"$MSMS_SERVICE_NAME\" \`CURL EXIT CODE: $EXIT_CODE\` 

    рд╣рдордиреЗ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд╕реЗрд╡рд╛ рдирд╛рдо ( MSMS_SERVICE_NAME рдЪрд░) рдФрд░ рдХрд░реНрд▓ рд╕рдорд╛рдкреНрддрд┐ рдХреЛрдб ( EXIT_CODE ) рдХреЗ рд╕рд╛рде рдПрдХ рдЖрдВрддрд░рд┐рдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЪрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ред рд╣рдордиреЗ рдЯреЗрд▓реАрдЧреНрд░рд╛рдо рдорд╛рд░реНрдХрдбрд╛рдЙрди рдорд╛рд░реНрдХрдЕрдк рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП рд╕рдВрджреЗрд╢ рдХреЛ рд╕реНрд╡рд░реВрдкрд┐рдд рдХрд┐рдпрд╛: рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдЪреМрдбрд╝рд╛рдИ рдХреЗ рдЕрдХреНрд╖рд░ `` ''ред рдЪреВрдВрдХрд┐ рдЙрджреНрдзрд░рдг рдЪрд┐рд╣реНрди рдФрд░ рдПрдкреЛрд╕реНрдЯреНрд░реЛрдл рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рдмреИрд╢ рд╡рд░реНрдг рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рд╣рдо рдЙрдиреНрд╣реЗрдВ "\" рд╡рд░реНрдг рдХреЗ рд╕рд╛рде рдЫреЛрдбрд╝ рджреЗрддреЗ рд╣реИрдВред рдкрд░рд┐рд╡рд░реНрддрдиреАрдп рдирд╛рдо "$" рдЪрд┐рд╣реНрди рд╕реЗ рдкрд╣рд▓реЗ рд╣реИрдВред

    рдкрд░рд┐рдгрд╛рдо:


  2. рд╕реЗрд╡рд╛-fail.txt:

     ,  ...  \"$MSMS_SERVICE_NAME\"     ,     : \`$RESPONSE\` 

    рдкрд░рд┐рдгрд╛рдо:



    рдпрд╣рд╛рдВ рд╣рдо рдПрдХ рдФрд░ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЪрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ: RESPONSE ред рдЗрд╕рдореЗрдВ рд╕реЗрд╡рд╛ рдХреА рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рд╢рд╛рдорд┐рд▓ рд╣реИред
  3. daily.txt:

     , !    , c  : \"$MSMS_SERVICE_NAME\"  ...     ? 

    рдкрд░рд┐рдгрд╛рдо:



рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рд▓рд┐рдП рдЖрдЧреЗ рдмрдврд╝рддреЗ рд╣реИрдВред

рдореЙрдирд┐рдЯрд░рд┐рдВрдЧ рд╕реНрдХреНрд░рд┐рдкреНрдЯ


рдореЙрдирд┐рдЯрд░рд┐рдВрдЧ.рд╢ рд╕рд╛рдзрд╛рд░рдг рдСрдЯреЛ-рдбрд┐рд╕реНрдХрд╡рд░реА рдмрдирд╛рддрд╛ рд╣реИ - рд╕реЗрд╡рд╛рдУрдВ рдХреЗ рдлрд╝реЛрд▓реНрдбрд░ рд╕реЗ рд╕рднреА рдЖрдИрдПрдирдЖрдИ-рдлрд╛рдЗрд▓реЛрдВ рдХреЛ рд▓реЗрддрд╛ рд╣реИ рдФрд░ рдкреНрд░рддреНрдпреЗрдХ рдХреЗ рд▓рд┐рдП рдЕрд▓рд░реНрдЯ рдХреА рдЬрд╛рдБрдЪ рдФрд░ рднреЗрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рддрд░реНрдХ рдХреЗ рд╕рд╛рде рдореБрдЦреНрдп рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рддрд╛ рд╣реИ:

 #!/bin/bash cd $(dirname "$0")/services for service_ini in $(ls *.ini); do bash ../msms.sh "$1" "$service_ini" done 

рдирд┐рдЧрд░рд╛рдиреА рдХреА рд╕реНрдерд┐рддрд┐ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдПрдХ рджреИрдирд┐рдХ рд╕рдВрджреЗрд╢ рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рджреИрдирд┐рдХ рдкреИрд░рд╛рдореАрдЯрд░ рдкрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рдХреГрдкрдпрд╛ рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдЬрдм рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╢реБрд░реВ рд╣реЛрддреА рд╣реИ, рддреЛ рд╡рд░реНрддрдорд╛рди рдлрд╝реЛрд▓реНрдбрд░ рд╕реЗрд╡рд╛рдУрдВ рдореЗрдВ рдмрджрд▓ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣ ini рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рд╕реЗрд╡рд╛рдУрдВ рдХреЗ рд╕рд╛рдкреЗрдХреНрд╖ рдлрд╝рд╛рдЗрд▓ рдкрде рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред

рдЪреЗрдХреЛрдВ рдХреА рдЬрд╛рдБрдЪ рдХрд░рдиреЗ рдФрд░ рдЕрд▓рд░реНрдЯ рднреЗрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрдХреНрд░рд┐рдкреНрдЯ


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 рдкрд░ рд╕рдВрджреЗрд╢ рднреЗрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд░реНрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рдкреНрд░рд╛рдкреНрддрдХрд░реНрддрд╛ рдлрд╝рд╛рдЗрд▓ рдЬрд┐рд╕реЗ рд╣рдо ini рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддреЗ рд╣реИрдВ, рд╕реЗ рд▓реЗрддреЗ рд╣реИрдВред рд╣рдорд╛рд░реЗ рджреНрд╡рд╛рд░рд╛ рднреЗрдЬреЗ рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдбреЗрдЯрд╛ рдореЗрдВ, рд╣рдо рд╕рдВрдХреЗрдд рджреЗрддреЗ рд╣реИрдВ рдХрд┐ рд╣рдо рд╕рдВрджреЗрд╢ рдорд╛рд░реНрдХрдЕрдк рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ: parse_mode="Markdown" ред

рд╡рд░реНрддрдорд╛рди рджрд┐рдирд╛рдВрдХ-рд╕рдордп рдкреНрд░рд┐рдВрдЯ рдХрд░реЗрдВ рдФрд░ рдЖрдИрдПрдирдЖрдИ-рдлрд╝рд╛рдЗрд▓ рд▓реЛрдб рдХрд░реЗрдВред

 echo $(date '+%Y-%m-%d %H:%M:%S') # load variables from .ini file: . $2 

рдЬрд╛рджреВ рдХреА рд░реЗрдЦрд╛ . $2 . $2 рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рд░реВрдк рдореЗрдВ рджреВрд╕рд░реЗ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рд░реВрдк рдореЗрдВ рдкрд╛рд░рд┐рдд ini-file рдХреЛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдХрд░рддрд╛ рд╣реИ, рдЗрд╕рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдорд╛рдиреЛрдВ рдХреЛ рдкрд░реНрдпрд╛рд╡рд░рдг рдЪрд░ рдореЗрдВ рджрд░реНрдЬ рдХрд░рддрд╛ рд╣реИред

рдпрджрд┐ MSMS_EXPECTED_FILE рдкреИрд░рд╛рдореАрдЯрд░ 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 

рдкрд╣рд▓реЗ рд╣рдо рдЗрд╕ рд╕реЗрд╡рд╛ рдХреЗ рд▓рд┐рдП рдХрд░реНрд▓ рдХрдорд╛рдВрдб рдХреЗ рдкрд░рд┐рдгрд╛рдо рдХреЗ рд▓рд┐рдП RESPONSE рдЪрд░ рдкреНрд░рджрд╛рди рдХрд░рддреЗ рд╣реИрдВред

рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ EXIT_CODE=$? рдЕрдВрддрд┐рдо рдЖрджреЗрд╢ рдХрд╛ рдкрд░рд┐рдгрд╛рдо рдбрд╛рд▓рддрд╛ рд╣реИ, рдЕрд░реНрдерд╛рддреНред рдХрд░реНрд▓ред рдпрджрд┐ рдЖрдкрдХреЛ рдХреЛрдИ рдЕрд▓рд░реНрдЯ рднреЗрдЬрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рддреЛ рдЯреЗрдореНрдкрд▓реЗрдЯ рдХреЛ рд╕рдВрдмрдВрдзрд┐рдд рдлрд╝рд╛рдЗрд▓ рд╕реЗ рдкрдврд╝рд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдкреНрд░рд╛рдкреНрддрдХрд░реНрддрд╛ рдХреЛ send_message рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ send_message рдЬрд╛рддрд╛ 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 

рдпрд╣ рдирд┐рдЧрд░рд╛рдиреА рдХреЗ рд╕реНрд╡рд╛рд╕реНрдереНрдп рдХреА рдкреБрд╖реНрдЯрд┐ рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рдПрдХ рд╕рдВрджреЗрд╢ рднреЗрдЬрддрд╛ рд╣реИред

рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЖрдИрдбреА рдХреА рдПрдХ рд╕реВрдЪреА рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛


рдкреНрд░рд╛рдкреНрддрдХрд░реНрддрд╛- setup.sh рдмреЙрдЯ рдХреЛ рд╕рдВрдмреЛрдзрд┐рдд рдирд╡реАрдирддрдо рд╕рдВрджреЗрд╢ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЯреЗрд▓реАрдЧреНрд░рд╛рдо рдПрдкреАрдЖрдИ рдХреЛ рдХреЙрд▓ рдХрд░рддрд╛ рд╣реИ:

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

рдпрд╣ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рд╕реВрдЪреА рдЙрддреНрдкрд╛рджрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдЬрдЧрд░ рдЬрд╛рджреВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред рдпрд╣ рд╡реИрдХрд▓реНрдкрд┐рдХ рд╣реИ, рдЖрдк рдмрд╕ рд╡рд╛рдВрдЫрд┐рдд рдЖрдИрдбреА рдХреЛ json рд╕реЗ рд▓реЗ рд╕рдХрддреЗ рд╣реИрдВ, рдЬрд┐рд╕реЗ рдХрдорд╛рдВрдб рдЖрдЙрдЯрдкреБрдЯ рджреЗрдЧрд╛:

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

рдирд┐рд╖реНрдХрд░реНрд╖


рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдЖрдк рддреИрдпрд╛рд░ рдХреА рдЧрдИ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдФрд░ рд╕рдВрджреЗрд╢ рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд╕реВрдЪрдирд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдХреЗрд╡рд▓ рдЕрд╡рд▓реЛрдХрди рдпреЛрдЧреНрдп рд╕реЗрд╡рд╛рдУрдВ рдФрд░ рд╕реВрдЪрд┐рдпреЛрдВ рдХреА рд╕реНрдерд╛рдкрдирд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ; рдЖрдк рдмреЙрдЯ рдХреЗ рд▓рд┐рдП рдПрдХ рдирдИ "рдкрд╣рдЪрд╛рди" рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ; рдФрд░ рдЖрдк рдЕрдкрдирд╛ рдирд┐рд░реНрдгрдп рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдЖрдЧреЗ рдХреЗ рд╡рд┐рдХрд╛рд╕ рдХреЗ рд╡рд┐рдХрд▓реНрдк рдХреЗ рд░реВрдк рдореЗрдВ, рдмреЙрдЯ рдореЗрдВ рдирд┐рдЧрд░рд╛рдиреА рдХрд╛ рд╡рд┐рдиреНрдпрд╛рд╕ рдФрд░ рдкреНрд░рдмрдВрдзрди рдЦреБрдж рд╣реА рд╕реБрдЭрд╛рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣рд╛рдВ рдЖрдк рдЕрдЬрдЧрд░ рдХреЗ рдмрд┐рдирд╛ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗред рдЕрдЧрд░ рдХрд┐рд╕реА рдХреЛ рдореБрдЭрд╕реЗ рдкрд╣рд▓реЗ рдЕрдкрдиреЗ рд╣рд╛рде рдорд┐рд▓рддрд╛ рд╣реИ - рдЖрдк рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рдкреБрд▓ рдЕрдиреБрд░реЛрдз рдХрд╣рд╛рдВ рдЕрдкрд▓реЛрдб рдХрд░рдирд╛ рд╣реИ :-)

Source: https://habr.com/ru/post/hi483318/


All Articles