
рдХрднреА-рдХрднреА рдЖрдкрдХреЛ рдПрдХ рдирдИ рд╕реЗрд╡рд╛ рдХреЗ рд▓рд┐рдП рдЬрд▓реНрджреА рд╕реЗ рдирд┐рдЧрд░рд╛рдиреА рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рд▓реЗрдХрд┐рди рд╣рд╛рде рдореЗрдВ рддреИрдпрд╛рд░ рдмреБрдирд┐рдпрд╛рджреА рдврд╛рдВрдЪрд╛ / рд╡рд┐рд╢реЗрд╖рдЬреНрдЮрддрд╛ рдирд╣реАрдВ рд╣реИред рдЗрд╕ рдЧрд╛рдЗрдб рдореЗрдВ, рдЖрдзреЗ рдШрдВрдЯреЗ рдореЗрдВ рд╣рдо рдХрд┐рд╕реА рднреА рд╡реЗрдм рд╕реЗрд╡рд╛рдУрдВ рдХреА рдирд┐рдЧрд░рд╛рдиреА рдХреЗ рд▓рд┐рдП рдПрдХ рдЙрдкрдХрд░рдг рд▓рд╛рдЧреВ рдХрд░реЗрдВрдЧреЗ, рдЬрд┐рд╕рдореЗрдВ рдХреЗрд╡рд▓ рдмрд┐рд▓реНрдЯ-рдЗрди рдЙрдмрдВрдЯреБ рдЙрдкрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛: рдмреИрд╢, рдХреНрд░реЛрди рдФрд░ рдХрд░реНрд▓ред рд╣рдо рдЕрд▓рд░реНрдЯ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдЯреЗрд▓реАрдЧреНрд░рд╛рдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗред
"рдХреЗрдХ рдкрд░ рдЪреЗрд░реА" рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреА рднрд╛рд╡рдирд╛рддреНрдордХ рднрд╛рдЧреАрджрд╛рд░реА рд╣реЛрдЧреАред рдпрд╣ рд▓реЛрдЧреЛрдВ рдкрд░ рдЬрд╛рдБрдЪ рдХреА рдЬрд╛рддреА рд╣реИ - рдпрд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред
рдЬрдм рд╣рдордиреЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рддрдирд╛рд╡ рдХреЗ рд╕реНрддрд░ рдХреЛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдбреЙрдХреНрдЯрд░ рдирд┐рдпрд░ рдЯреЗрд▓реАрдореЗрдбрд┐рд╕рд┐рди рд╕реЗрд╡рд╛ рдореЗрдВ рдПрдХ рдЪреИрдЯрдмреЙрдЯ рдмрдирд╛рдпрд╛, рддреЛ рд╣рдореЗрдВ рдирд┐рдЧрд░рд╛рдиреА рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдереАред рдХреБрдЫ рдШрдВрдЯреЛрдВ рдореЗрдВ, рдПрдХ рдорд┐рдиреА-рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдмрдирд╛рдпрд╛ рдЧрдпрд╛, рдЬреЛ рди рдХреЗрд╡рд▓ рд╢рд╛рдирджрд╛рд░ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдмрд▓реНрдХрд┐ рд╕рдХрд╛рд░рд╛рддреНрдордХ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рднреА рдЬреЛрдбрд╝рддрд╛ рд╣реИред
рдЖрд░рдВрдн рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рд╕рд╛рде рдПрдХ рднрдВрдбрд╛рд░ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ:
git clone https://github.com/rshekhovtsov/msms.git
Msms рдлрд╝реЛрд▓реНрдбрд░ рдкрд░ рдЬрд╛рдПрдВ рдФрд░ рдлрд┐рд░ рдЙрд╕рдореЗрдВ рдХрд╛рдо рдХрд░реЗрдВред
рдпрджрд┐ рдЯреЗрд▓реАрдЧреНрд░рд╛рдо рдЕрд╡рд░реБрджреНрдз рд╣реИ, рддреЛ рдПрдХ рдкреНрд░реЙрдХреНрд╕реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред рд╕рдмрд╕реЗ рдЖрд╕рд╛рди рдФрд░ рд╕рдмрд╕реЗ рд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рд╡рд┐рдХрд▓реНрдк рдзрдбрд╝ рд╣реИ:
sudo apt install tor sudo apt install torsocks
рдПрдХ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд░реВрдк рдореЗрдВ, рд╣рдо рддреАрди рдЪрд░рдгреЛрдВ рдореЗрдВ google.com рдкреНрд░рд╛рд░рдВрдн рдкреГрд╖реНрда рдореЙрдирд┐рдЯрд░рд┐рдВрдЧ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░реЗрдВрдЧреЗред
STEP 1. рдЯреЗрд▓реАрдЧреНрд░рд╛рдо рдореЗрдВ рдмреЙрдЯ рдмрдирд╛рдПрдВ рдФрд░ рдпреВрдЬрд░ рдЖрдИрдбреА рд▓реЗрдВ
рдПрдХ рдирдпрд╛ рдкреНрд░рд╛рдкреНрддрдХрд░реНрддрд╛ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдЙрд╕реЗ рдЯреЗрд▓реАрдЧреНрд░рд╛рдо рдореЗрдВ рдмреЙрдЯ рд╢реБрд░реВ рдХрд░рдиреЗ, рдкреНрд░рд╛рдкреНрддрдХрд░реНрддрд╛-setup.sh рдЪрд▓рд╛рдиреЗ рдФрд░ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдЖрдИрдбреА рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╣рдирд╛ рд╣реЛрдЧрд╛ред
STEP 2. рдореЙрдирд┐рдЯрд░рд┐рдВрдЧ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░реЗрдВ
рд╕рд░реНрд╡рд┐рд╕ рдХрд╛ рд╡рд░реНрдгрди рд╕рд░реНрд╡рдЗрдбреАрдЬрд╝ рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рдПрдХ рдЖрдИрдПрдирдЖрдИ-рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рдХрд░ рд╣реЛрддрд╛ рд╣реИред рдкрд╛рдВрдЪ рдорд╛рдкрджрдВрдбреЛрдВ рдХреЛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:
- MSMS_SERVICE_NAME : рд╕реЗрд╡рд╛ рдирд╛рдо - рдХрд╛ рдЙрдкрдпреЛрдЧ рдЕрд▓рд░реНрдЯ рдФрд░ рдирд┐рдЧрд░рд╛рдиреА рд▓реЙрдЧ рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
- MSMS_SERVICE_ENDPOINT : рд╣рдо рдЬрд┐рд╕ рд╕реЗрд╡рд╛ рд╕реЗ рд╕рдВрдкрд░реНрдХ рдХрд░реЗрдВрдЧреЗ, рдЙрд╕рдХрд╛ рд╕рдорд╛рдкрди рдмрд┐рдВрджреБ рдХрд░реНрд▓ рдкрд░ рд╣реЛрдЧрд╛ред
- MSMS_CURL_PARAMS : рдЕрддрд┐рд░рд┐рдХреНрдд рдХрд░реНрд▓ рдкреИрд░рд╛рдореАрдЯрд░, рдиреАрдЪреЗ рдЙрджрд╛рд╣рд░рдг рджреЗрдЦреЗрдВред
- MSMS_EXPECTED : рдЕрдкреЗрдХреНрд╖рд┐рдд рд╕реЗрд╡рд╛ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ред рдЙрддреНрддрд░ рдЫреЛрдЯрд╛ рд╣реЛрдиреЗ рдкрд░ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
- MSMS_EXPECTED_FILE : рдЕрдкреЗрдХреНрд╖рд┐рдд рд╕реЗрд╡рд╛ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЗ рд╕рд╛рде рдлрд╝рд╛рдЗрд▓ рдирд╛рдоред рдпрджрд┐ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рддреЛ MSMS_EXPECTED рдХреЛ рдЕрдзрд┐рд▓реЗрдЦрд┐рдд рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
- MSMS_RECIPIENTS : рдЕрдзрд┐рд╕реВрдЪрдирд╛ рдкреНрд░рд╛рдкреНрддрдХрд░реНрддрд╛рдУрдВ рдХреА рд╕реВрдЪреА рдХреЗ рд╕рд╛рде рдлрд╛рдЗрд▓ рдХрд░реЗрдВред
Google.com рдкрд░ рдЕрдиреБрд░реЛрдз рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд html рдХреЛ рдкреБрдирд░реНрдирд┐рд░реНрджреЗрд╢рд┐рдд рдХрд░рдХреЗ рд▓реМрдЯрд╛рддрд╛ рд╣реИ, рд╣рдо рдЗрд╕реЗ рдЕрдкреЗрдХреНрд╖рд┐рдд рд╕рд░реНрд╡рд░ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗ:
curl google.com > services/google-response.html
рд╕реЗрд╡рд╛рдПрдВ / google.ini рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рдПрдБ:
MSMS_SERVICE_NAME='google front page'
MSMS_CURL_PARAMS
рдЖрдк рд╡рд╣ рд╕рдм рдХреБрдЫ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рдХрд░реНрд▓ рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ:
- рдХрд░реНрд▓ рд╕рдВрджреЗрд╢реЛрдВ рдХреЛ рдЕрдХреНрд╖рдо рдХрд░реЗрдВ рддрд╛рдХрд┐ рдХрдВрд╕реЛрд▓ рдХреЛ рдмрдВрдж рди рдХрд░реЗрдВ рдФрд░ рд▓реЙрдЧ:
-s
- рдЬрд╛рдБрдЪ рдХреА рдЬрд╛ рд░рд╣реА рд╕реЗрд╡рд╛ (рд╕реЗрдХрдВрдб рдореЗрдВ) рдХреЗ рд╕рд╛рде рдХрдиреЗрдХреНрд╢рди рдЯрд╛рдЗрдордЖрдЙрдЯ рд╕реЗрдЯ рдХрд░реЗрдВ: -
--connect-timeout 3
- рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рд╕рдордп рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░реЗрдВ:
-m 7
- SSL рдХреЗ рд▓рд┐рдП рдкреНрд░рдорд╛рдгрдкрддреНрд░ рд╕рддреНрдпрд╛рдкрди рдЕрдХреНрд╖рдо рдХрд░реЗрдВ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрджрд┐ рд╕реНрд╡-рд╣рд╕реНрддрд╛рдХреНрд╖рд░рд┐рдд рдкреНрд░рдорд╛рдгрдкрддреНрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ):
--insecure
- Http рдЕрдиреБрд░реЛрдз рдХреЗ рдкреНрд░рдХрд╛рд░ рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░реЗрдВ:
-X POST
- рд╣реЗрдбрд░ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░реЗрдВ:
-H "Content-Type: application/json"
- рдЕрдиреБрд░реЛрдз рдирд┐рдХрд╛рдп рдХреЛ рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдпрд╛ рдлрд╝рд╛рдЗрд▓ рдХреЗ рд░реВрдк рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░реЗрдВред рдлрд╝рд╛рдЗрд▓ рдХреЗ рд▓рд┐рдП рдЙрджрд╛рд╣рд░рдг:
-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 рдкрд░ рдЦреЛрдЬ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИ:

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

- рд╕реЗрд╡рд╛-fail.txt:
, ... \"$MSMS_SERVICE_NAME\" , : \`$RESPONSE\`
рдкрд░рд┐рдгрд╛рдо:

рдпрд╣рд╛рдВ рд╣рдо рдПрдХ рдФрд░ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЪрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ: RESPONSE
ред рдЗрд╕рдореЗрдВ рд╕реЗрд╡рд╛ рдХреА рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рд╢рд╛рдорд┐рд▓ рд╣реИред
- daily.txt:
, ! , c : \"$MSMS_SERVICE_NAME\" ... ?
рдкрд░рд┐рдгрд╛рдо:

рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рд▓рд┐рдП рдЖрдЧреЗ рдмрдврд╝рддреЗ рд╣реИрдВред
рдореЙрдирд┐рдЯрд░рд┐рдВрдЧ рд╕реНрдХреНрд░рд┐рдкреНрдЯ
рдореЙрдирд┐рдЯрд░рд┐рдВрдЧ.рд╢ рд╕рд╛рдзрд╛рд░рдг рдСрдЯреЛ-рдбрд┐рд╕реНрдХрд╡рд░реА рдмрдирд╛рддрд╛ рд╣реИ - рд╕реЗрд╡рд╛рдУрдВ рдХреЗ рдлрд╝реЛрд▓реНрдбрд░ рд╕реЗ рд╕рднреА рдЖрдИрдПрдирдЖрдИ-рдлрд╛рдЗрд▓реЛрдВ рдХреЛ рд▓реЗрддрд╛ рд╣реИ рдФрд░ рдкреНрд░рддреНрдпреЗрдХ рдХреЗ рд▓рд┐рдП рдЕрд▓рд░реНрдЯ рдХреА рдЬрд╛рдБрдЪ рдФрд░ рднреЗрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рддрд░реНрдХ рдХреЗ рд╕рд╛рде рдореБрдЦреНрдп рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рддрд╛ рд╣реИ:
рдирд┐рдЧрд░рд╛рдиреА рдХреА рд╕реНрдерд┐рддрд┐ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдПрдХ рджреИрдирд┐рдХ рд╕рдВрджреЗрд╢ рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рджреИрдирд┐рдХ рдкреИрд░рд╛рдореАрдЯрд░ рдкрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рдХреГрдкрдпрд╛ рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдЬрдм рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╢реБрд░реВ рд╣реЛрддреА рд╣реИ, рддреЛ рд╡рд░реНрддрдорд╛рди рдлрд╝реЛрд▓реНрдбрд░ рд╕реЗрд╡рд╛рдУрдВ рдореЗрдВ рдмрджрд▓ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣ ini рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рд╕реЗрд╡рд╛рдУрдВ рдХреЗ рд╕рд╛рдкреЗрдХреНрд╖ рдлрд╝рд╛рдЗрд▓ рдкрде рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред
рдЪреЗрдХреЛрдВ рдХреА рдЬрд╛рдБрдЪ рдХрд░рдиреЗ рдФрд░ рдЕрд▓рд░реНрдЯ рднреЗрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрдХреНрд░рд┐рдкреНрдЯ
msms.sh рдореЗрдВ рдХрд┐рд╕реА рд╕реЗрд╡рд╛ рдХреА рдЬрд╛рдБрдЪ рдХрд░рдиреЗ рдФрд░ рдЕрд▓рд░реНрдЯ рднреЗрдЬрдиреЗ рдХрд╛ рдореВрд▓ рддрд░реНрдХ рд╣реЛрддрд╛ рд╣реИред
рдЯреЗрд▓реАрдЧреНрд░рд╛рдо рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░реЗрдВ:
рд╣рдо рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдирд┐рдЬреА рдХреБрдВрдЬреА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЯреЗрд▓реАрдЧреНрд░рд╛рдо REST API рддрдХ рдкрд╣реБрдВрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ URL рдмрдирд╛рддреЗ рд╣реИрдВред
Send_message рдлрд╝рдВрдХреНрд╢рди рдЗрд╕ REST API рдкрд░ рд╕рдВрджреЗрд╢ рднреЗрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд░реНрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рдкреНрд░рд╛рдкреНрддрдХрд░реНрддрд╛ рдлрд╝рд╛рдЗрд▓ рдЬрд┐рд╕реЗ рд╣рдо ini рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддреЗ рд╣реИрдВ, рд╕реЗ рд▓реЗрддреЗ рд╣реИрдВред рд╣рдорд╛рд░реЗ рджреНрд╡рд╛рд░рд╛ рднреЗрдЬреЗ рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдбреЗрдЯрд╛ рдореЗрдВ, рд╣рдо рд╕рдВрдХреЗрдд рджреЗрддреЗ рд╣реИрдВ рдХрд┐ рд╣рдо рд╕рдВрджреЗрд╢ рдорд╛рд░реНрдХрдЕрдк рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ:
parse_mode="Markdown"
ред
рд╡рд░реНрддрдорд╛рди рджрд┐рдирд╛рдВрдХ-рд╕рдордп рдкреНрд░рд┐рдВрдЯ рдХрд░реЗрдВ рдФрд░ рдЖрдИрдПрдирдЖрдИ-рдлрд╝рд╛рдЗрд▓ рд▓реЛрдб рдХрд░реЗрдВред
echo $(date '+%Y-%m-%d %H:%M:%S')
рдЬрд╛рджреВ рдХреА рд░реЗрдЦрд╛
. $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
рдирд┐рд╖реНрдХрд░реНрд╖
рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдЖрдк рддреИрдпрд╛рд░ рдХреА рдЧрдИ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдФрд░ рд╕рдВрджреЗрд╢ рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд╕реВрдЪрдирд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдХреЗрд╡рд▓ рдЕрд╡рд▓реЛрдХрди рдпреЛрдЧреНрдп рд╕реЗрд╡рд╛рдУрдВ рдФрд░ рд╕реВрдЪрд┐рдпреЛрдВ рдХреА рд╕реНрдерд╛рдкрдирд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ; рдЖрдк рдмреЙрдЯ рдХреЗ рд▓рд┐рдП рдПрдХ рдирдИ "рдкрд╣рдЪрд╛рди" рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ; рдФрд░ рдЖрдк рдЕрдкрдирд╛ рдирд┐рд░реНрдгрдп рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдЖрдЧреЗ рдХреЗ рд╡рд┐рдХрд╛рд╕ рдХреЗ рд╡рд┐рдХрд▓реНрдк рдХреЗ рд░реВрдк рдореЗрдВ, рдмреЙрдЯ рдореЗрдВ рдирд┐рдЧрд░рд╛рдиреА рдХрд╛ рд╡рд┐рдиреНрдпрд╛рд╕ рдФрд░ рдкреНрд░рдмрдВрдзрди рдЦреБрдж рд╣реА рд╕реБрдЭрд╛рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣рд╛рдВ рдЖрдк рдЕрдЬрдЧрд░ рдХреЗ рдмрд┐рдирд╛ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗред рдЕрдЧрд░ рдХрд┐рд╕реА рдХреЛ рдореБрдЭрд╕реЗ рдкрд╣рд▓реЗ рдЕрдкрдиреЗ рд╣рд╛рде рдорд┐рд▓рддрд╛ рд╣реИ - рдЖрдк рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рдкреБрд▓ рдЕрдиреБрд░реЛрдз рдХрд╣рд╛рдВ рдЕрдкрд▓реЛрдб рдХрд░рдирд╛ рд╣реИ :-)