рдмрд╕ рд╕рд╛рдЗрдЯ рдХреА рд╕реНрдерд┐рддрд┐ рдХреА рдирд┐рдЧрд░рд╛рдиреА рдХреИрд╕реЗ рдХрд░реЗрдВ

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

, Unsplash.Com

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

  • рд╕реНрдХреНрд░реАрди рдкрд░ рдЙрд╕ рд╕рдордп рдХреЛ рджрд┐рдЦрд╛рддрд╛ рд╣реИ рдЬрд┐рд╕ рджреМрд░рд╛рди рдЖрдкрдХреА рд╕рд╛рдЗрдЯ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рдкреЗрдЬ рджреЗрддреА рд╣реИ,
  • рд╕рд╛рдЗрдЯ рдпрд╛ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреА рдзреАрдореА рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдкреНрд░реЛрдЧреНрд░рд╛рдо рдПрдХ рдлрд╝рд╛рдЗрд▓ ("рд▓реЙрдЧ", рдпрд╛ рд▓реЙрдЧ рдлрд╝рд╛рдЗрд▓) рдХреЗ рд▓рд┐рдП рдбреЗрдЯрд╛ рд▓рд┐рдЦрддрд╛ рд╣реИред рдпрд╣ рдбреЗрдЯрд╛ рд╕рдордп-рд╕рдордп рдкрд░ рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рдареАрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдордп-рд╕рдордп рдкрд░ рдЬрд╛рдБрдЪ рдХрд░рдиреЗ рдХреЗ рд▓рд╛рдпрдХ рд╣реИ рдЬрдм рд╡реЗ рдмрд╕ рд╢реБрд░реВ рдХрд░ рд░рд╣реЗ рд╣реИрдВред рдЗрд╕рд▓рд┐рдП, рд╣рдо рдЗрди рд▓реЙрдЧ рдХреЛ рддреНрд╡рд░рд┐рдд рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реНрдкрд╖реНрдЯ, рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд░реВрдк рдореЗрдВ рд░рд┐рдХреЙрд░реНрдб рдХрд░рдиреЗ рдХрд╛ рдзреНрдпрд╛рди рд░рдЦреЗрдВрдЧреЗред

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

рдореИрдВ рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдЬреИрд╕реЗ рд▓рд┐рдирдХреНрд╕ рдФрд░ рдПрдХ рдШрд░реЗрд▓реВ рдХрдВрдкреНрдпреВрдЯрд░ рдкрд░ рдЗрд╕рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рд╡рд░реНрдгрди рдХрд░реВрдВрдЧрд╛ред рд╕рдорд╛рди рд╕рд┐рджреНрдзрд╛рдВрддреЛрдВ рджреНрд╡рд╛рд░рд╛, рдпрд╣ рдЕрдиреНрдп рдкреНрд▓реЗрдЯрдлрд╛рд░реНрдореЛрдВ рдкрд░ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдФрд░ рдЬреЛ рд▓реЛрдЧ рдХреЗрд╡рд▓ рд▓рд┐рдирдХреНрд╕ рдХреА рд╕рдВрднрд╛рд╡рдирд╛рдУрдВ рдХреЛ рджреЗрдЦ рд░рд╣реЗ рд╣реИрдВ, рдЙрдирдХреЗ рд▓рд┐рдП рдПрдХ рдФрд░ рдЙрджрд╛рд╣рд░рдг рджрд┐рд▓рдЪрд╕реНрдк рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдЗрд╕рдХреА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдПрдХ рд╕рд░рд▓ рдФрд░ рд╢рдХреНрддрд┐рд╢рд╛рд▓реА рдЙрдкрдХрд░рдг рдХреНрдпрд╛ рд╣реИред

1. рд╕рдВрдЧрдарди рдкрд╣рд▓реЗ


рд╣рдо рдЗрд╕ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрд▓рдЧ рдлрд╝реЛрд▓реНрдбрд░ рдмрдирд╛рдПрдВрдЧреЗ рдФрд░ рдЗрд╕рдореЗрдВ 3 рдлрд╛рдЗрд▓реЗрдВ рдмрдирд╛рдПрдВрдЧреЗред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдореЗрд░реЗ рдкрд╛рд╕ рдпрд╣ рдлрд╝реЛрд▓реНрдбрд░ / рд╣реЛрдо / me / Progs / iNet / рдореЙрдирд┐рдЯрд░ рд╣реИ (рдпрд╣рд╛рдБ рдореБрдЭреЗ рдореЗрд░реЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХрд╛ рдирд╛рдо рд╣реИ, Progs / iNet рдЗрдВрдЯрд░рдиреЗрдЯ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдХрд╛рд░реНрдпрдХреНрд░рдореЛрдВ рдХреЗ рд▓рд┐рдП рдореЗрд░рд╛ рдлрд╝реЛрд▓реНрдбрд░ рд╣реИ, рдФрд░ рдореЙрдирд┐рдЯрд░ рдЗрд╕ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХрд╛ рдирд╛рдо рд╣реИ, рд╢рдмреНрдж рдореЙрдирд┐рдЯрд░ рд╕реЗ, рдЕрд░реНрдерд╛рдд рдЪреВрдВрдХрд┐ рдореИрдВ рдЗрд╕ рдХрдВрдкреНрдпреВрдЯрд░ рдХрд╛ рдПрдХрдорд╛рддреНрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╣реВрдВ, рдЗрд╕рд▓рд┐рдП рдореИрдВ рдбрд┐рд╕реНрдХ рдХреЗ рдПрдХ рдЕрд▓рдЧ рд╕реЗрдХреНрд╢рди рдореЗрдВ рдЕрдкрдиреЗ рдкрд░реНрд╕рдирд▓ рдлреЛрд▓реНрдбрд░ (/ рд╣реЛрдо) рдХреЗ рдмреАрдЪ рдРрд╕реА рдлрд╛рдЗрд▓реЗрдВ рд░рдЦрддрд╛ рд╣реВрдВ, рдЬреЛ рдореБрдЭреЗ рд╕рд┐рд╕реНрдЯрдо рдХреЛ рдлрд┐рд░ рд╕реЗ рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд░рдиреЗ рдкрд░ рдмрдЪрд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ)ред рдЗрд╕ рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рдлрд╝рд╛рдЗрд▓реЗрдВ рд╣реЛрдВрдЧреА:

  • README.txt - рдпрд╣рд╛рдВ рдПрдХ рд╡рд┐рд╡рд░рдг рд╣реИ (рд╕реНрдХреЗрд▓реЗрд░реЛрд╕рд┐рд╕ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ): рдпрд╣ рдХрд┐рд╕ рддрд░рд╣ рдХрд╛ рдХрд╛рд░реНрдпрдХреНрд░рдо рд╣реИ, рдЗрд╕рдХреА рдкреГрд╖реНрдарднреВрдорд┐ рдХреА рдЬрд╛рдирдХрд╛рд░реА, рдЖрджрд┐ред
  • mon.sh - рдПрдХ рдХрд╛рд░реНрдпрдХреНрд░рдо рд╣реЛрдЧрд╛ рдЬреЛ рд╕рд╛рдЗрдЯ рдХреЛ рдкреНрд░рджреВрд╖рд┐рдд рдХрд░рддрд╛ рд╣реИред
  • server.log - рдпрд╣рд╛рдВ рдпрд╣ рд╕рд╛рдЗрдЯ рд╕реНрдерд┐рддрд┐ рд╕рдВрдХреЗрддрдХ рд░рд┐рдХреЙрд░реНрдб рдХрд░реЗрдЧрд╛ред рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдпрд╣ рд╕рд╛рдЗрдЯ рдХреА рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреА рддрд┐рдерд┐, рд╕рдордп рдФрд░ рдЕрд╡рдзрд┐ рд╣реИ (рдпрджрд┐ рд╕рд░реНрд╡рд░ рд╣рдорд╛рд░реЗ рдЕрдиреБрд░реЛрдз рдХреЗ рд╕рд╛рде рддреНрд░реБрдЯрд┐ рдХреЗ рд╕рд╛рде рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХрд░рддрд╛ рд╣реИ, рддреЛ рдЕрддрд┐рд░рд┐рдХреНрдд рдЬрд╛рдирдХрд╛рд░реА)ред

(рд╕рдВрдкрд╛рджрди рдХреА рд╕реБрд╡рд┐рдзрд╛ рдХреЗ рд▓рд┐рдП рдФрд░, рдЕрдЧрд░ рдХреБрдЫ рднреА, рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдкреБрдирд░реНрд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛, рдЖрдк рдЗрд╕ рдлрд╝реЛрд▓реНрдбрд░ рдХреЛ рдЧрд┐рдЯ рд╕рдВрд╕реНрдХрд░рдг рдирд┐рдпрдВрддреНрд░рдг рдкреНрд░рдгрд╛рд▓реА рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ; рдпрд╣рд╛рдВ рдореИрдВ рдЗрд╕рдХрд╛ рд╡рд░реНрдгрди рдирд╣реАрдВ рдХрд░реВрдВрдЧрд╛)ред

2. рд▓рдЧрд╛рддрд╛рд░ рдФрд░ рдЖрд░рд╛рдо рд╕реЗ


рд╣рдо рдПрдХ рдирд┐рдпрдорд┐рдд рдЫреЛрдЯреЗ рдЕрдВрддрд░рд╛рд▓ рдХреЗ рд╕рд╛рде mon.sh рдлрд╝рд╛рдЗрд▓ рдЪрд▓рд╛рдПрдВрдЧреЗ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, 60 рд╕реЗрдХрдВрдбред рдореИрдВрдиреЗ рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рджреНрд╡рд╛рд░рд╛ рдкреНрд░рджрд╛рди рдХрд┐рдП рдЧрдП рдорд╛рдирдХ рдЯреВрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ (рдЕрдзрд┐рдХ рд╕рдЯреАрдХ рд░реВрдк рд╕реЗ, рдбреЗрд╕реНрдХрдЯреЙрдк рд╡рд╛рддрд╛рд╡рд░рдг)ред

рдореЗрд░рд╛ рдбреЗрд╕реНрдХрдЯреЙрдк рдкрд░реНрдпрд╛рд╡рд░рдг Xfce рд╣реИред рдпрд╣ рд▓рд┐рдирдХреНрд╕ рдХреЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рд▓реЛрдХрдкреНрд░рд┐рдп рд╡рд┐рдХрд▓реНрдкреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рд╣реИред рдореБрдЭреЗ Xfce рдкрд╕рдВрдж рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдЖрдкрдХреЛ рдкреВрд░реЗ рд╡рд╛рддрд╛рд╡рд░рдг рдХреЛ рд▓рдЧрднрдЧ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ - рдЬрд┐рд╕ рддрд░рд╣ рд╕реЗ рдЖрдкрдХреЛ рдкрд╕рдВрдж рд╣реИред рдЗрд╕реА рд╕рдордп, Xfce рджреЛ рдЕрдиреНрдп рдкреНрд░рд╕рд┐рджреНрдз рдкреНрд░рдгрд╛рд▓рд┐рдпреЛрдВ - рдЧреНрдиреЛрдо рдФрд░ рдХреЗрдбреАрдИ рд╕реЗ рдХреБрдЫ рдЕрдзрд┐рдХ рдХреЙрдореНрдкреИрдХреНрдЯ рдФрд░ рддреЗрдЬ рд╣реИред (рдЕрдиреНрдп рд╡рд┐рдХрд▓реНрдк рднреА рджрд┐рд▓рдЪрд╕реНрдк рд╣реИрдВ - рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, LXDE рд╡рд╛рддрд╛рд╡рд░рдг Xfce рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рддреЗрдЬ рдФрд░ рдЖрд╕рд╛рди рд╣реИ, рд▓реЗрдХрд┐рди рдЕрднреА рддрдХ рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдореЗрдВ рдЗрддрдирд╛ рд╕рдореГрджреНрдз рдирд╣реАрдВ рд╣реИ)ред

Xfce рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рд╣рдореЗрдВ рдЬрд┐рд╕ рдЯреВрд▓ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рд╡рд╣ рдЬреЗрдиреЗрд░рд┐рдХ рдореЙрдиреАрдЯрд░ рд╡рд░реНрдХрд┐рдВрдЧ рдкреИрдирд▓ рдХреЗ рд▓рд┐рдП рдкреНрд▓рдЧ-рдЗрди рд╣реИред рдЖрдорддреМрд░ рдкрд░ рдпрд╣ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╕реНрдерд╛рдкрд┐рдд рд╣реИ, рд▓реЗрдХрд┐рди рдпрджрд┐ рдирд╣реАрдВ, рддреЛ рдЗрдВрд╕реНрдЯреЙрд▓рд░ рдЗрд╕реЗ рдЖрд╕рд╛рдиреА рд╕реЗ рдвреВрдВрдв рд▓реЗрдЧрд╛: "рдЬреЗрдирдореЛрди" (рд╡рд┐рд╡рд░рдг: xfce4-genmon-plugin )ред рдпрд╣ рдПрдХ рдкреНрд▓рдЧрдЗрди рд╣реИ рдЬрд┐рд╕реЗ рдкреИрдирд▓ рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рд╕реЗрдЯрд┐рдВрдЧ рдореЗрдВ рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ: (1) рдХрдорд╛рдВрдб рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рд╣реИ рдФрд░ (2) рд╕реЗрдХрдВрдб рдореЗрдВ рдЗрд╕рдХреЗ рдирд┐рд╖реНрдкрд╛рджрди рдХреА рдЖрд╡реГрддреНрддрд┐ред рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдХрдорд╛рдВрдб:

/home/me/Progs/iNet/monitor/mon.sh

(рдпрд╛, рд╕рдордХрдХреНрд╖, ~ / рдкреНрд░реЛрдЧреНрд╕ / iNet / рдореЙрдирд┐рдЯрд░ / mon.sh)ред

Genmon

3. рдЬрдм рдХрд╛рд░реНрдпрдХреНрд░рдо рдЕрднреА рддрдХ рдирд╣реАрдВ рд╣реИ рддреЛ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рддреНрд░реБрдЯрд┐рдпрд╛рдВ рд╣реИрдВ


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

рдФрд░ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╣реА, рд╣рдо рдкрд╣рд▓реА рдкрдВрдХреНрддрд┐рдпрд╛рдБ рд▓рд┐рдЦрддреЗ рд╣реИрдВ:

#!/bin/bash # Monitor server responses (run this every 60 seconds): # info=$(curl -I -o /dev/stdout -w '%{time_total}' --url https://example.ru/ -m 9 -s) errr=$(echo $?) 

"Example.ru" рдХреЗ рдмрдЬрд╛рдп рдЕрдкрдиреА рд╕рд╛рдЗрдЯ рдХрд╛ рдирд╛рдо рдмрджрд▓реЗрдВ, рдЬрд┐рд╕ рд╕реНрдерд┐рддрд┐ рдХрд╛ рдЖрдк рдЕрд╡рд▓реЛрдХрди рдХрд░реЗрдВрдЧреЗред рдФрд░ рдЕрдЧрд░ рдпрд╣ http рдкрд░ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рддреЛ https рдХреЗ рдмрдЬрд╛рдп http рд▓рдЧрд╛рдПрдВред рд▓рд╛рдЗрди #! / рдмрд┐рди / bash рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рдпрд╣ рдмреИрд╢ рдкреНрд░реЛрдЧреНрд░рд╛рдо рджреНрд╡рд╛рд░рд╛ рд▓реЙрдиреНрдЪ рдХреА рдЬрд╛рдиреЗ рд╡рд╛рд▓реА рдПрдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╣реИ (рд▓рд┐рдирдХреНрд╕ рдкрд░ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмреИрд╢ рд╕рдВрднрд╡рддрдГ рд╕рдмрд╕реЗ рдЖрдо рд╣реИ)ред рдПрдХ рдФрд░ рд╢реЗрд▓ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдпрд╣ рдмреИрд╢ рдХреЗ рдмрдЬрд╛рдп рд╕рдВрдХреЗрдд рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рд╢реБрд░реБрдЖрдд рдореЗрдВ рдПрдХ рддреЗрдЬ рдХреЗ рд╕рд╛рде рд╢реЗрд╖ рд▓рд╛рдЗрдиреЗрдВ рдЯрд┐рдкреНрдкрдгреА рд╣реИрдВред рдХреЛрдб рдХреА рдкрд╣рд▓реА рдкрдВрдХреНрддрд┐ рд╕реНрд╡рдпрдВ рдЬрд╛рдирдХрд╛рд░реА = $ () рд╣реИ рдФрд░ рдЗрди рдХреЛрд╖реНрдардХреЛрдВ рдореЗрдВ рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рд╕рд╛рде рдХрд░реНрд▓ рдХрдорд╛рдВрдб рд╣реИред рдЗрд╕ рддрд░рд╣ рдХреЗ рдПрдХ рдирд┐рд░реНрдорд╛рдг - рдХреБрдЫ = $ (рдХреБрдЫ) - рдХрд╛ рдЕрд░реНрде рд╣реИ "рдХреЛрд╖реНрдардХ рдореЗрдВ рдХрдорд╛рдВрдб рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░реЗрдВ рдФрд░ рдкрд░рд┐рдгрд╛рдо рдХреЛ рдмрд╛рдИрдВ рдУрд░ рдЪрд░ рдкрд░ рдЕрд╕рд╛рдЗрди рдХрд░реЗрдВред" рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдореИрдВрдиреЗ рдЪрд░ рдХрд╛ рдирд╛рдо "рдЬрд╛рдирдХрд╛рд░реА" рд░рдЦрд╛ред рдХреЛрд╖реНрдардХ рдореЗрдВ рдпрд╣ рдЖрджреЗрд╢ - рдХрд░реНрд▓ ("рдХреБрд░реНрд▓" рдХреЗ рд░реВрдк рдореЗрдВ рдХреБрдЫ рджреНрд╡рд╛рд░рд╛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд╢рдмреНрджрдЬрд╛рд▓ рдореЗрдВ) - рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдкрддреЗ рдкрд░ рдиреЗрдЯрд╡рд░реНрдХ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрдиреБрд░реЛрдз рднреЗрдЬрддрд╛ рд╣реИ рдФрд░ рд╣рдореЗрдВ рд╕рд░реНрд╡рд░ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рджреЗрддрд╛ рд╣реИред (рдореЗрд░реЗ рдкрд░рд┐рдЪрд┐рдд рдиреЗ рд╕рдордЭрд╛рддреЗ рд╣реБрдП рдХрд╣рд╛: "рдХреНрд░реЗрди рдХрд┐рд╕ рдкреНрд░рдХрд╛рд░ рдЧреНрд░рд╕рддреА рд╣реИ - рдФрд░ рдЖрдХрд╛рд╢ рдореЗрдВ рдХреБрдЫ рдЕрдиреНрдп рдХреНрд░реЗрди рд╕реЗ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдорд┐рд▓рддреА рд╣реИред") рд╡рд┐рдХрд▓реНрдкреЛрдВ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ:

 curl -I -o /dev/stdout -w '%{time_total}' --url https://example.ru/ -m 9 -s 

-рдореИрдВ рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рд╣рдо рдкреВрд░реЗ рдкреГрд╖реНрда рдХрд╛ рдЕрдиреБрд░реЛрдз рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдХреЗрд╡рд▓ рдЗрд╕рдХреЗ "HTTP рд╣реЗрдбрд░" рд╣реИрдВред рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рд╕рд╛рдЗрдЯ рдХрд╛рдо рдХрд░ рд░рд╣реА рд╣реИ, рд╣рд░ рдмрд╛рд░ рд╣рдореЗрдВ рдкреВрд░реЗ рдкреГрд╖реНрда рдХреЗ рдкрд╛рда рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реЛрдЧреАред рдЪреВрдВрдХрд┐ рд╣рдо рдЕрдХреНрд╕рд░ рд╕рд╛рдЗрдЯ рдХреА рдЬрд╛рдВрдЪ рдХрд░реЗрдВрдЧреЗ, рдЗрд╕рд▓рд┐рдП рд╕рдВрдЪрд╛рд░рд┐рдд рдбреЗрдЯрд╛ рдХрд╛ рдЖрдХрд╛рд░ рдпрдерд╛рд╕рдВрднрд╡ рдЫреЛрдЯрд╛ рдмрдирд╛рдирд╛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИред рдпрд╣ рдЯреНрд░реИрдлрд╝рд┐рдХ, рдФрд░ рдмрд┐рдЬрд▓реА рдФрд░ рд╕рд░реНрд╡рд░ рдкрд░ рд▓реЛрдб - рдФрд░ рд╡рдиреНрдп рдЬреАрд╡рди рджреЛрдиреЛрдВ рдХреЛ рдмрдЪрд╛рддрд╛ рд╣реИред

рд╡реИрд╕реЗ, рд╣реЛрд╕реНрдЯрд┐рдВрдЧ рдкрд░ рдЖрдкрдХреЗ рдкрд╛рд╕ рдХрд┐рддрдирд╛ рдЯреНрд░реИрдлрд╝рд┐рдХ рд╣реИ (рдкреНрд░рддрд┐ рдорд╛рд╣ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ) рдЗрд╕ рдкрд░ рдзреНрдпрд╛рди рджреЗрдВред рдиреАрдЪреЗ рдЖрдк рджреЗрдЦреЗрдВрдЧреЗ рдХрд┐ рдХрд┐рддрдирд╛ рдбреЗрдЯрд╛ рд╕рдВрдЪрд░рд┐рдд рд╣реИ рдФрд░ рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдкрд░реНрдпрд╛рдкреНрдд рднрдВрдбрд╛рд░ рд╣реИ рддреЛ рдЖрдк рдЧрдгрдирд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ; рдпрджрд┐ рдХреБрдЫ рднреА рд╣реЛ, рддреЛ рд╕рд╛рдЗрдЯ рд╕рддреНрдпрд╛рдкрди рдЕрд╡рдзрд┐ рдХреЛ 5, 10 рдпрд╛ 30-60 рдорд┐рдирдЯ рддрдХ рдмрдврд╝рд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдпрджреНрдпрдкрд┐ рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рддрд╕реНрд╡реАрд░ рдЗрддрдиреА рдкреВрд░реА рдирд╣реАрдВ рд╣реЛрдЧреА - рдФрд░ рдорд╛рдореВрд▓реА рд░реБрдХрд╛рд╡рдЯреЛрдВ рдкрд░ рдХрд┐рд╕реА рдХрд╛ рдзреНрдпрд╛рди рдирд╣реАрдВ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ; рд▓реЗрдХрд┐рди, рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдХрд┐рд╕реА рд╕рд╛рдЗрдЯ рдХреА рдирд┐рдЧрд░рд╛рдиреА рдХрд░рддреЗ рд╕рдордп, рдПрдХ рдПрдХрд▓ рд░реБрдХрд╛рд╡рдЯ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рджреАрд░реНрдШрдХрд╛рд▓рд┐рдХ рд╕рдорд╕реНрдпрд╛рдУрдВ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдирд╛ рдЕрдзрд┐рдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реЛрддрд╛ рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЖрдк рдХреЙрд▓рд┐рдВрдЧ рдХрдВрдкреНрдпреВрдЯрд░ рдкрд░ рдХреМрди рд╕рд╛ рдЯреНрд░реИрдлрд╝рд┐рдХ рд▓реЗ рд╕рдХрддреЗ рд╣реИрдВ? рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ - рдЕрд╕реАрдорд┐рдд рдЯреНрд░реИрдлрд╝рд┐рдХ рд╡рд╛рд▓рд╛ рдПрдХ рдбреЗрд╕реНрдХрдЯреЙрдк рдкреАрд╕реА - рдпрд╣ рдЗрддрдирд╛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдирд╣реАрдВ рд╣реИ; рд▓реЗрдХрд┐рди рд╕реАрдорд╛ рдХреЗ рд╕рд╛рде рдореЛрдмрд╛рдЗрд▓ рдбрд┐рд╡рд╛рдЗрд╕ рдпрд╛ рдЯреИрд░рд┐рдл рдХреЗ рд▓рд┐рдП, рдпрд╣ рдЧрдгрдирд╛ рдХреЗ рд▓рд╛рдпрдХ рд╣реИ рдФрд░ рд╕рдВрднрд╡рддрдГ, рдирд┐рд░реАрдХреНрд╖рдг рдЕрдВрддрд░рд╛рд▓ рдХреЛ рдмрдврд╝рд╛рддрд╛ рд╣реИред

4. рдЪрд░рдг рдкрд╣рд▓реЗ рдЪрд░рдг рдХреЛ рдЫреЛрдбрд╝рдХрд░ рдЪрд░рдг рдХрд╛ рдЕрдиреБрд╕рд░рдг рдХрд░рддрд╛ рд╣реИ


рдЖрдЗрдП рдЖрдЧреЗ рдмрдврд╝рддреЗ рд╣реИрдВ: -o / dev / stdout рдХрд╛ рдЕрд░реНрде рд╣реИ "рдХреБрд░реНрд▓ рджреНрд╡рд╛рд░рд╛ рдкреНрд░рд╛рдкреНрдд рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЛ рд╕рд░реНрд╡рд░ рд╕реЗ рдРрд╕реА рдФрд░ рдРрд╕реА рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рднреЗрдЬреЗрдВред" рдФрд░ рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдпрд╣ рдбрд┐рд╕реНрдХ рдкрд░ рдПрдХ рдлрд╝рд╛рдЗрд▓ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди / dev / stdout - рдорд╛рдирдХ рдЖрдЙрдЯрдкреБрдЯ рдбрд┐рд╡рд╛рдЗрд╕ рд╣реИред рдЖрдорддреМрд░ рдкрд░ "рдорд╛рдирдХ рдЖрдЙрдЯрдкреБрдЯ рдбрд┐рд╡рд╛рдЗрд╕" рд╣рдорд╛рд░реА рд╕реНрдХреНрд░реАрди рд╣реИ рдЬрд╣рд╛рдВ рд╣рдо рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреЗ рдкрд░рд┐рдгрд╛рдо рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВред рд▓реЗрдХрд┐рди рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ, рд╣рдо рдЕрдХреНрд╕рд░ рдЗрд╕ "рдорд╛рдирдХ рдЖрдЙрдЯрдкреБрдЯ" рдХреЛ рдЖрдЧреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрджреЗрд╢рд┐рдд рдХрд░рддреЗ рд╣реИрдВ (рдЕрдм - рдЗрд╕реЗ рдЬрд╛рдирдХрд╛рд░реА рдЪрд░ рдкрд░ рд╕рд╣реЗрдЬреЗрдВ)ред рдФрд░ рдлрд┐рд░ рд╣рдо, рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рдмрд╛рд░, рдпрд╛ рддреЛ рдЯреАрдореЛрдВ рдХреЗ рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреЛ рдЪрд░ рдореЗрдВ рднреЗрдЬреЗрдВрдЧреЗ, рдпрд╛ рдЙрдиреНрд╣реЗрдВ рдЕрдЧрд▓реА рдЯреАрдореЛрдВ рдХреЛ рдПрдХ рд╢реНрд░реГрдВрдЦрд▓рд╛ рдореЗрдВ рдкрд╛рд╕ рдХрд░реЗрдВрдЧреЗред рдХрдорд╛рдВрдб рд╕реЗ рдЪреЗрди рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдкрд╛рдЗрдк рдСрдкрд░реЗрдЯрд░ ("рдкрд╛рдЗрдк") рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ, рдПрдХ рдКрд░реНрдзреНрд╡рд╛рдзрд░ рдмрд╛рд░ ("|") рдХреЗ рд░реВрдк рдореЗрдВ рдкреНрд░рджрд░реНрд╢рд┐рдд рд╣реЛрддрд╛ рд╣реИред

-w '% {time_total} eyayu' : рдпрд╣рд╛рдБ -w рдХрд╛ рдЕрд░реНрде рд╣реИ "рдорд╛рдирдХ рдЖрдЙрдЯрдкреБрдЯ рдбрд┐рд╡рд╛рдЗрд╕ рдХреЗ рд▓рд┐рдП рдЗрд╕ рддрд░рд╣ рдХреА рдФрд░ рдЕрддрд┐рд░рд┐рдХреНрдд рдЬрд╛рдирдХрд╛рд░реА рджреЗрдирд╛ред" рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ, рд╣рдо time_total рдореЗрдВ рд░реБрдЪрд┐ рд░рдЦрддреЗ рд╣реИрдВ - рд╣рдорд╛рд░реЗ рдФрд░ рд╕рд░реНрд╡рд░ рдХреЗ рдмреАрдЪ рдЕрдиреБрд░реЛрдз-рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рд╕рдВрдЪрд░рдг рдореЗрдВ рдХрд┐рддрдирд╛ рд╕рдордп рд▓рдЧрд╛ред рдЖрдк рд╢рд╛рдпрдж рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рдПрдХ рд╕рд░реНрд╡рд░ рдХрд╛ рдЕрдиреБрд░реЛрдз рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рд░рд▓ рдЖрджреЗрд╢ рд╣реИ, рдкрд┐рдВрдЧ, рдЬрд▓реНрджреА рд╕реЗ рдФрд░ рдЙрд╕ рд╕реЗ рдПрдХ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдкреЛрдВрдЧред рд▓реЗрдХрд┐рди рдкрд┐рдВрдЧ рдХреЗрд╡рд▓ рдЬрд╛рдБрдЪрддрд╛ рд╣реИ рдХрд┐ рд╣реЛрд╕реНрдЯрд┐рдВрдЧ рд╕рд░реНрд╡рд░ рдЬреАрд╡рд┐рдд рд╣реИ, рдФрд░ рд╕рд┐рдЧреНрдирд▓ рдЗрддрдиреЗ рд╕рдордп рдХреЗ рд▓рд┐рдП рдЖрдЧреЗ рдФрд░ рдкреАрдЫреЗ рдЪрд▓рд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣ рдкрд╣реБрдВрдЪ рдХреА рдЕрдзрд┐рдХрддрдо рдЧрддрд┐ рдХреЛ рджрд░реНрд╢рд╛рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдлрд┐рд░ рднреА рд╣рдореЗрдВ рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдХреБрдЫ рдирд╣реАрдВ рдмрддрд╛рддрд╛ рд╣реИ рдХрд┐ рд╕рд╛рдЗрдЯ рдХрд┐рддрдиреА рдЬрд▓реНрджреА рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕рд╛рдордЧреНрд░реА рдХрд╛ рдЙрддреНрдкрд╛рджрди рдХрд░рддреА рд╣реИред рдкрд┐рдВрдЧ рдЬрд▓реНрджреА рд╕реЗ рдХрд╛рдо рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рдФрд░ рдПрдХ рд╣реА рд╕рдордп рдореЗрдВ, рд╕рд╛рдЗрдЯ рдзреАрдорд╛ рд╣реЛ рд╕рдХрддреА рд╣реИ рдпрд╛ рдмрд┐рд▓реНрдХреБрд▓ рдХрд╛рдо рдирд╣реАрдВ рдХрд░ рд╕рдХрддреА рд╣реИ - рдЙрдЪреНрдЪ рднрд╛рд░ рдпрд╛ рдХреБрдЫ рдЖрдВрддрд░рд┐рдХ рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЗ рдХрд╛рд░рдгред рдЗрд╕рд▓рд┐рдП, рд╣рдо рдмрд┐рд▓реНрдХреБрд▓ рдХреБрд░реНрд▓рд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕рдордп рдорд┐рд▓рддрд╛ рд╣реИ рдЬрдм рд╕рд░реНрд╡рд░ рд╣рдорд╛рд░реА рд╕рд╛рдордЧреНрд░реА рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИред

(рдФрд░ рдЗрд╕ рдкреИрд░рд╛рдореАрдЯрд░ рд╕реЗ рдЖрдк рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рд╕рд░реНрд╡рд░ рдЖрдкрдХреЗ рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдХреБрд╢рд▓рддрд╛ рд╕реЗ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИ рдпрд╛ рдирд╣реАрдВ, рдХреНрдпрд╛ рдЗрд╕рдХрд╛ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рд╕рдордп рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИред рдХреНрдпрд╛ рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рд╣реИ - рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдХрдИ рд╣реЛрд╕реНрдЯрд┐рдВрдЧ рд╕рд╛рдЗрдЯреЛрдВ рдкрд░ рдореЗрд░реА рд╕рд╛рдЗрдЯреЗрдВ рд╕рдордп рдХреЗ рд╕рд╛рде рдзреАрдореА рд╣реЛ рдЧрдИ рд╣реИрдВ, рдФрд░ рдореБрдЭреЗ рджреВрд╕рд░реА рд╣реЛрд╕реНрдЯрд┐рдВрдЧ рдХреА рддрд▓рд╛рд╢ рдХрд░рдиреА рдереА)

рдХреНрдпрд╛ рдЖрдкрдиреЗ {time_total} рдХреЗ рдмрд╛рдж рдЕрдЬреАрдм рдЕрдХреНрд╖рд░реЛрдВ "рдЖрдИрдпреВ" рдкрд░ рдзреНрдпрд╛рди рджрд┐рдпрд╛ рд╣реИ? рдореИрдВрдиреЗ рдЙрдиреНрд╣реЗрдВ рдПрдХ рдЕрджреНрд╡рд┐рддреАрдп рд▓реЗрдмрд▓ рдХреЗ рд░реВрдк рдореЗрдВ рдЬреЛрдбрд╝рд╛, рдЬреЛ рд╢рд╛рдпрдж рд╕рд░реНрд╡рд░ рд╕реЗ рд╣рдореЗрдВ рднреЗрдЬреЗ рдЧрдП рд╣реЗрдбрд░ рдореЗрдВ рдирд╣реАрдВ рд╣реЛрдЧрд╛ (рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпрд╣ рдорд╛рдирддреЗ рд╣реБрдП рдХрд┐ рдЖрдкрдХреЗ рдХрд╛рд░реНрдпрдХреНрд░рдореЛрдВ рдХреЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЦрд░рд╛рдм рд╣реЛрдВрдЧреЗ рдФрд░ рд░рд╕рд╛рддрд▓ рдХреЗ рд▓рд┐рдП рд╕рдбрд╝рдХ рдирд╣реАрдВ рд╣реЛрдЧрд╛ред рдРрд╕рд╛ рдордд рдХрд░реЛ! .. рдпрд╛, рдЬрдм рдЖрдк рдХрд░рддреЗ рд╣реИрдВ!) рдХрдо рд╕реЗ рдХрдо рдЖрдк рдкрд░ рд╢рд░реНрдо рдЖрддреА рд╣реИ)ред рдЗрд╕ рд▓реЗрдмрд▓ рдХреЗ рджреНрд╡рд╛рд░рд╛ (рдореБрдЭреЗ рдЖрд╢рд╛ рд╣реИ) рдлрд┐рд░ рд╣рдо рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рдЙрд╕ рдЯреБрдХрдбрд╝реЗ рдХреЛ рдЖрд╕рд╛рдиреА рд╕реЗ рдЦреАрдВрдЪ рд╕рдХрддреЗ рд╣реИрдВ рдЬрд┐рд╕реЗ рд╣рдореЗрдВ рд╕реВрдЪрдирд╛ рдЪрд░ рдореЗрдВ рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреЗ рдПрдХ рдкреВрд░реЗ рдЧреБрдЪреНрдЫрд╛ рд╕реЗ рдЪрд╛рд╣рд┐рдПред рддреЛ, рдХрд░реНрд▓ -w '% {time_total} ehayu' (рд╢реЗрд╖ рдкреИрд░рд╛рдореАрдЯрд░ рд╕рд╣реА рд╣реЛрдиреЗ рдХреЗ рд╕рд╛рде) рд╣рдореЗрдВ рдХреБрдЫ рджреЗрдЧрд╛:

0.215238eyayu

рдпрд╣ рдЙрд╕ рд╕реЗрдХрдВрдб рдХреА рд╕рдВрдЦреНрдпрд╛ рд╣реИ рдЬреЛ рдЗрд╕ рд╕рд╛рдЗрдЯ рдХреЛ рдПрдХреНрд╕реЗрд╕ рдХрд░рдиреЗ рдореЗрдВ рд▓рд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рд╕рд╛рде рд╣реА рд╣рдорд╛рд░рд╛ рд▓реЗрдмрд▓ред (рдЗрд╕ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЬрд╛рдирдХрд╛рд░реА рдЪрд░ рдореЗрдВ, рд╣рдо рдореБрдЦреНрдп рд░реВрдк рд╕реЗ "рд╕реНрдерд┐рддрд┐ рдХреЛрдб" рдореЗрдВ рд░реБрдЪрд┐ рд░рдЦреЗрдВрдЧреЗ - рд╕реНрдерд┐рддрд┐ рдХреЛрдб, рдпрд╛, рдмрд╕, рд╕рд░реНрд╡рд░ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЛрдбред рдЖрдорддреМрд░ рдкрд░, рдЬрдм рд╕рд░реНрд╡рд░ рдЕрдиреБрд░реЛрдзрд┐рдд рдлрд╝рд╛рдЗрд▓ рдЬрд╛рд░реА рдХрд░рддрд╛ рд╣реИ, рддреЛ рдХреЛрдб "200" рд╣реЛрддрд╛ рд╣реИред рдЬрдм рдкреГрд╖реНрда рдирд╣реАрдВ рдорд┐рд▓рддрд╛ рд╣реИред , рдпрд╣ рдкреНрд░рд╕рд┐рджреНрдз 404 рд╣реИред рдЬрдм рд╕рд░реНрд╡рд░ рдкрд░ рддреНрд░реБрдЯрд┐рдпрд╛рдВ рд╣реЛрддреА рд╣реИрдВ, рддреЛ рдпрд╣ рдЕрдХреНрд╕рд░ 500 рдХреЗ рд╕рд╛рде рдХреБрдЫ рд╣реЛрддрд╛ рд╣реИ)ред

404

5. рд░рдЪрдирд╛рддреНрдордХрддрд╛ - рдЖрддреНрдо-рдкрд░реАрдХреНрд╖рдг рдХреЗ рдкрд┐рддрд╛


рд╣рдорд╛рд░реЗ рдХрд░реНрд▓ рдХреЗ рд╢реЗрд╖ рдкреИрд░рд╛рдореАрдЯрд░ рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рд╣реИрдВ:

 --url https://example.ru/ -m 9 -s 

рдЗрд╕рдХрд╛ рдХреНрдпрд╛ рдЕрд░реНрде рд╣реИ: рдЗрд╕ рддрд░рд╣ рдХреЗ рдФрд░ рдЗрд╕ рддрд░рд╣ рдХреЗ рдПрдХ рдкрддреЗ рдХрд╛ рдЕрдиреБрд░реЛрдз рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП; рдЕрдзрд┐рдХрддрдо рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рд╕рдордп 9 рд╕реЗрдХрдВрдб рд╣реИ (рдЖрдк рдХрдо рд╕реЗрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдХреНрдпреЛрдВрдХрд┐ рдПрдХ рджреБрд░реНрд▓рдн рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╕рд╛рдЗрдЯ рд╕реЗ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЗ рд▓рд┐рдП рдЗрддрдиреЗ рд▓рдВрдмреЗ рд╕рдордп рддрдХ рдЗрдВрддрдЬрд╛рд░ рдХрд░реЗрдЧрд╛, рд╡рд╣ рдЬрд▓реНрджреА рд╕реЗ рд╕рд╛рдЗрдЯ рдХреЛ рдХрд╛рдо рдирд╣реАрдВ рдХрд░реЗрдЧрд╛)ред рдФрд░ "-s" рдХрд╛ рдЕрд░реНрде рд╣реИ рдЪреБрдк, рдпрд╛рдиреА рдХрд░реНрд▓ рд╣рдореЗрдВ рдЕрдирд╛рд╡рд╢реНрдпрдХ рд╡рд┐рд╡рд░рдг рдирд╣реАрдВ рдмрддрд╛рдПрдЧрд╛ред

рд╡реИрд╕реЗ, рдЖрдорддреМрд░ рдкрд░ рдбреЗрд╕реНрдХрдЯреЙрдк рдкреИрдирд▓ рдкрд░ рдмрд╣реБрдд рдЕрдзрд┐рдХ рдЬрдЧрд╣ рдирд╣реАрдВ рд╣реЛрддреА рд╣реИ, рдЗрд╕рд▓рд┐рдП, рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рдбреАрдмрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЯрд░реНрдорд┐рдирд▓ рд╕реЗ рдЗрд╕реЗ рдЪрд▓рд╛рдирд╛ рдмреЗрд╣рддрд░ рд╣реЛрддрд╛ рд╣реИ (рдЗрд╕рдХреЗ рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ ./mon.sh рдХрдорд╛рдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ)ред рдФрд░ рд╣рдорд╛рд░реЗ рдкреИрдирд▓ рдкреНрд▓рдЧрдЗрди рдХреЗ рд▓рд┐рдП, рд╣рдо 3600 рд╕реЗрдХрдВрдб - рдХрдорд╛рдВрдб рдХреЗ рд▓реЙрдиреНрдЪ рдХреЗ рдмреАрдЪ рдПрдХ рд▓рдВрдмрд╛ рд╡рд┐рд░рд╛рдо рд▓рдЧрд╛ рджреЗрдВрдЧреЗред

рдбрд┐рдмрдЧрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП, рд╣рдо рдЗрд╕ рдХрд░реНрд▓ рдХреЛ рдмреНрд░реИрдХреЗрдЯреНрд╕ рдХреЛ рдлреНрд░реЗрдо рдХрд┐рдП рдмрд┐рдирд╛ рдЪрд▓рд╛ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдпрд╣ рдХреНрдпрд╛ рдкреИрджрд╛ рдХрд░рддрд╛ рд╣реИред (рдЗрд╕рд╕реЗ рдФрд░ рдпрд╛рддрд╛рдпрд╛рдд рдЦрдкрдд рдХреА рдЧрдгрдирд╛ рдХрд░реЗрдВ)ред рд╣рдо рдореБрдЦреНрдп рд░реВрдк рд╕реЗ HTTP рд╣реЗрдбрд░ рдХрд╛ рдПрдХ рд╕реЗрдЯ рджреЗрдЦреЗрдВрдЧреЗ, рдЬреИрд╕реЗ:

 HTTP/1.1 302 Found Server: QRATOR Date: Sun, 11 Feb 2019 08:06:57 GMT Content-Type: text/html; charset=UTF-8 Connection: keep-alive Keep-Alive: timeout=15 X-Powered-By: PHP/7.2.14-1+ubuntu16.04.1+deb.sury.org+1 Location: https://habr.com/ru/ X-Frame-Options: SAMEORIGIN X-Content-Type-Options: nosniff Strict-Transport-Security: max-age=63072000; includeSubDomains; preload X-Cache-Status: HIT 0.033113 

рдпрд╣рд╛рдБ рдкрд╣рд▓реА рдкрдВрдХреНрддрд┐ рд╣рдо "HTTP / 1.1 302 рдорд┐рд▓рд╛" рджреЗрдЦрддреЗ рд╣реИрдВ - рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╣реИ: рдбреЗрдЯрд╛ рд╕реНрдерд╛рдирд╛рдВрддрд░рдг рдкреНрд░реЛрдЯреЛрдХреЙрд▓ "HTTP / 1.1" рд╣реИ, рд╕рд░реНрд╡рд░ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЛрдб "302 рдорд┐рд▓рд╛" рд╣реИред рджреВрд╕рд░реЗ рдкреГрд╖реНрда рдХрд╛ рдЕрдиреБрд░реЛрдз рдХрд░рддреЗ рд╕рдордп, рдпрд╣ рдХреЛрдб "301 рдореВрд╡реНрдб рдкрд░рдорд╛рдиреЗрдВрдЯрд▓реА" рдЖрджрд┐ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдПрдХ рдФрд░ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, рдореЗрд░реЗ рд╕рд░реНрд╡рд░ рдХреА рд╕рд╛рдорд╛рдиреНрдп рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ "HTTP / 2 200" рд╣реИред рдпрджрд┐ рдЖрдкрдХрд╛ рд╕рд░реНрд╡рд░ рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХрд░рддрд╛ рд╣реИ, рддреЛ рдЗрд╕ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ "HTTP / 2 200" рдХреЗ рдмрдЬрд╛рдп рдЗрд╕ рдЙрддреНрддрд░ рдХреЛ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВред

рдЕрдВрддрд┐рдо рдкрдВрдХреНрддрд┐, рдЬреИрд╕рд╛ рдХрд┐ рд╣рдо рджреЗрдЦрддреЗ рд╣реИрдВ, рдХреБрд░реНрд▓ рдмрд╛рд╣рд░ рджреЗрддрд╛ рд╣реИ, рдХрд┐рддрдиреЗ рд╕реЗрдХрдВрдб рдореЗрдВ рд╣рдореЗрдВ рдЕрдкрдиреЗ рдЕрд╕рд╛рдЗрди рдХрд┐рдП рдЧрдП рд▓реЗрдмрд▓ рдХреЗ рд╕рд╛рде рд╕рд░реНрд╡рд░ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдорд┐рд▓реАред

рджрд┐рд▓рдЪрд╕реНрдк: рд╣рдо рд╕рд╛рдЗрдЯ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рддрд╛рдХрд┐ рдпрд╣ рд╣рдорд╛рд░реЗ рдЕрдиреБрд░реЛрдзреЛрдВ рдкрд░ рд░рд┐рдкреЛрд░реНрдЯ рдХрд░реЗ (рдФрд░ рдХреЗрд╡рд▓ рдЙрди рдкрд░!) рдЕрдкрдиреЗ рд░рд╛рдЬреНрдп рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрддрд┐рд░рд┐рдХреНрдд рдЬрд╛рдирдХрд╛рд░реА - рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, "рд╣реЛрдордореЗрдб" HTTP рд╣реЗрдбрд░ рдореЗрдВред рдорд╛рди рд▓реАрдЬрд┐рдП рдХрд┐ рд╕рд╛рдЗрдЯ рдХреЗ рдкреНрд░реЛрд╕реЗрд╕рд░реЛрдВ рдкрд░ рд▓реЛрдб рдХреНрдпрд╛ рд╣реИ, рдЗрд╕рдореЗрдВ рдХрд┐рддрдиреА рдореЗрдореЛрд░реА рдФрд░ рдбрд┐рд╕реНрдХ рд╕реНрдерд╛рди рд╣реИ рдФрд░ рдбреЗрдЯрд╛рдмреЗрд╕ рдХрд┐рддрдиреА рддреЗрдЬреА рд╕реЗ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИред (рдмреЗрд╢рдХ, рдЗрд╕рдХреЗ рд▓рд┐рдП рд╕рд╛рдЗрдЯ рдХреЛ рдЧрддрд┐рд╢реАрд▓ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рдЕрд░реНрдерд╛рдд рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЛ рдкреНрд░реЛрдЧреНрд░рд╛рдо рджреНрд╡рд╛рд░рд╛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП - PHP, Node.JS, рдЖрджрд┐ рдореЗрдВред рдПрдХ рдЕрдиреНрдп рд╡рд┐рдХрд▓реНрдк рд╕рд░реНрд╡рд░ рдкрд░ рд╡рд┐рд╢реЗрд╖ рд╕реЙрдлрд╝реНрдЯрд╡реЗрдпрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реИ)ред рд▓реЗрдХрд┐рди рд╢рд╛рдпрдж рд╣рдореЗрдВ рдЕрднреА рддрдХ рдЗрди рд╡рд┐рд╡рд░рдгреЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред рдЗрд╕ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рдЙрджреНрджреЗрд╢реНрдп рд╕рд╛рдЗрдЯ рдХреЗ рд╕рдордЧреНрд░ рдкреНрд░рджрд░реНрд╢рди рдХреА рдирд┐рдпрдорд┐рдд рдирд┐рдЧрд░рд╛рдиреА рдХрд░рдирд╛ рд╣реИред рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ - рд╣рдо рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЕрдиреНрдп рддрд░реАрдХреЛрдВ рд╕реЗ рдирд┐рджрд╛рди рдХреЗ рд╕рд╛рде рд╕реМрджрд╛ рдХрд░реЗрдВрдЧреЗред рдЗрд╕рд▓рд┐рдП, рдЕрдм рд╣рдо рд╕рдмрд╕реЗ рд╕рд░рд▓ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд▓рд┐рдЦ рд░рд╣реЗ рд╣реИрдВ рдЬреЛ рдХрд┐рд╕реА рднреА рд╕рд╛рдЗрдЯ рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░реЗрдЧреА, рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдПрдХ рд╕реНрдерд┐рд░ рднреА, рдФрд░ рд╕рд░реНрд╡рд░ рдкрд░ рдЕрддрд┐рд░рд┐рдХреНрдд рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреЗ рдмрд┐рдирд╛ред рднрд╡рд┐рд╖реНрдп рдореЗрдВ, рдпрджрд┐ рд╡рд╛рдВрдЫрд┐рдд рд╣реИ, рддреЛ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреА рдХреНрд╖рдорддрд╛рдУрдВ рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реЛрдЧрд╛; рдЗрд╕ рдмреАрдЪ, рдЖрдзрд╛рд░ рдмрдирд╛рдУред

рд╕реНрдЯреНрд░рд┐рдВрдЧ рдЗрд░реНрд░ = = $ (рдЗрдХреЛ $?) рдХрд╛ рдЕрд░реНрде рд╣реИ: рдЗрд░реЛ $ рдЬ рдХреЗ рдкрд░рд┐рдгрд╛рдо рдХреЛ "рдЧреВрдВрдЬ $?" рдХрд╛ рдкрд░рд┐рдгрд╛рдо рд▓рд┐рдЦреЗрдВред рдЗрдХреЛ рдХрдорд╛рдВрдб рдХрд╛ рдЕрд░реНрде рд╣реИ рдорд╛рдирдХ рдЖрдЙрдЯрдкреБрдЯ рдбрд┐рд╡рд╛рдЗрд╕ (рд╕реНрдЯрдбрдЖрдЙрдЯ) рдкрд░ рдХреБрдЫ рдЯреЗрдХреНрд╕реНрдЯ рдкреНрд░рд┐рдВрдЯ рдХрд░рдирд╛, рдФрд░ рдЕрдХреНрд╖рд░ "$?" - рдпрд╣ рд╡рд░реНрддрдорд╛рди рддреНрд░реБрдЯрд┐ рдХреЛрдб (рдкрд┐рдЫрд▓реА рдХрдорд╛рдВрдб рд╕реЗ рд╢реЗрд╖) рд╣реИред рдЗрд╕рд▓рд┐рдП, рдпрджрд┐ рд╣рдорд╛рд░рд╛ рдХрд░реНрд▓ рдЕрдЪрд╛рдирдХ рд╕рд░реНрд╡рд░ рддрдХ рдирд╣реАрдВ рдкрд╣реБрдВрдЪ рд╕рдХрддрд╛ рд╣реИ, рддреЛ рдпрд╣ рдПрдХ рдЧреИрд░-рд╢реВрдиреНрдп рддреНрд░реБрдЯрд┐ рдХреЛрдб рджреЗрдЧрд╛, рдФрд░ рд╣рдо рдЗрд░рд░ рдЪрд░ рдХреА рдЬрд╛рдВрдЪ рдХрд░рдХреЗ рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдкрддрд╛ рд▓рдЧрд╛рдПрдВрдЧреЗред

6. рд╢реАрдШреНрд░рддрд╛


рдпрд╣рд╛рдВ рдореИрдВ рдкрд╛рда рдХреЛ рдФрд░ рдЕрдзрд┐рдХ рд░реЛрдЪрдХ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рддрдХрдиреАрдХреА рдорд╛рдорд▓реЛрдВ рд╕реЗ рдПрдХ рдЫреЛрдЯрд╛ рд╕рд╛ рд╡рд┐рд╖рдпрд╛рдВрддрд░ рдмрдирд╛рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред (рдпрджрд┐ рдЖрдк рд╕рд╣рдордд рдирд╣реАрдВ рд╣реИрдВ, рддреЛ рддреАрди рдкреИрд░рд╛рдЧреНрд░рд╛рдл рдЫреЛрдбрд╝реЗрдВ)ред рдореИрдВ рдХрд╣реВрдВрдЧрд╛ рдХрд┐ рд╕рднреА рдорд╛рдирд╡реАрдп рдЧрддрд┐рд╡рд┐рдзрд┐ рдЕрдкрдиреЗ рддрд░реАрдХреЗ рд╕реЗ рдЙрдЪрд┐рдд рд╣реИрдВред рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдЬрдм рдХреЛрдИ рд╡реНрдпрдХреНрддрд┐ рдЬрд╛рдирдмреВрдЭрдХрд░ рдЕрдкрдиреЗ рдорд╛рдереЗ рдХреЛ рдПрдХ рджреАрд╡рд╛рд░ рдХреЗ рдЦрд┐рд▓рд╛рдл (рдпрд╛ рдлрд░реНрд╢ рдкрд░ ... рдХреАрдмреЛрд░реНрдб рдкрд░ ...) рдорд╛рд░рддрд╛ рд╣реИ, рддреЛ рдЗрд╕рдХреА рдЕрдкрдиреА рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрд╣ рднрд╛рд╡рдирд╛рддреНрдордХ рдКрд░реНрдЬрд╛ рдХреЗ рд▓рд┐рдП рдПрдХ рдЖрдЙрдЯрд▓реЗрдЯ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ - рд╢рд╛рдпрдж "рд╕рд░реНрд╡рд╢реНрд░реЗрд╖реНрда" рддрд░реАрдХреЗ рд╕реЗ рдирд╣реАрдВ, рд▓реЗрдХрд┐рди рдпрд╣ рдХреИрд╕реЗ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред (рд╣рд╛рдВ, рдФрд░ "рд╕рд░реНрд╡рд╢реНрд░реЗрд╖реНрда" рдХреА рдмрд╣реБрдд рдЕрд╡рдзрд╛рд░рдгрд╛ рдЗрд╕ рдЬрдЧрд╣ рдореЗрдВ рдЗрд╕ рдХреНрд╖рдг рдХреЗ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕реЗ рд╡реНрдпрд░реНрде рд╣реИ - рдХреНрдпреЛрдВрдХрд┐ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рдФрд░ рд╕рдмрд╕реЗ рдЦрд░рд╛рдм рдХреБрдЫ рдФрд░ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдХреЗрд╡рд▓ рд╕рдВрднрд╡ рд╣реИ)ред

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

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

рдЗрд╕рд▓рд┐рдП, рдЕрдиреБрд░реЛрдз рдХреЛ рдкреВрд░рд╛ рдХрд░рдиреЗ рдкрд░, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рджреЛ рдЯреБрдХрдбрд╝реЗ рд╣реИрдВ:

  • рд╕рд░реНрд╡рд░ рд╕реЗ рдЬрд╛рдирдХрд╛рд░реА рдХрд╛ рдореБрдЦреНрдп рдмреНрд▓реЙрдХ (рдпрджрд┐, рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ, рд╕рд░реНрд╡рд░ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдЖрдИ), рддреЛ рд╣рдордиреЗ рдЗрд╕реЗ рдЬрд╛рдирдХрд╛рд░реА рдЪрд░ рдореЗрдВ рд▓рд┐рдЦрд╛;
  • рдХрд░реНрд▓ рдХрдорд╛рдВрдб рдПрд░рд░ рдХреЛрдб (0, рдЕрдЧрд░ рдХреЛрдИ рддреНрд░реБрдЯрд┐ рдирд╣реАрдВ рд╣реИ) - рдЗрд░реНрд░ рдЪрд░ рдХреЗ рд▓рд┐рдП рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рд╣реИред

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

 code=$(echo "$info" | grep HTTP | grep -v 'HTTP/2 200') date=$(echo "$info" | grep -i 'date:') dlay=$(echo "$info" | grep  | sed -e 's///') 

рдЗрдирдореЗрдВ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдкрдВрдХреНрддрд┐ рдореЗрдВ рд╣рдо рдПрдХ рдФрд░ рдЪрд░ рд▓рд┐рдЦрддреЗ рд╣реИрдВ - рд╣рдо рдХрдорд╛рдВрдб рдХреЗ рдирд┐рд╖реНрдкрд╛рджрди рдХреЗ рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреЛ рдмрдЪрд╛рддреЗ рд╣реИрдВред рдФрд░ рдкреНрд░рддреНрдпреЗрдХ рдорд╛рдорд▓реЗ рдореЗрдВ рдпрд╣ рдПрдХ рдЯреАрдо рдирд╣реАрдВ рд╣реИ, рдмрд▓реНрдХрд┐ рдПрдХ рд╢реНрд░реГрдВрдЦрд▓рд╛ рд╣реИ; рдкрд╣рд▓рд╛ рд▓рд┐рдВрдХ рд╣рд░ рдЬрдЧрд╣ рд╕рдорд╛рди рд╣реИ: рдЗрдХреЛ "$ рдЬрд╛рдирдХрд╛рд░реА" - рдорд╛рдирдХ рдЖрдЙрдЯрдкреБрдЯ рдбрд┐рд╡рд╛рдЗрд╕ (stdout) рдХреА рдзрд╛рд░рд╛ рдкрд░ рд▓реМрдЯрддрд╛ рд╣реИ, рдЬреЛ рд╣рдордиреЗ рд╕рд╣реЗрдЬреЗ рдЧрдП рд╕реВрдЪрдирд╛ рдХреЗ рдмрд╣реБрдд рдмреНрд▓реЙрдХ, рдХрд░реНрд▓ рд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ред рдкрд╛рдЗрдк рдХреЗ рдиреАрдЪреЗ, рдЗрд╕ рдзрд╛рд░рд╛ рдХреЛ grep рдХрдорд╛рдВрдб рдореЗрдВ рдкрд╛рд╕ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЧреНрд░реАрдк рдХреЗрд╡рд▓ рдЙрди рд╕рднреА рд▓рд╛рдЗрдиреЛрдВ рд╕реЗ рдЪрдпрди рдХрд░рддрд╛ рд╣реИ рдЬрд┐рдирдореЗрдВ рдпрд╣ рдкреИрдЯрд░реНрди рд╕реЗ рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реИред (-I рд╡рд┐рдХрд▓реНрдк рдХрд╛ рдЕрд░реНрде рд╣реИ "рдХреЗрд╕ рдЕрд╕рдВрд╡реЗрджрдирд╢реАрд▓")ред рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдкрд╣рд▓реЗ рдорд╛рдорд▓реЗ рдореЗрдВ рд╣рдо "рдПрдЪрдЯреАрдЯреАрдкреА" рд▓рд╛рдЗрди рдХрд╛ рдЪрдпрди рдХрд░рддреЗ рд╣реИрдВред рдмрд╛рдХреА рдХреЗ рдвреЗрд░ рд╕реЗ рдЦреАрдВрдЪреА рдЧрдИ рдЗрд╕ рд▓рд╛рдЗрди рдХреЛ рдкрд╛рдЗрдк рдХреЛ рдХрдорд╛рдВрдб grep -v 'HTTP / 2 200' рдХреЗ рдкрд╛рд╕ рднреЗрдЬрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣рд╛рдВ, -v рд╡рд┐рдХрд▓реНрдк -e рд╡рд┐рдХрд▓реНрдк рдХреЗ рд╡рд┐рдкрд░реАрдд рд╣реИ, рдпрд╣ рдЙрди рд▓рд╛рдЗрдиреЛрдВ рдХреЛ рдлрд╝рд┐рд▓реНрдЯрд░ рдХрд░рддрд╛ рд╣реИ рдЬрд╣рд╛рдВ рдРрд╕рд╛ рдкреИрдЯрд░реНрди рдкрд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдХреБрд▓, рдХреЛрдб рдЪрд░ рдореЗрдВ рд╕рд░реНрд╡рд░ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЛрдб (рдЬреИрд╕реЗ "HTTP / 1.1 302 рдорд┐рд▓рд╛") рдХреЗ рд╕рд╛рде рдПрдХ рдкрдВрдХреНрддрд┐ рд╣реЛрдЧреА, рд▓реЗрдХрд┐рди рдХреЗрд╡рд▓ рдЕрдЧрд░ рдпрд╣ 'HTTP / 2 200' рдирд╣реАрдВ рд╣реИред рдЗрд╕рд▓рд┐рдП рдореИрдВ рдЙрди рд▓рд╛рдЗрдиреЛрдВ рдХреЛ рдлрд╝рд┐рд▓реНрдЯрд░ рдХрд░рддрд╛ рд╣реВрдВ рдЬреЛ рдореЗрд░реА рд╕рд╛рдЗрдЯ рд╕рд╛рдорд╛рдиреНрдп рд╕реНрдерд┐рддрд┐ рдореЗрдВ рднреЗрдЬрддреА рд╣реИ, рдФрд░ рдХреЗрд╡рд▓ "рдЕрд╕рд╛рдорд╛рдиреНрдп" рдЙрддреНрддрд░реЛрдВ рдХреЛ рдмрдЪрд╛рддреА рд╣реИред (рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рд╕рд░реНрд╡рд░ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рд╣реИ, рддреЛ рдЗрд╕реЗ рд╡рд╣рд╛рдВ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ)ред

рдЗрд╕реА рдкреНрд░рдХрд╛рд░, рдкрд░рд┐рд╡рд░реНрддрдирд╢реАрд▓ рддрд┐рдерд┐ рдореЗрдВ рд╣рдо рдЙрд╕ рдкрдВрдХреНрддрд┐ рдХреЛ рд▓рд┐рдЦрддреЗ рд╣реИрдВ рдЬрд┐рд╕рдореЗрдВ рд╕рд░реНрд╡рд░ рдиреЗ рдЕрдкрдиреА рд╡рд░реНрддрдорд╛рди рддрд┐рдерд┐ рдФрд░ рд╕рдордп рдЬрд╛рд░реА рдХрд┐рдпрд╛ рдерд╛ред рдпрд╣ рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рд╣реИ " рддрд┐рдерд┐: рд╕реВрд░реНрдп, 11 рдлрд░рд╡рд░реА 2019 08:06:57 GMT " (рдЖрдорддреМрд░ рдкрд░ рдЬреАрдПрдордЯреА рд╕рдордп рдХреНрд╖реЗрддреНрд░, рдЙрд░реНрдл рдмреАрдЯреАрд╕реА )ред рд╣рдореЗрдВ рдЕрдкрдиреА рд▓реЙрдЧ рдлрд╝рд╛рдЗрд▓ ("рд╕рд░реНрд╡рд░ рд╕реНрдерд┐рддрд┐ рд▓реЙрдЧ") - server.log рдореЗрдВ рджрд┐рдирд╛рдВрдХ (рд▓реЗрдХрд┐рди рдХреЗрд╡рд▓ рджрд┐рди рдореЗрдВ рдПрдХ рдмрд╛рд░!) рд▓рд┐рдЦрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдФрд░ рдЙрд╕реА рд╕рдордп рд╣рдо рдЗрд╕ рд╕рдордп рдХреЛ рд╕реНрдХреНрд░реАрди рдкрд░ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░реЗрдВрдЧреЗред рдЖрдк рдЕрдкрдиреЗ рдХрдВрдкреНрдпреВрдЯрд░ рд╕реЗ рд▓реЙрдЧ-рдЗрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рддрд╛рд░реАрдЦ-рд╕рдордп рд▓рд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╕реБрд╡рд┐рдзрд╛ рдХреЗ рд▓рд┐рдП рд╣рдо рдЗрдиреНрд╣реЗрдВ рд▓реЗрддреЗ рд╣реИрдВ, рдХреНрдпреЛрдВрдХрд┐ рд╕рд░реНрд╡рд░ рдиреЗ рдЙрдиреНрд╣реЗрдВ рд╡реИрд╕реЗ рднреА рднреЗрдЬрд╛ рдерд╛ред

рдпрд╣ рд╣рдорд╛рд░реЗ рддреАрд╕рд░реЗ рдЪрд░ рдХреЗ рд╕рд╛рде рд╕рдорд╛рди рд╣реИ, рдбреЗрд▓реА (рдЕрдВрдЧреНрд░реЗрдЬреА рд╢рдмреНрдж рджреЗрд░реА - рджреЗрд░реА рд╕реЗ)ред рд╣рдо рдЕрдкрдиреЗ рдЯреЗрдВрдбрд░ рд▓реЗрдмрд▓ "рдИрдпреВрдпреВ" рдореЗрдВ рд▓рд╛рдЗрди рдХрд╛ рдЪрдпрди рдХрд░рддреЗ рд╣реИрдВ рдЬрд┐рд╕рдореЗрдВ рд╣рдордиреЗ рд╕рд░реНрд╡рд░ рд╕реЗ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХреА рдЕрд╡рдзрд┐ рдХреЛ рдмрдирд╛рдП рд░рдЦрд╛ред рд╣рдо рдЗрд╕ рд▓реЗрдмрд▓ рдХреЛ рд╣рдЯрд╛ рджреЗрддреЗ рд╣реИрдВ, рдЬрд┐рд╕рдХреА рдЕрдм рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ, sed рдХрдорд╛рдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП - рдФрд░ рдкрд░рд┐рдгрд╛рдо рд╕рд╣реЗрдЬреЗрдВред

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

 printf 'errr: %s\n' "$errr" printf 'code: %s\n' "$code" printf '%s\n' "$date" printf 'dlay: %s\n' "$dlay" 

рдЖрдкрдХреЛ рдХреБрдЫ рдРрд╕рд╛ рдорд┐рд▓рдирд╛ рдЪрд╛рд╣рд┐рдП:

 errr: 0 code: date: Mon, 11 Feb 2019 12:46:18 GMT dlay: 0.236549 

рдХреБрд▓: рдХрд░реНрд▓ рдХрд╛ рддреНрд░реБрдЯрд┐ рдХреЛрдб рд╢реВрдиреНрдп рд╣реИ (рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рдпрд╣ рдареАрдХ рдХрд╛рдо рдХрд┐рдпрд╛ рд╣реИ)ред рд╕рд░реНрд╡рд░ рд╕реНрдерд┐рддрд┐ рдХреЛрдб - рджрд░реНрдЬ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ (рдЬреИрд╕рд╛ рдХрд┐ рдпрд╣ рд╕рд╛рдорд╛рдиреНрдп рдерд╛)ред рддрд╛рд░реАрдЦ рдФрд░ рд╕рдордпред рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреА рдЕрд╡рдзрд┐ред рдпрд╣ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд░рд╣рддрд╛ рд╣реИ рдХрд┐ рдЖрдкрдХреЛ рд╕реНрдХреНрд░реАрди рдкрд░ рдХреНрдпрд╛ рдЪрд╛рд╣рд┐рдП рдФрд░, рдпрджрд┐ рдЖрд╡рд╢реНрдпрдХ рд╣реЛ, рддреЛ рдПрдХ рдлрд╝рд╛рдЗрд▓ рдкрд░ рд▓рд┐рдЦреЗрдВред

рдпрд╣ рд╕рдмрд╕реЗ рджрд┐рд▓рдЪрд╕реНрдк рд╣реИ: рдХреНрдпрд╛, рдХрд┐рди рдкрд░рд┐рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдореЗрдВ рдФрд░ рдХреИрд╕реЗ рд░рд┐рдХреЙрд░реНрдб рдХрд░рдирд╛ рд╣реИ?

7. рдореБрд╢реНрдХрд┐рд▓ рдирд┐рд╖реНрдХрд░реНрд╖


рдЖрдкрдХреЛ рдЕрдзрд┐рдХ рд╡рд┐рд╡рд░рдг рдХреЗ рд╕рд╛рде рдмреЛрд░ рдирд╣реАрдВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдореИрдВ рдЖрдкрдХреЛ рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ рдмрддрд╛рдКрдВрдЧрд╛ (рдФрд░ рдЗрдВрдЯрд░рдиреЗрдЯ рдкрд░ рдЗрди рд╕рднреА рдЖрджреЗрд╢реЛрдВ рдкрд░ рдкрд░реНрдпрд╛рдкреНрдд рдЕрдЪреНрдЫреА рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛рдПрдВ рд╣реИрдВ )ред рд╡реИрд╕реЗ, рд╕рдВрдХреНрд╖рд┐рдкреНрддрддрд╛ рдПрдХ рдореБрдЦреНрдп рд▓рдХреНрд╖реНрдп рд╣реИ рдЬрд┐рд╕реЗ рд╣рдо рдЗрд╕ рд▓реЙрдЧ рдореЗрдВ рд▓рд┐рдЦрддреЗ рд╕рдордп рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВрдЧреЗред рдлрд┐рд░ рдпрд╣ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реЛрдЧрд╛, рдФрд░ рдХрднреА рднреА рдбрд┐рд╕реНрдХ рд╕реНрдерд╛рди рдирд╣реАрдВ рд▓реЗрдЧрд╛ (рдкреНрд░рддрд┐ рджрд┐рди рдореЗрдЧрд╛рдмрд╛рдЗрдЯреНрд╕ рдореЗрдВ рдмрдврд╝рдиреЗ рд╡рд╛рд▓реЗ рдЕрдиреНрдп рд▓реЙрдЧ рдХреЗ рд╡рд┐рдкрд░реАрдд)ред

рдкрд╣рд▓рд╛: рд╣рдо рдХреЗрд╡рд▓ рдПрдХ рдмрд╛рд░ рд▓реЙрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рддрд╛рд░реАрдЦ рд▓рд┐рдЦрдирд╛ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рдкреНрд░рддреНрдпреЗрдХ рдкрдВрдХреНрддрд┐ рдкрд░ рдирд╣реАрдВред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдорд╛рд░реА рдЪрд░ рддрд╛рд░реАрдЦ рд╕реЗ рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╡рд░реНрддрдорд╛рди рддрд┐рдерд┐ (рд╡рдХреНрд░) рдФрд░ рд╕рдордп (рд╕рдордп) рдЪреБрдиреЗрдВ:

 curr=$(echo "$date" | sed -e 's/\(20[0-9][0-9]\).*$/\1/') time=$(echo "$date" | sed -e 's/^.*\ \([0-9][0-9]:.*\)\ GMT\r$/\1/') 

рдФрд░ рднреА рд╣рдо рд▓реЙрдЧ рдлрд╝рд╛рдЗрд▓ рд╕реЗ рддрд╛рд░реАрдЦреЛрдВ рдХреЗ рд╕рд╛рде рд▓рд╛рдЗрдиреЛрдВ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдЕрдВрддрд┐рдо рддрд┐рдерд┐ (рдореМрдЬреВрджрд╛) рд▓реЗрддреЗ рд╣реИрдВ:

 prev=$(cat /home/me/Progs/iNet/monitor/site.log | grep -e 'date:' | tail -1) 

рдпрджрд┐ рд╣рдорд╛рд░реА рд╡рд░реНрддрдорд╛рди рддрд┐рдерд┐ (рд╡рдХреНрд░) рдкрд┐рдЫрд▓реЗ рдПрдХ (рдлрд╝рд╛рдЗрд▓ рд╕реЗ, рдкреНрд░рдЪрд▓рд┐рдд) рдХреЗ рдмрд░рд╛рдмрд░ рдирд╣реАрдВ рд╣реИ, рддреЛ рдПрдХ рдирдпрд╛ рджрд┐рди рдЖ рдЧрдпрд╛ рд╣реИ (рдпрд╛ рдХрд╣реЗрдВ, рд▓реЙрдЧ рдлрд╝рд╛рдЗрд▓ рдЦрд╛рд▓реА рдереА); рдлрд┐рд░ рдлрд╝рд╛рдЗрд▓ рдХреЛ рдирдИ рддрд╛рд░реАрдЦ рд▓рд┐рдЦреЗрдВ:

 if [[ $curr != $prev ]]; then printf '%s\n' "$curr" >>/home/me/Progs/iNet/monitor/site.log printf '%s %s %s\n' "$time" "$dlay" "$code" >>/home/me/Progs/iNet/monitor/site.log 

... рдФрд░ рдПрдХ рд╣реА рд╕рдордп рдореЗрдВ рд╣рдо рд╡рд░реНрддрдорд╛рди рдЬрд╛рдирдХрд╛рд░реА рд░рд┐рдХреЙрд░реНрдб рдХрд░рддреЗ рд╣реИрдВ: рд╕рдордп, рд╕рд╛рдЗрдЯ рд╕реЗ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдореЗрдВ рджреЗрд░реА, рд╕рд╛рдЗрдЯ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЛрдб (рдпрджрд┐ рд╕рд╛рдорд╛рдиреНрдп рдирд╣реАрдВ):

  printf '%s %s %s\n' "$time" "$dlay" "$code" >>/home/me/Progs/iNet/monitor/site.log 

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

 elif [[ -n $code ]]; then printf '%s %s %s\n' "$time" "$dlay" "$code" >>/home/me/Progs/iNet/monitor/site.log 

рдФрд░ рдпрд╣ рднреА рд▓рд┐рдЦреЗрдВ рдХрд┐ рдХреНрдпрд╛ рд╕рд░реНрд╡рд░ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рд╕рдордп рд╕рд╛рдорд╛рдиреНрдп рд╕реЗ рдЕрдзрд┐рдХ рд▓рдВрдмрд╛ рд╣реИред рдореЗрд░реА рд╕рд╛рдЗрдЯ рдЖрдорддреМрд░ рдкрд░ 0.23-0.25 рд╕реЗрдХрдВрдб рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рдереА, рдЗрд╕рд▓рд┐рдП рдореИрдВ рдЬрд╡рд╛рдм рджреЗрддрд╛ рд╣реВрдВ рдЬреЛ 0.3 рд╕реЗрдХрдВрдб рд╕реЗ рдЕрдзрд┐рдХ рд╕рдордп рд▓реЗрддрд╛ рд╣реИ:

 elif (( $(echo "$dlay > 0.3" | bc -l) )); then printf '%s %s\n' "$time" "$dlay" >>/home/me/Progs/iNet/monitor/site.log 

рдЕрдВрдд рдореЗрдВ, рдПрдХ рдШрдВрдЯреЗ рдореЗрдВ, рдореИрдВ рдмрд╕ рд╕рд░реНрд╡рд░ рд╕реЗ рдкреНрд░рд╛рдкреНрдд рд╕рдордп рд░рд┐рдХреЙрд░реНрдб рдХрд░рддрд╛ рд╣реВрдВ - рдПрдХ рд╕рдВрдХреЗрдд рдХреЗ рд░реВрдк рдореЗрдВ рдХрд┐ рдпрд╣ рдЬреАрд╡рд┐рдд рд╣реИ, рдФрд░ рдПрдХ рд╣реА рд╕рдордп рдореЗрдВ рдлрд╝рд╛рдЗрд▓ рдХреЗ рдПрдХ рдкреНрд░рдХрд╛рд░ рдХреЗ рдорд╛рд░реНрдХрдЕрдк рдХреЗ рд░реВрдк рдореЗрдВ:

 else echo "$time" | grep -e :00: | cat >>/home/me/Progs/iNet/monitor/site.log fi 

рд╣рдореЗрдВ рдлрд╝рд╛рдЗрд▓ рдХреА рд╕рд╛рдордЧреНрд░реА рдорд┐рд▓рддреА рд╣реИ, рдЬрд╣рд╛рдВ рдкреНрд░рддрд┐ рдШрдВрдЯрд╛ рд░рд┐рдХреЙрд░реНрдб рдХреЗ рд╕рд╛рде рдорд╛рд░реНрдХрдЕрдк рдиреЗрддреНрд░рд╣реАрди, рдмрд┐рдирд╛ рдкрдврд╝рдиреЗ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ, рдпрд╣ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд░рддрд╛ рд╣реИ рдХрд┐ рд▓реЛрдб рдЕрдзрд┐рдХ рдпрд╛ рдХрдо рд╣реИ (рдкреНрд░рддрд┐ рдШрдВрдЯреЗ рдЕрдзрд┐рдХ рд░рд┐рдХреЙрд░реНрдб)

 19:42:28 0.461214 19:53:29 0.443956 20:00:29 20:09:30 2.156462 20:10:29 0.358294 20:45:29 0.313378 20:51:30 0.563886 20:54:30 0.307219 21:00:30 0.722343 21:01:30 0.310284 21:09:30 0.379662 21:10:31 1.305779 21:12:35 5.799455 21:23:31 1.054537 21:24:31 1.230391 21:40:31 0.461266 21:42:37 7.140093 22:00:31 22:12:37 5.724768 22:14:31 0.303500 22:42:37 5.735173 23:00:32 23:10:32 0.318207 date: Mon, 11 Feb 2019 00:00:34 0.235298 00:01:33 0.315093 01:00:34 01:37:41 5.741847 02:00:36 02:48:37 0.343234 02:56:37 0.647698 02:57:38 1.670538 02:58:39 2.327980 02:59:37 0.663547 03:00:37 03:40:38 0.331613 04:00:38 04:11:38 0.217022 04:50:39 0.313566 04:55:45 5.719911 05:00:39 

рдФрд░ рдЕрдВрдд рдореЗрдВ, рд╣рдо рд╕реНрдХреНрд░реАрди рдкрд░ рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддреЗ рд╣реИрдВред рдФрд░ рдпрд╣ рднреА, рдпрджрд┐ рдХрд░реНрд▓ рд╡рд┐рдлрд▓ рд╣реЛ рдЧрдпрд╛, рддреЛ рд╣рдо рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдПрдХ рд╕рдВрджреЗрд╢ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рд▓рд┐рдЦрддреЗ рд╣реИрдВ (рдФрд░ рдЙрд╕реА рд╕рдордп рдкрд┐рдВрдЧ рдЪрд▓рд╛рддреЗ рд╣реИрдВ рдФрд░ рдпрд╣ рдЬрд╛рдВрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рд▓реЙрдЧ рдЗрди рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рдХреНрдпрд╛ рд╕рд░реНрд╡рд░ рдмрд┐рд▓реНрдХреБрд▓ рдЬреАрд╡рд┐рдд рд╣реИ):

 printf '%s\n%s\n%s' "$time" "$dlay" "$code" if (( $errr != 0 )); then date >>/home/me/Progs/iNet/monitor/site.log date printf 'CURL Request failed. Error: %s\n' "$errr" >>/home/me/Progs/iNet/monitor/site.log printf 'CURL Request failed. Error: %s\n' "$errr" pung=$(ping -c 1 178.248.237.68) printf 'Ping: %s\n----\n' "$pung" >>/home/me/Progs/iNet/monitor/site.log printf 'Ping: %s\n' "$pung" fi 

IP рдкрддреЗ рдХреЛ рдЕрдкрдиреА рд╕рд╛рдЗрдЯ рдХреЗ рд╡рд╛рд╕реНрддрд╡рд┐рдХ IP рдкрддреЗ рдХреЗ рд╕рд╛рде рдкрд┐рдВрдЧ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдореЗрдВ рдмрджрд▓реЗрдВред

8. рдмрд╛рдж рдореЗрдВ


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

-

рдкреИрдирд▓ рдкрд░ рдмрд╛рдИрдВ рдУрд░ рдЖрдк рдпреВрдЯреАрд╕реА рдореЗрдВ рд╕рдордп рдФрд░ рд╕рд╛рдЗрдЯ рдХреА рд╡рд░реНрддрдорд╛рди рдЬрд╡рд╛рдмрджреЗрд╣реА рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВред рджрд╛рдИрдВ рдУрд░ рд▓реЙрдЧ рд╣реИ: рдпрд╣ рд░реИрд▓реА рдХреЛ рджрд┐рдЦрд╛рдИ рджреЗрддрд╛ рд╣реИ, рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рд╕рд░рд╕рд░реА рд╕реНрдХреНрд░реЙрд▓рд┐рдВрдЧ рдХреЗ рд╕рд╛рде, рдХрд┐рди рдШрдВрдЯреЛрдВ рдореЗрдВ рд▓реЛрдб рдЕрдзрд┐рдХ рдпрд╛ рдХрдо рдерд╛ред рдЖрдк рдЕрд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ рдзреАрдореА рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛рдУрдВ (рдЪреЛрдЯрд┐рдпреЛрдВ рдХреЛ рдиреЛрдЯрд┐рд╕ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ; рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпрд╣ рдЕрднреА рддрдХ рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рд╣реИ рдХрд┐ рд╡реЗ рдХрд╣рд╛рдВ рд╕реЗ рдЖрддреЗ рд╣реИрдВ)ред

рд╡рд╣ рд╕рдм рд╣реИред рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕рд░рд▓, рдУрдХ, рдФрд░ рдЗрд╕реЗ рдмреЗрд╣рддрд░ рдмрдирд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ: рдЕрдиреБрдХреВрд▓рди, рдкреЛрд░реНрдЯреЗрдмрд┐рд▓рд┐рдЯреА, рдиреЛрдЯрд┐рдлрд┐рдХреЗрд╢рди рдФрд░ рдбрд┐рд╕реНрдкреНрд▓реЗ рдореЗрдВ рд╕реБрдзрд╛рд░, рдкреНрд░реЙрдХреНрд╕реА рдФрд░ рдХреИрд╢ рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрдХрд░ рдХрд╛рдо рдХрд░рдирд╛ ...

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

рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рдкреВрд░рд╛ рдкрд╛рдаред рдЖрд╡рд╢реНрдпрдХ рдкрд░рд┐рд╡рд░реНрддрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдордд рднреВрд▓рдирд╛!
 #!/bin/bash # Monitor server responses (run this every 60 seconds): info=$(curl -I -o /dev/stdout -w '%{time_total}' --url https://example.ru/ -m 9 -s) errr=$(echo $?) # errr = CURL error code https://curl.haxx.se/libcurl/c/libcurl-errors.html code=$(echo "$info" | grep HTTP | grep -v 'HTTP/2 200') date=$(echo "$info" | grep -i 'date:') dlay=$(echo "$info" | grep  | sed -e 's///') # code = Response code = 200? # => empty, otherwise response code string # # date = from HTTP Header of the server responded, like: # Date: Sun, 10 Feb 2019 05:01:50 GMT # # dlay = Response delay ("time_total") from CURL, like: # 0.25321 #printf 'errr: %s\n' "$errr" #printf 'code: %s\n' "$code" #printf '%s\n' "$date" #printf 'dlay: %s\n' "$dlay" curr=$(echo "$date" | sed -e 's/\(20[0-9][0-9]\).*$/\1/') time=$(echo "$date" | sed -e 's/^.*\ \([0-9][0-9]:.*\)\ GMT\r$/\1/') prev=$(cat /home/me/Progs/iNet/monitor/site.log | grep -e 'date:' | tail -1) # = Previously logged date, like: # date: Sun, 10 Feb 2019 # Day logged before vs day returned by the server; usually the same if [[ $curr != $prev ]]; then # Write date etc., at the beginning of every day: printf '%s\n' "$curr" >>/home/me/Progs/iNet/monitor/site.log printf '%s %s %s\n' "$time" "$dlay" "$code" >>/home/me/Progs/iNet/monitor/site.log elif [[ -n $code ]]; then # If the response had HTTP error code - log it: printf '%s %s ? %s\n' "$time" "$dlay" "$code" >>/home/me/Progs/iNet/monitor/site.log elif (( $(echo "$dlay > 0.3" | bc -l) )); then # If the response delay was large - log it: printf '%s %s %s\n' "$time" "$dlay" "$code" >>/home/me/Progs/iNet/monitor/site.log else # If it's the start of an hour - just log the time echo "$time" | grep -e :00: | cat >>/home/me/Progs/iNet/monitor/site.log fi # To screen: printf '%s\n%s\n%s' "$time" "$dlay" "$code" # On CURL error: if (( $errr != 0 )); then date >>/home/me/Progs/iNet/monitor/site.log date printf 'CURL Request failed. Error: %s\n' "$errr" >>/home/me/Progs/iNet/monitor/site.log printf 'CURL Request failed. Error: %s\n' "$errr" pung=$(ping -c 1 178.248.237.68) printf 'Ping: %s\n----\n' "$pung" >>/home/me/Progs/iNet/monitor/site.log printf 'Ping: %s\n' "$pung" fi 



рдкреБрдирд╢реНрдЪред рдЪрд░реНрдЪрд╛ рдХреЗ рдмрд╛рдж (02/12/2019 рдХреЛ):

рдЬреИрд╕рд╛ рдХрд┐ рдореИрдВрдиреЗ рдЖрд╢рд╛ рд╡реНрдпрдХреНрдд рдХреА, рд╡рд┐рд╢реЗрд╖рдЬреНрдЮреЛрдВ рдиреЗ рдмрд╣реБрдд рд╕реА рд░реЛрдЪрдХ рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ рд▓рд┐рдЦреАрдВред

рдЗрд╕ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдореИрдВ rsashka рд╕рд╡рд╛рд▓ рдХрд╛ рдЬрд╡рд╛рдм рджреЗ рд╕рдХрддрд╛ рд╣реВрдВ, рдЗрд╕ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рдХреНрдпрд╛ рдлрд╛рдпрджрд╛ рд╣реИред

рдЕрдиреНрдп рдЙрдкрдХрд░рдг, рдЬреИрд╕реЗ рдХрд┐ NetData (рдЯрд┐рдк рдХреЗ рд▓рд┐рдП tchspprt рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж!), рд▓рдВрдмреЗ рд╕рдордп рддрдХ рд╕рдВрдЧреНрд░рд╣реАрдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ рдбреЗрдЯрд╛ рдХрд╛ рдПрдХ рдмрдбрд╝рд╛ рд╕рд░рдгреА рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред рдиреЗрдЯрдбрд╛рдЯрд╛ рдПрдХ рдЕрдЪреНрдЫрд╛ рдЙрдкрдХрд░рдг рд╣реИ рдЬрдм рдЖрдк рд╣рд░ рджрд┐рди рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ, рдкреЗрд╢реЗрд╡рд░ рд░реВрдк рд╕реЗ рд╡реЗрдмрд╕рд╛рдЗрдЯреЛрдВ рдХреЛ рдмрдирд╛рдП рд░рдЦрддреЗ рд╣реИрдВред рд╡рд░реНрддрдорд╛рди рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЗ рдирд┐рджрд╛рди рдХреЗ рд▓рд┐рдП рдЕрдЪреНрдЫрд╛ рд╣реИред

рдореЗрд░реА рддрд░рд╣ рдПрдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЕрдиреНрдп рдЪреАрдЬреЛрдВ рдХреЛ рдХрд░рддреЗ рд╕рдордп рдирдЬрд░ рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рд╣реИред рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рд╡рд┐рд╢реЗрд╖ рдЕрдзреНрдпрдпрди рдФрд░ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред рдпрд╣ рдЖрдо рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдмреБрд░рд╛ рдирд╣реАрдВ рд╣реИред рдФрд░ рдЗрд╕рдХреЗ рд▓реЙрдЧ рдЗрддрдиреА рдХрдо рдЬрдЧрд╣ рд▓реЗрддреЗ рд╣реИрдВ рдХрд┐ рдЙрдиреНрд╣реЗрдВ рдмрд┐рд▓реНрдХреБрд▓ рднреА рдирд╣реАрдВ рдорд┐рдЯрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ред рд╡реЗ рд╡рд░реНрд╖реЛрдВ рдореЗрдВ рдЬрдорд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рд╡рд░реНрд╖реЛрдВ рдореЗрдВ рдПрди + 1 рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ: "рд╡рд╛рд╣, 2019 рдореЗрдВ, рдореЗрд░реА рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХрд╛ рд╕рдордп рдбреЗрдврд╝ рдЧреБрдирд╛ рдХрдо рдерд╛! .."

, тАФ , . ( tchspprt : ┬л ┬╗).

andreymal , , . . , , , .

unnforgiven тАФ , (prometheus, blackbox alermanager docker composer). , VPS ; Linux тАФ . !

tchspprt : Graphite + Prometheus + Grafana. (gnuplot rrdtool).

Mcalexvrn : uptimerobot . рдзрдиреНрдпрд╡рд╛рдж!

! тАж

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


All Articles