
рдХрд╣рд┐рд▓реЗрдХрд╛рд╣реАрдБ рддрдкрд╛рдИрд▓реЗ рдирдпрд╛рдБ рд╕реЗрд╡рд╛рдХреЛ рд▓рд╛рдЧрд┐ рддреБрд░реБрдиреНрддреИ рдЕрдиреБрдЧрдорди рдЧрд░реНрди рдЖрд╡рд╢реНрдпрдХ рдЫ, рддрд░ рддреНрдпрд╣рд╛рдБ рдХреБрдиреИ рддрдпрд╛рд░ рдкреВрд░реНрд╡рд╛рдзрд╛рд░/рд╡рд┐рдЬреНрдЮрддрд╛ рд╣рд╛рддрдорд╛ рдЫреИрдиред рдпрд╕ рдЧрд╛рдЗрдбрдорд╛, рдЖрдзрд╛ рдШрдгреНрдЯрд╛рдорд╛ рд╣рд╛рдореА рдХреБрдиреИ рдкрдирд┐ рд╡реЗрдм рд╕реЗрд╡рд╛рд╣рд░реВ рдЕрдиреБрдЧрдорди рдЧрд░реНрдирдХрд╛ рд▓рд╛рдЧрд┐ рдПрдЙрдЯрд╛ рдЙрдкрдХрд░рдг рд▓рд╛рдЧреВ рдЧрд░реНрдиреЗрдЫреМрдВ, рдХреЗрд╡рд▓ рдЙрдмреБрдиреНрдЯреБрдХреЛ рдирд┐рд░реНрдорд┐рдд рдЙрдкрдХрд░рдгрд╣рд░реВ рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░: bash, cron рд░ curlред рд╣рд╛рдореА рдЕрд▓рд░реНрдЯрд╣рд░реВ рдбреЗрд▓рд┐рднрд░ рдЧрд░реНрди рдЯреЗрд▓рд┐рдЧреНрд░рд╛рдо рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреЗрдЫреМрдВред
"рдЪреЗрд░реА рдЕрди рдж рдХреЗрдХ" рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛рд╣рд░реВрдХреЛ рднрд╛рд╡рдирд╛рддреНрдордХ рд╕рдВрд▓рдЧреНрдирддрд╛ рд╣реБрдиреЗрдЫред рдорд╛рдирд┐рд╕рд╣рд░реВ рдорд╛ рдкрд░реАрдХреНрд╖рдг - рдпреЛ рдХрд╛рдо рдЧрд░реНрджрдЫред
рдЬрдм рд╣рд╛рдореА рдЯреЗрд▓рд┐рдореЗрдбрд┐рд╕рд┐рди рд╕реЗрд╡рд╛рдорд╛ рдбрд╛рдХреНрдЯрд░ рдиреЗрдпрд░рдмреАрд▓реЗ рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛рд╣рд░реВрдХреЛ рддрдирд╛рд╡ рд╕реНрддрд░ рдирд┐рд░реНрдзрд╛рд░рдг рдЧрд░реНрди рдЪреНрдпрд╛рдЯрдмрдЯ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНтАНрдпреЛ, рд╣рд╛рдореАрд▓рд╛рдИ рдирд┐рдЧрд░рд╛рдиреАрдХреЛ рдЖрд╡рд╢реНрдпрдХрддрд╛ рдкрд░реНтАНрдпреЛред рдХреЗрд╣реА рдШрдгреНрдЯрд╛рдорд╛, рдПрдЙрдЯрд╛ рдорд┐рдиреА-рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░рд┐рдпреЛ рдЬрд╕рд▓реЗ рдЙрддреНрдХреГрд╖реНрдЯ рдХрд╛рдо рдорд╛рддреНрд░ рдЧрд░реНрджреИрди, рддрд░ рдпрд╕рдХреЛ рд╕рдиреНрджреЗрд╢рд╣рд░реВрд╕рдБрдЧ рд╕рдХрд╛рд░рд╛рддреНрдордХрддрд╛ рдкрдирд┐ рдердкреНрдЫред
рдкрд╣рд┐рд▓реЗ, рд╕реНрдХреНрд░рд┐рдкреНрдЯрдХреЛ рд╕рд╛рде рднрдгреНрдбрд╛рд░ рдкреНрд░рд╛рдкреНрдд рдЧрд░реМрдВ:
git clone https://github.com/rshekhovtsov/msms.gitmsms рдлреЛрд▓реНрдбрд░рдорд╛ рдЬрд╛рдиреБрд╣реЛрд╕реН рд░ рддреНрдпрд╕рдкрдЫрд┐ рдпрд╕рдорд╛ рдХрд╛рдо рдЧрд░реНрдиреБрд╣реЛрд╕реНред
рдпрджрд┐ рдЯреЗрд▓рд┐рдЧреНрд░рд╛рдо рдЕрд╡рд░реБрджреНрдз рдЫ рднрдиреЗ, рдкреНрд░реЛрдХреНрд╕реА рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреБрд╣реЛрд╕реНред рд╕рд░рд▓ рд░ рд╕рдмреИрднрдиреНрджрд╛ рднрд░рдкрд░реНрджреЛ рд╡рд┐рдХрд▓реНрдк torsocks рдЫ:
sudo apt install tor
sudo apt install torsocksрдЙрджрд╛рд╣рд░рдгрдХреЛ рд░реВрдкрдорд╛, рддреАрди рдЪрд░рдгрд╣рд░реВрдорд╛ google.com рд╕реБрд░реБ рдкреГрд╖реНрдардХреЛ рдирд┐рдЧрд░рд╛рдиреА рд╕реЗрдЯ рдЕрдк рдЧрд░реМрдВред
рдЪрд░рдг 1. рдЯреЗрд▓рд┐рдЧреНрд░рд╛рдордорд╛ рдмреЛрдЯ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрдиреБрд╣реЛрд╕реН рд░ рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛ рдЖрдИрдбреА рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрдиреБрд╣реЛрд╕реН
- рдЯреЗрд▓рд┐рдЧреНрд░рд╛рдордорд╛ рд╕рдореНрдкрд░реНрдХрд╣рд░реВрдХреЛ рдЦреЛрдЬреА рдкрдЯреНрдЯреАрдорд╛ рд╣рд╛рдореА рдЦреЛрдЬреНрдЫреМрдВ :

- рд╣рд╛рдореАрд▓реЗ рдпрд╕рд▓рд╛рдИ рд╕реНрдЯрд╛рд░реНрдЯ рдмрдЯрдирдХреЛ рд╕рд╛рде рд╕реБрд░реБ рдЧрд░реНрдЫреМрдВ, /newbot рдЖрджреЗрд╢ рдкреНрд░рд╡рд┐рд╖реНрдЯ рдЧрд░реНрдиреБрд╣реЛрд╕реН рд░ рдкреНрд░рд╢реНрдирд╣рд░реВрдХреЛ рдЬрд╡рд╛рдл рджрд┐рдиреБрд╣реЛрд╕реНред рддрдкрд╛рдИрд▓реЗ рджрд┐рдорд╛рдЧрдорд╛ рд░рд╛рдЦреНрдиреБ рдкрд░реНрдЫ рдХрд┐ рдирд╛рдо рдмреЛрдЯрдХреЛ рдирд╛рдо рд╣реЛ рдЬреБрди рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛рд╣рд░реВрд▓рд╛рдИ рджреЗрдЦрд╛рдЗрдиреЗрдЫ, рд░ рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛ рдирд╛рдо рдЕрджреНрд╡рд┐рддреАрдп рдЫ рд░ "рдмреЛрдЯ" рдмрд╛рдЯ рдЕрдиреНрддреНрдп рд╣реБрдиреБрдкрд░реНрдЫ:

рдЕрдиреНрдп рдЪреАрдЬрд╣рд░реВ рдордзреНрдпреЗ, рдмреЛрдЯрд▓реЗ HTTP API рдХреЛ рд▓рд╛рдЧрд┐ рдПрдХ рдЧреЛрдкреНрдп рдЯреЛрдХрди рдЬрд╛рд░реА рдЧрд░реНрдиреЗрдЫ, рдЬреБрди рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдЧрд░реЗрд░ msms рдлреЛрд▓реНрдбрд░рдорд╛ telegram-api-key.txt рдлрд╛рдЗрд▓рдорд╛ рдмрдЪрдд рдЧрд░реНрдиреБрдкрд░реНрдЫред - рд╣рд╛рдореА рдЯреЗрд▓рд┐рдЧреНрд░рд╛рдо рдЦреЛрдЬ рдкрдЯреНрдЯреАрдорд╛ рд╣рд╛рдореНрд░реЛ рдмреЛрдЯрдХреЛ рдирд╛рдо рдЯрд╛рдЗрдк рдЧрд░реНрдЫреМрдВ рд░ рдпрд╕рд▓рд╛рдИ рд╕реБрд░реБ рдЧрд░реНрдЫреМрдВред
- рдЕрдиреНрддрд┐рдо рд╕реНрдкрд░реНрд╢рдХреЛ рд░реВрдкрдорд╛, рдЕрдиреБрдЧрдорди рдЕрд▓рд░реНрдЯ рдкреНрд░рд╛рдкреНрддрдХрд░реНрддрд╛рд╣рд░реВрдХреЛ рд╕реВрдЪреАрдорд╛ рдЖрдлреВрд▓рд╛рдИ рдердкреМрдВ:
sudo chmod +x ./recipients-setup.sh torsocks ./recipients-setup.shрд╕реНрдХреНрд░рд┐рдкреНрдЯрд▓реЗ рдмреЛрдЯрдорд╛ рд╣рд╛рд▓реИрдХрд╛ рдХрд▓рд╣рд░реВрдХреЛ рд╕реВрдЪреА рдкреНрд░рджрд░реНрд╢рди рдЧрд░реНрдиреЗрдЫ; рдЯреЗрд▓рд┐рдЧреНрд░рд╛рдордорд╛ рд╣рд╛рдореНрд░реЛ рдЖрдИрдбреА рд░ рдирд╛рдордХреЛ рд╕рд╛рде рдПрдЙрдЯрд╛ рд▓рд╛рдЗрди рд╣реБрдиреБрдкрд░реНрдЫред рд╣рд╛рдореА рдпреЛ рдЖрдИрдбреА рд▓рд┐рдиреНрдЫреМрдВ рд░ рдлрд╛рдЗрд▓ services/google-recipients.txt рдорд╛ рдмрдЪрдд рдЧрд░реНрдЫреМрдВред рдлрд╛рдЗрд▓ рдврд╛рдБрдЪрд╛: рдкреНрд░рддреНрдпреЗрдХ рд▓рд╛рдЗрди рдПрдХ рдЖрдИрдбреА рд╣реЛред рдЙрджрд╛рд╣рд░рдг:
123456789 987654321
рдирдпрд╛рдБ рдкреНрд░рд╛рдкрдХ рдердкреНрдирдХреЛ рд▓рд╛рдЧрд┐, рддрдкрд╛рдИрдВрд▓реЗ рдЙрд╕рд▓рд╛рдИ рдЯреЗрд▓рд┐рдЧреНрд░рд╛рдордорд╛ рдмрдЯ рд╕реБрд░реБ рдЧрд░реНрди, recipients-setup.sh рдЪрд▓рд╛рдЙрди рд░ рдлрд╛рдЗрд▓рдорд╛ рдЖрдИрдбреА рдердкреНрди рд╕реЛрдзреНрдиреБ рдкрд░реНрдЫред
рдЪрд░рдг 2. рдЕрдиреБрдЧрдорди рд╕реЗрдЯрдЕрдк рдЧрд░реНрдиреБрд╣реЛрд╕реН
рд╕реЗрд╡рд╛ рдлреЛрд▓реНрдбрд░рдорд╛ ini рдлрд╛рдЗрд▓ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реЗрд░ рд╕реЗрд╡рд╛ рд╡рд░реНрдгрди рдЧрд░рд┐рдПрдХреЛ рдЫред рддрдкрд╛рдИрдВрд▓реЗ рдкрд╛рдБрдЪ рдкреНрдпрд╛рд░рд╛рдорд┐рдЯрд░рд╣рд░реВ рд╕реЗрдЯ рдЧрд░реНрди рдЖрд╡рд╢реНрдпрдХ рдЫ:
- 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.htmlservices/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 рддрдкрд╛рдЗрдБ рдХрд░реНрд▓рд▓реЗ рдЧрд░реНрди рд╕рдХреНрдиреЗ рд╕рдмреИ рдХреБрд░рд╛ рд╕реЗрдЯ рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ, рд╕рд╣рд┐рдд:
- рдХрдиреНрд╕реЛрд▓ рд░ рд▓рдЧ рдЕрд╡реНрдпрд╡рд╕реНрдерд┐рдд рд╣реБрдирдмрд╛рдЯ рдЬреЛрдЧрд┐рди рдХрд░реНрд▓ рд╕рдиреНрджреЗрд╢рд╣рд░реВ рдЕрд╕рдХреНрд╖рдо рдЧрд░реНрдиреБрд╣реЛрд╕реН:
-s - рд╕реЗрд╡рд╛ рдЬрд╛рдБрдЪ рдЧрд░рд┐рдБрджреИ рдЬрдбрд╛рдирдХреЛ рд╕рдордпрд╛рд╡рдзрд┐ рд╕реЗрдЯ рдЧрд░реНрдиреБрд╣реЛрд╕реН (рд╕реЗрдХреЗрдиреНрдбрдорд╛):
--connect-timeout 3 - рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдЯрд╛рдЗрдордЖрдЙрдЯ рд╕реЗрдЯ рдЧрд░реНрдиреБрд╣реЛрд╕реН:
-m 7 - SSL рдХрд╛ рд▓рд╛рдЧрд┐ рдкреНрд░рдорд╛рдгрдкрддреНрд░ рдкреНрд░рдорд╛рдгрд┐рдХрд░рдг рдЕрд╕рдХреНрд╖рдо рдЧрд░реНрдиреБрд╣реЛрд╕реН (рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐, рдпрджрд┐ рддрдкрд╛рдЗрдБ рд╕реНрд╡-рд╣рд╕реНрддрд╛рдХреНрд╖рд░рд┐рдд рдкреНрд░рдорд╛рдгрдкрддреНрд░ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрджреИ рд╣реБрдиреБрд╣реБрдиреНрдЫ):
--insecure - http рдЕрдиреБрд░реЛрдз рдкреНрд░рдХрд╛рд░ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдЧрд░реНрдиреБрд╣реЛрд╕реН:
-X POST - рд╢реАрд░реНрд╖рдХ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдЧрд░реНрдиреБрд╣реЛрд╕реН:
-H "Content-Type: application/json" - рд╕реНрдЯреНрд░рд┐рдЩ рд╡рд╛ рдлрд╛рдЗрд▓рдХреЛ рд░реВрдкрдорд╛ рдЕрдиреБрд░реЛрдзрдХреЛ рдореБрдЦреНрдп рднрд╛рдЧ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдЧрд░реНрдиреБрд╣реЛрд╕реНред рдлрд╛рдЗрд▓рдХреЛ рд▓рд╛рдЧрд┐ рдЙрджрд╛рд╣рд░рдг:
-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. рддрд╛рд▓рд┐рдХрд╛ рд╕реЗрдЯ рдЕрдк рдЧрд░реНрджреИ
рдХреНрд░реЛрдирдорд╛ рдЕрдиреБрдЧрдорди рддрд╛рд▓рд┐рдХрд╛ рд╕реЗрдЯ рдЕрдк рдЧрд░реМрдВ:
sudo crontab -eрдкреНрд░рддреНрдпреЗрдХ рдорд┐рдиреЗрдЯ google.com рдЬрд╛рдБрдЪ рдЧрд░реНрди рдПрдЙрдЯрд╛ рд▓рд╛рдЗрди рдердкреМрдВ:
*/1 * * * * torsocks <╨Я╨г╨в╨м ╨Ъ ╨Я╨Р╨Я╨Ъ╨Х ╨а╨Х╨Я╨Ю╨Ч╨Ш╨в╨Ю╨а╨Ш╨п>/monitoring.sh >> <╨Я╨г╨в╨м ╨Ъ ╨Я╨Р╨Я╨Ъ╨Х ╨а╨Х╨Я╨Ю╨Ч╨Ш╨в╨Ю╨а╨Ш╨п>/monitoring.log 2>&1рд╣рд╛рдореА рд╣рд░реЗрдХ рджрд┐рди 11.00:XNUMX рдмрдЬреЗ рдПрдХ рдЕрд▓рд░реНрдЯ рдердкреНрдиреЗрдЫреМрдВ, рдЕрдиреБрдЧрдордирдХреЛ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдкреБрд╖реНрдЯрд┐ рдЧрд░реНрджреИред рдпреЛ рдЧрд░реНрдирдХреЛ рд▓рд╛рдЧрд┐, рд╣рд╛рдореА рд╕реНрдХреНрд░рд┐рдкреНрдЯрдорд╛ DAILY рдкреНрдпрд╛рд░рд╛рдорд┐рдЯрд░ рдкрд╛рд╕ рдЧрд░реНрдиреЗрдЫреМрдВ:
0 11 * * * torsocks <╨Я╨г╨в╨м ╨Ъ ╨Я╨Р╨Я╨Ъ╨Х ╨а╨Х╨Я╨Ю╨Ч╨Ш╨в╨Ю╨а╨Ш╨п>/monitoring.sh DAILY >> <╨Я╨г╨в╨м ╨Ъ ╨Я╨Р╨Я╨Ъ╨Х ╨а╨Х╨Я╨Ю╨Ч╨Ш╨в╨Ю╨а╨Ш╨п>/monitoring.log 2>&1
2>&1 - рдПрдХ рдорд╛рдирдХ рдкреНрд░рд╡рд┐рдзрд┐ рдЬрд╕рд▓реЗ рддреНрд░реБрдЯрд┐рд╣рд░реВрд▓рд╛рдИ рдореБрдЦреНрдп рдЖрдЙрдЯрдкреБрдЯ рд╕реНрдЯреНрд░рд┐рдордорд╛ рд░рд┐рдбрд┐рд░реЗрдХреНрдЯ рдЧрд░реНрдЫред рдлрд▓рд╕реНрд╡рд░реВрдк, рддрд┐рдиреАрд╣рд░реВ рдкрдирд┐ рдирд┐рдЧрд░рд╛рдиреА рд▓рдЧ рдорд╛ рд╕рдорд╛рдкреНрдд рд╣реБрдиреЗрдЫред
рдкрд░рд┐рд╡рд░реНрддрдирд╣рд░реВ рдмрдЪрдд рдЧрд░реМрдВ рд░ рддрд┐рдиреАрд╣рд░реВрд▓рд╛рдИ рдЖрджреЗрд╢рдХреЛ рд╕рд╛рде рдЙрдард╛рдЙрдиреБрд╣реЛрд╕реН:
sudo service cron reloadрддрдкрд╛рдИрдВ рдХреНрд░реЛрди рд╕реЗрдЯрдЕрдк рдЧрд░реНрдиреЗ рдмрд╛рд░реЗ рдердк рдкрдвреНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ, рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐, .
рдпрд╕рд░реА, рдкреНрд░рддреНрдпреЗрдХ рдорд┐рдиреЗрдЯрдорд╛ рдПрдХ рдирд┐рдЧрд░рд╛рдиреА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕реБрд░реБ рд╣реБрдиреЗрдЫ, рдЬрд╕рд▓реЗ рдХрд░реНрд▓ рдорд╛рд░реНрдлрдд google.com рд▓рд╛рдИ рд╕рдореНрдкрд░реНрдХ рдЧрд░реНрдиреЗрдЫред рдпрджрд┐ рдкреНрд░рд╛рдкреНрдд рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдЕрдкреЗрдХреНрд╖рд┐рдд рднрдиреНрджрд╛ рдлрд░рдХ рдЫ рднрдиреЗ, рд╕реНрдХреНрд░рд┐рдкреНрдЯрд▓реЗ рдкреНрд░рд╛рдкреНрддрдХрд░реНрддрд╛рд╣рд░реВрдХреЛ рд╕реВрдЪреАрдорд╛ рдЯреЗрд▓рд┐рдЧреНрд░рд╛рдо рд╕реВрдЪрдирд╛ рдкрдард╛рдЙрдиреЗрдЫред рдЕрдбрд┐рдЯ рд▓рдЧ рдлрд╛рдЗрд▓ Moniting.log рдорд╛ рд░рд╛рдЦрд┐рдПрдХреЛ рдЫ
рдпрджрд┐ рд╣рд╛рдореАрд▓реЗ рдЕрд░реНрдХреЛ рд╕реЗрд╡рд╛ рдердкреНрди рдЖрд╡рд╢реНрдпрдХ рдЫ рднрдиреЗ, рд╣рд╛рдореА рдХреЗрд╡рд▓ рд╕реЗрд╡рд╛ рдлреЛрд▓реНрдбрд░рдорд╛ рдпрд╕рдХреЛ рд▓рд╛рдЧрд┐ рдирдпрд╛рдБ ini рдлрд╛рдЗрд▓ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрдЫреМрдВ рд░ рдЖрд╡рд╢реНрдпрдХ рднрдПрдорд╛, рдкреНрд░рд╛рдкреНрддрдХрд░реНрддрд╛рд╣рд░реВрдХреЛ рдЫреБрдЯреНрдЯреИ рд╕реВрдЪреА рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрджрдЫреМрдВред рдЕрд░реВ рд╕рдмреИ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдкрдорд╛ рдХрд╛рдо рдЧрд░реНрдиреЗрдЫред
рдпрджрд┐ рдЬрд╛рдБрдЪ рдЧрд░рд┐рдБрджреИ рдЖрдПрдХреЛ рд╕реЗрд╡рд╛ рдЕрдиреБрдкрд▓рдмреНрдз рднрдПрдХреЛ рдЫ рднрдиреЗ, рдкреНрд░рддреНрдпреЗрдХ рдорд┐рдиреЗрдЯрдорд╛ рдЕрд▓рд░реНрдЯ рдкрдард╛рдЗрдиреЗрдЫред рдпрджрд┐ рддрдкрд╛рдЗрдБ рдЫрд┐рдЯреЛ рд╕реЗрд╡рд╛ рдкреБрдирд░реНрд╕реНрдерд╛рдкрдирд╛ рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрди рднрдиреЗ, рддрдкрд╛рдЗрдБ рдЕрд╕реНрдерд╛рдпреА рд░реВрдкрдорд╛ рдмреЛрдЯрдХреЛ рдЯреЗрд▓рд┐рдЧреНрд░рд╛рдо рдЧреБрдгрд╣рд░реВрдорд╛ рд╕реВрдЪрдирд╛рд╣рд░реВ рдЕрд╕рдХреНрд╖рдо рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫред
рдЕрдм рдердк рд╕реБрд╡рд┐рдзрд╛рд╣рд░реВ рд░ рд╕реНрдХреНрд░рд┐рдкреНрдЯрд╣рд░реВрдХреЛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрдирд▓рд╛рдИ рдирдЬрд┐рдХрдмрд╛рдЯ рд╣реЗрд░реМрдВред
рд╕рдиреНрджреЗрд╢ рдврд╛рдБрдЪрд╛ рд░ рднрд╛рд╡рдирд╛рддреНрдордХ рд╕рдВрд▓рдЧреНрдирддрд╛
рдмреЛрдЯрд╕рдБрдЧрдХреЛ рд╕рдЮреНрдЪрд╛рд░рд▓рд╛рдИ рдЕрдЭ рдЬреАрд╡рдиреНрдд рдмрдирд╛рдЙрдирдХреЛ рд▓рд╛рдЧрд┐, рд╣рд╛рдореАрд▓реЗ рдпрд╕рд▓рд╛рдИ Manechka рдирд╛рдо рджрд┐рдпреМрдВ, рдЙрдкрдпреБрдХреНрдд рдЕрд╡рддрд╛рд░ рдЪрд┐рддреНрд░ рдердкреНрдпреМрдВ рд░ рд╕рдиреНрджреЗрд╢ рдкрд╛рдард╣рд░реВ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрди рдкреЗрд╢реЗрд╡рд░ PR рд╡рд┐рд╢реЗрд╖рдЬреНрдЮрд╣рд░реВрд▓рд╛рдИ рдХрд╛рдордорд╛ рд░рд╛рдЦреНрдпреМрдВред рддрдкрд╛рдИрдВ рд╣рд╛рдореНрд░реЛ рдЕрдиреБрднрд╡ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рд╡рд╛ рдЖрдлреНрдиреЛ рд╕реНрд╡рд╛рдж рдкрд░рд┐рд╡рд░реНрддрди рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫред
рдЙрджрд╛рд╣рд░рдг рдХреЛ рд▓рд╛рдЧреА, рдпреЛ рдЬрд╕реНрддреИ:

рд╡рд╛ рдпреЛ рдЬрд╕реНрддреИ:

рдХрд┐рди рдирдЧрд░реНрдиреЗ ?
рдмреЛрдЯ рдирд╛рдо рд░ рдЕрд╡рддрд╛рд░ рдорд╛рд░реНрдлрдд рд╕реЗрдЯ рдЧрд░рд┐рдПрдХреЛ рдЫ .
рд╕рдиреНрджреЗрд╢ рдЯреЗрдореНрдкреНрд▓реЗрдЯрд╣рд░реВ рдлреЛрд▓реНрдбрд░рдорд╛ рдЫрдиреН рдЯреЗрдореНрдкреНрд▓реЗрдЯ:
- curl-fail.txt: рдХрд░реНрд▓рд▓реЗ рдЧреИрд░-рд╢реВрдиреНрдп рддреНрд░реБрдЯрд┐ рдХреЛрдб рдлрд░реНрдХрд╛рдЙрдБрджрд╛ рд╕рдиреНрджреЗрд╢ рдкрдард╛рдЗрдпреЛред рд╕рд╛рдорд╛рдиреНрдпрддрдпрд╛ рдпреЛ рд╕реЗрд╡рд╛ рдкреБрдЧреНрди рдЕрд╕рдореНрднрд╡ рдмрд╛рд░реЗрдорд╛ рдХреБрд░рд╛ рдЧрд░реНрдЫред
- daily.txt: рд╕реЗрд╡рд╛ рдЕрдиреБрдЧрдорди рдХрд╛рдо рдЧрд░рд┐рд░рд╣реЗрдХреЛ рдкреБрд╖реНрдЯрд┐ рдЧрд░реНрдиреЗ рджреИрдирд┐рдХ рд╕рдиреНрджреЗрд╢ред
- service-fail.txt: рд╕реЗрд╡рд╛ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдЕрдкреЗрдХреНрд╖рд┐рдд рднрдиреНрджрд╛ рдлрд░рдХ рд╣реБрдБрджрд╛ рдкрдард╛рдЗрдПрдХреЛ рд╕рдиреНрджреЗрд╢ред
рдЙрджрд╛рд╣рд░рдгрдХреЛ рд░реВрдкрдорд╛ рдирд┐рд░реНрдорд┐рдд рд╕рдиреНрджреЗрд╢ рдЯреЗрдореНрдкреНрд▓реЗрдЯрд╣рд░реВ рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рдЕрдиреБрдХреВрд▓рди рд╡рд┐рдХрд▓реНрдкрд╣рд░реВ рд╣реЗрд░реМрдВред
рдЯреЗрдореНрдкреНрд▓реЗрдЯрд╣рд░реВрд▓реЗ рдЗрдореЛрдЬреА рдкреНрд░рдпреЛрдЧ рдЧрд░реНрджрдЫред рджреБрд░реНрднрд╛рдЧреНрдпрд╡рд╢, habr рд▓реЗ рддрд┐рдиреАрд╣рд░реВрд▓рд╛рдИ рдкреНрд░рджрд░реНрд╢рди рдЧрд░реНрджреИрдиред
рдЗрдореЛрдЬреА рдЪрдпрди рдЧрд░реНрди, рдпреЛ рдЦреЛрдЬреА рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдЫ :

рддрдкрд╛рдИрд▓реЗ рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдкрд╛рдардорд╛ рдЙрдкрдпреБрдХреНрдд рдкреНрд░рддреАрдХ рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдЧрд░реЗрд░ рдЯрд╛рдБрд╕реНрдиреБрд╣реЛрд╕реН (рдпреЛ рдирд┐рдпрдорд┐рдд рдпреБрдирд┐рдХреЛрдб рд╣реЛ)ред
- curl-fail.txt:
╨Ъ╨╛╤В╤С╨╜╨╛╨║, ╨┐╨╛╨╝╨╛╨│╨╕ ╨╝╨╜╨╡... ╨Э╨╡ ╨╝╨╛╨│╤Г ╨┤╨╛╤Б╤В╤Г╤З╨░╤В╤М╤Б╤П ╨┤╨╛ ╤Б╨╡╤А╨▓╨╕╤Б╨░ "$MSMS_SERVICE_NAME" `CURL EXIT CODE: $EXIT_CODE`рд╣рд╛рдореАрд▓реЗ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдЧрд░реЗрдХреЛ рд╕реЗрд╡рд╛ рдирд╛рдо рдкреНрд░рдпреЛрдЧ рдЧрд░реНтАНрдпреЛ (рдЪрд░
MSMS_SERVICE_NAME) рд░ рдХрд░реНрд▓ рдирд┐рдХрд╛рд╕ рдХреЛрдб (EXIT_CODE)ред рд╣рд╛рдореАрд▓реЗ рдорд╛рд░реНрдХрдЕрдк рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рд╕рдиреНрджреЗрд╢ рдврд╛рдБрдЪрд╛ рдкрдирд┐ рдЧрд░реНрдпреМрдВ : "`" рдЕрдХреНрд╖рд░рд╣рд░реВ рдирд┐рд╢реНрдЪрд┐рдд-рдЪреМрдбрд╛рдЗрдХреЛ рдкрд╛рдард▓рд╛рдИ рдШреЗрд░реНрдЫрдиреНред рдЪреВрдВрдХрд┐ рдЙрджреНрдзрд░рдгрд╣рд░реВ рд░ рдЕрдкреЛрд╕реНрдЯреНрд░реЛрдлрд╣рд░реВ рдмреНрдпрд╛рд╢ рдкреНрд░рддреАрдХрд╣рд░реВ рд╣реБрдиреН, рд╣рд╛рдореА рддрд┐рдиреАрд╣рд░реВрд▓рд╛рдИ "" рдмрд╛рдЯ рдмрдЪрд╛рдЙрдБрдЫреМрдВред рдЪрд░ рдирд╛рдорд╣рд░реВ рдЕрдЧрд╛рдбрд┐ "$" рдЪрд┐рдиреНрд╣ рд▓рдЧрд╛рдЗрдиреНрдЫредрдкрд░рд┐рдгрд╛рдо:

- service-fail.txt:
╨Ъ╨╛╤В╤С╨╜╨╛╨║, ╨┐╨╛╨╝╨╛╨│╨╕ ╨╝╨╜╨╡... ╨б╨╡╤А╨▓╨╕╤Б "$MSMS_SERVICE_NAME" ╨╝╨╡╨╜╤П ╤А╨░╤Б╤Б╤В╤А╨╛╨╕╨╗ ╨Ю╨╜ ╤А╨░╨▒╨╛╤В╨░╨╡╤В ╨╜╨╡╨┐╤А╨░╨▓╨╕╨╗╤М╨╜╨╛, ╨▓╨╛╤В ╤З╤В╨╛ ╨╛╨╜ ╨╝╨╜╨╡ ╨╛╤В╨▓╨╡╤З╨░╨╡╤В: `$RESPONSE`рдкрд░рд┐рдгрд╛рдо:

рдпрд╣рд╛рдБ рд╣рд╛рдореА рдЕрд░реНрдХреЛ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЪрд░ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдЫреМрдВ:RESPONSEред рдпрд╕рдорд╛ рд╕реЗрд╡рд╛ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рд╕рдорд╛рд╡реЗрд╢ рдЫред - daily.txt:
╨Ь╨░╨╗╤Л╤И, ╨┐╤А╨╕╨▓╨╡╤В! ╨г ╨╝╨╡╨╜╤П ╨▓╤Б╤С ╤Е╨╛╤А╨╛╤И╨╛, c╨╗╨╡╨╢╤Г ╨╖╨░ ╤Б╨╡╤А╨▓╨╕╤Б╨╛╨╝: "$MSMS_SERVICE_NAME" ╨║╨░╨╢╨┤╤Г╤О ╨╝╨╕╨╜╤Г╤В╨║╤Г... ╨Р ╨║╨░╨║ ╤Г ╤В╨╡╨▒╤П ╨┤╨╡╨╗╨░?рдкрд░рд┐рдгрд╛рдо:

рд▓рд┐рдкрд┐рд╣рд░реВрдХреЛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрдирдорд╛ рдЬрд╛рдФрдВред
рдЕрдиреБрдЧрдорди рд▓рд┐рдкрд┐
Monitoring.sh рдПрдХ рд╕рд╛рдзрд╛рд░рдг рд╕реНрд╡рдд: рдЦреЛрдЬ рдЧрд░реНрджрдЫ - рдпрд╕рд▓реЗ рд╕реЗрд╡рд╛ рдлреЛрд▓реНрдбрд░рдмрд╛рдЯ рд╕рдмреИ ini рдлрд╛рдЗрд▓рд╣рд░реВ рд▓рд┐рдиреНрдЫ рд░ рдкреНрд░рддреНрдпреЗрдХрдХреЛ рд▓рд╛рдЧрд┐ рдЬрд╛рдБрдЪ рд░ рдЕрд▓рд░реНрдЯрд╣рд░реВ рдкрдард╛рдЙрдирдХреЛ рд▓рд╛рдЧрд┐ рддрд░реНрдХрдХреЛ рд╕рд╛рде рдореБрдЦреНрдп рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдЧрд░реНрджрдЫ:
#!/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".
рд╣рд╛рд▓рдХреЛ рдорд┐рддрд┐ рд░ рд╕рдордп рджреЗрдЦрд╛рдЙрдиреБрд╣реЛрд╕реН рд░ ini рдлрд╛рдЗрд▓ рд▓реЛрдб рдЧрд░реНрдиреБрд╣реЛрд╕реНред
echo $(date '+%Y-%m-%d %H:%M:%S')
# load variables from .ini file:
. $2
рдЬрд╛рджреБрдИ рддрд╛рд░ . $2 рдирд┐рдпрдорд┐рдд рд╕реНрдХреНрд░рд┐рдкреНрдЯрдХреЛ рд░реВрдкрдорд╛ рджреЛрд╕реНрд░реЛ рдкреНрдпрд╛рд░рд╛рдорд┐рдЯрд░рдХреЛ рд░реВрдкрдорд╛ рдЗрдирдкреБрдЯрдорд╛ рдкрд╛рд╕ рдЧрд░рд┐рдПрдХреЛ 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
рдкрд╣рд┐рд▓реЗ рд╣рд╛рдореА рдЪрд░рдорд╛ рдЕрд╕рд╛рдЗрди рдЧрд░реНрдЫреМрдВ RESPONSE рдпреЛ рд╕реЗрд╡рд╛рдХреЛ рд▓рд╛рдЧрд┐ рдХрд░реНрд▓ рдЖрджреЗрд╢ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрдирдХреЛ рдкрд░рд┐рдгрд╛рдоред
╨Т╤Л╤А╨░╨╢╨╡╨╜╨╕╨╡ EXIT_CODE=$? рдЕрдиреНрддрд┐рдо рдЖрджреЗрд╢рдХреЛ рдирддрд┐рдЬрд╛рд▓рд╛рдИ рдЪрд░рдорд╛ рд░рд╛рдЦреНрдЫ, рдЕрд░реНрдерд╛рддреН рдШреБрдорд╛рдЙрд░реЛред рдпрджрд┐ рдЕрд▓рд░реНрдЯ рдкрдард╛рдЙрди рдЖрд╡рд╢реНрдпрдХ рдЫ рднрдиреЗ, рдЯреЗрдореНрдкреНрд▓реЗрдЯ рд╕рдореНрдмрдиреНрдзрд┐рдд рдлрд╛рдЗрд▓рдмрд╛рдЯ рдкрдврд┐рдиреНрдЫ рд░ рдкреНрд░рд╛рдкреНрддрдХрд░реНрддрд╛рд╣рд░реВрд▓рд╛рдИ рдкрдард╛рдЗрдиреНрдЫ send_message.
рдЕрдиреНрддрд┐рдо рдмреНрд▓рдХрд▓реЗ DAILY рдкреНрдпрд╛рд░рд╛рдорд┐рдЯрд░рд▓рд╛рдИ рдкреНрд░рд╢реЛрдзрди рдЧрд░реНрдЫ:
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 рдмреЛрдЯрд▓рд╛рдИ рд╕рдореНрдмреЛрдзрди рдЧрд░рд┐рдПрдХрд╛ рдирд╡реАрдирддрдо рд╕рдиреНрджреЗрд╢рд╣рд░реВ рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрди рдЯреЗрд▓рд┐рдЧреНрд░рд╛рдо API рд▓рд╛рдИ рдХрд▓ рдЧрд░реНрджрдЫ:
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рдирд┐рд╖реНрдХрд░реНрд╖рдорд╛
рддрд╕рд░реНрде, рддрдкрд╛рдИрдВ рддрдпрд╛рд░-рдирд┐рд░реНрдорд┐рдд рд╕реНрдХреНрд░рд┐рдкреНрдЯрд╣рд░реВ рд░ рд╕рдиреНрджреЗрд╢ рдЯреЗрдореНрдкреНрд▓реЗрдЯрд╣рд░реВ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ, рдХреЗрд╡рд▓ рдирд┐рдЧрд░рд╛рдиреА рдЧрд░рд┐рдПрдХрд╛ рд╕реЗрд╡рд╛рд╣рд░реВ рд░ рдЕрд▓рд░реНрдЯрд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рд╕реВрдЪреАрд╣рд░реВ рд╕реЗрдЯрдЕрдк рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ; рддрдкрд╛рдИрдВ рдмреЛрдЯрдХреЛ рд▓рд╛рдЧрд┐ рдирдпрд╛рдБ "рд╡реНрдпрдХреНрддрд┐рддреНрд╡" рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ; рд╡рд╛ рддрдкрд╛рдИрдВрд▓реЗ рдкреНрд░рд╕реНрддрд╛рд╡ рдЧрд░реЗрдХреЛ рдХреБрд░рд╛рдХреЛ рдЖрдзрд╛рд░рдорд╛ рдЖрдлреНрдиреИ рдирд┐рд░реНрдгрдп рд▓рд┐рди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫред
рдердк рд╡рд┐рдХрд╛рд╕рдХрд╛ рд▓рд╛рдЧрд┐ рд╡рд┐рдХрд▓реНрдкрд╣рд░реВрд▓реЗ рдмреЛрдЯрдорд╛ рдиреИ рдирд┐рдЧрд░рд╛рдиреА рдХрдиреНрдлрд┐рдЧрд░ рд░ рд╡реНрдпрд╡рд╕реНрдерд╛рдкрди рдЧрд░реНрдиреЗ рд╕реБрдЭрд╛рд╡ рджрд┐рдиреНрдЫ, рддрд░ рдпрд╣рд╛рдБ рддрдкрд╛рдИрдВ рдкрд╛рдЗрдерди рдмрд┐рдирд╛ рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдиред рдпрджрд┐ рдХрд╕реИрд▓реЗ рдореЗрд░реЛ рдЕрдЧрд╛рдбрд┐ рдпреЛ рдкрд╛рдЙрдБрдЫ рднрдиреЗ, рддрдкрд╛рдЗрдБрд▓рд╛рдИ рдкреБрд▓ рдЕрдиреБрд░реЛрдз рдХрд╣рд╛рдБ рдкреЗрд╢ рдЧрд░реНрдиреЗ рдерд╛рд╣рд╛ рдЫ :)
рд╕реНрд░реЛрдд: www.habr.com



