рднреВрддрд┐рдирд╢рдВрдХрд╛ , рдкрд┐рдЫрд▓реЗ 20 рдорд┐рдирдЯ рдХреЗ рд▓рд┐рдП рдмрдЯрди рдХреЛ рдЬреЛрд░ рд╕реЗ рджрдмрд╛рдпрд╛ , рдЬреИрд╕реЗ рдХрд┐ рдЙрд╕рдХрд╛ рдЬреАрд╡рди рдЗрд╕ рдкрд░ рдирд┐рд░реНрднрд░ рдерд╛, рдЙрд╕рдХреА рдЖрдБрдЦреЛрдВ рдореЗрдВ рдПрдХ рдЕрд░реНрдз-рдЬрдВрдЧрд▓реА рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдФрд░ рдПрдХ рдзреВрд░реНрдд рдореБрд╕реНрдХрд░рд╛рд╣рдЯ рдХреЗ рд╕рд╛рде рдореЗрд░реЗ рдкрд╛рд╕ рдЬрд╛рддрд╛ рд╣реИ - "рдпрд╛рд░, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореИрдВ рд╕рдордЭрддрд╛ рд╣реВрдВред"
"рдпрд╣рд╛рдБ рдкрд░ рджреЗрдЦреЛ" - рдХрд╣рддреЗ рд╣реИрдВ, рд╕реНрдХреНрд░реАрди рдкрд░ рдкреНрд░рддреАрдХреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдХреА рдУрд░ рдЗрд╢рд╛рд░рд╛ рдХрд░рддреЗ рд╣реБрдП - "рдореИрдВрдиреЗ рдЕрдкрдиреА рд▓рд╛рд▓ рдЯреЛрдкреА рдкрд░ рд╢рд░реНрдд рд▓рдЧрд╛рдИ рд╣реИ рдХрд┐ рдЕрдЧрд░ рд╣рдо рдпрд╣рд╛рдБ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ рдЬреЛ рдореИрдВрдиреЗ рдЕрднреА рдЖрдкрдХреЛ рднреЗрдЬрд╛ рд╣реИ" - рдХреЛрдб рдХреЗ рджреВрд╕рд░реЗ рдЯреБрдХрдбрд╝реЗ рдХреА рдУрд░ рдЗрд╢рд╛рд░рд╛ рдХрд░рддреЗ рд╣реБрдП - "рддреНрд░реБрдЯрд┐ рдЕрдм рдирд╣реАрдВ рд╣реИ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред тАЭ
рдереЛрдбрд╝рд╛ рд╣реИрд░рд╛рди рдФрд░ рдердХрд╛ рд╣реБрдЖ, рдореИрдВ рдЙрди sed рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдХреЛ рдмрджрд▓ рджреЗрддрд╛ рд╣реВрдВ рдЬреЛ рд╣рдо рдХреБрдЫ рд╕рдордп рд╕реЗ рдХрд╛рдо рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдлрд╝рд╛рдЗрд▓ рдХреЛ рдмрдЪрд╛рдПрдВ рдФрд░ systemctl varnish reload
ред рддреНрд░реБрдЯрд┐ рд╕рдВрджреЗрд╢ рдЧрд╛рдпрдм рд╣реЛ рдЧрдпрд╛ рд╣реИ ...
"рдореИрдВ рдЙрдореНрдореАрджрд╡рд╛рд░ рдХреЗ рд╕рд╛рде рдЖрджрд╛рди-рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реВрдВ," рдореЗрд░реЗ рд╕рд╣рдпреЛрдЧреА рдиреЗ рдЬрд╛рд░реА рд░рдЦрд╛, рдЬрдмрдХрд┐ рдЙрд╕рдХреА рдореБрд╕реНрдХрд░рд╛рд╣рдЯ рдЦреБрд╢реА рд╕реЗ рднрд░реА рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдореБрд╕реНрдХрд╛рди рдореЗрдВ рдмрджрд▓ рдЬрд╛рддреА рд╣реИ, "рдпрд╣ рдЕрдЪрд╛рдирдХ рдореБрдЭ рдкрд░ рд╣рд╛рд╡реА рд╣реЛ рдЧрдпрд╛ рдХрд┐ рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдПрдХ рд╣реА рд╕рдорд╕реНрдпрд╛ рд╣реИ!"
рдпрд╣ рд╕рдм рдХреИрд╕реЗ рд╢реБрд░реВ рд╣реБрдЖ
рдпрд╣ рдЖрд▓реЗрдЦ рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИ рдХрд┐ рдХреИрд╕реЗ рдХрд╛рдордЪреЛрд░, рдЖрд╡рд╛рд░рд╛, рд╕реЗрдб рдФрд░ рд╕рд┐рд╕реНрдЯрдордб рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВред рд╡рд╛рд░реНрдирд┐рд╢ рдХрд╛ рдЬреНрдЮрд╛рди рд╕реНрд╡рд╛рдЧрдд рдпреЛрдЧреНрдп рд╣реИ рд▓реЗрдХрд┐рди рдЖрд╡рд╢реНрдпрдХ рдирд╣реАрдВ рд╣реИред
рд╕реНрдирд┐рдкреЗрдЯ рдЯрд╛рдЗрдорд╕реНрдЯреИрдореНрдк рдмрджрд▓ рдЧрдпрд╛ред
рднреВрддрд┐рдирд╢рдВрдХрд╛ рдХреЗ рд╕рд╛рде рд▓рд┐рдЦрд╛ред
рдпрд╣ рдкрд╛рда рджреЛ рд╕рдкреНрддрд╛рд╣ рдкрд╣рд▓реЗ рдЕрдВрдЧреНрд░реЗрдЬреА рдореЗрдВ рдкреНрд░рдХрд╛рд╢рд┐рдд рдореВрд▓ рдХрд╛ рдЕрдиреБрд╡рд╛рдж рд╣реИ; boikoden рдЕрдиреБрд╡рд╛рджред
рд╕реВрд░рдЬ рдПрдХ рдФрд░ рдЧрд░реНрдо рд╢рд░рдж рдЛрддреБ рдХреА рд╕реБрдмрд╣ рдордиреЛрд░рдо рдЦрд┐рдбрд╝рдХрд┐рдпреЛрдВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЪрдордХрддрд╛ рд╣реИ, рддрд╛рдЬрд╛ рддреИрдпрд╛рд░ рдХреИрдлреАрдирдпреБрдХреНрдд рдкреЗрдп рдХрд╛ рдкреНрдпрд╛рд▓рд╛ рдХреАрдмреЛрд░реНрдб рд╕реЗ рджреВрд░ рд░рд╣рддрд╛ рд╣реИ, рд╣реЗрдбрдлреЛрди рдореЗрдВ рдзреНрд╡рдирд┐рдпреЛрдВ рдХреА рдкрд╕рдВрджреАрджрд╛ рд╕рд┐рдореНрдлрдиреА, рдпрд╛рдВрддреНрд░рд┐рдХ рдХреАрдмреЛрд░реНрдб рдХреА рд╕рд░рд╕рд░рд╛рд╣рдЯ рдХреЛ рдУрд╡рд░рд▓реИрдк рдХрд░рддреА рд╣реИ, рдФрд░ рднрд╛рдЧреНрдпрдкреВрд░реНрдг рд╢реАрд░реНрд╖рдХ "рдЗрдирд╡реЗрд╕реНрдЯрд┐рдЧ рд╡рд╛рд░реНрдирд┐рд╢" рдЪрдВрдЪрд▓рддрд╛ рд╕реЗ рдХрдиреНрдирди рдмреЛрд░реНрдб рдкрд░ рдмреИрдХрд▓реЙрдЧ рдЯрд┐рдХрдЯ рд╕реВрдЪреА рдореЗрдВ рдкрд╣рд▓реА рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ рдХреЛ рдЪрдордХрддрд╛ рд╣реИред sh: рдЗрдХреЛ: рд╕реНрдЯреЗрдЬрд┐рдВрдЧ рдореЗрдВ I / O рддреНрд░реБрдЯрд┐ "(" рд╡рд╛рд░реНрдирд┐рд╢рд░реЛрдб sh: рдЗрдХреЛ: I / O рддреНрд░реБрдЯрд┐ "рдЪрд░рдг рдореЗрдВ рджреЗрдЦреЗрдВ)ред рдЬрдм рд╡рд╛рд░реНрдирд┐рд╢ рдХреА рдмрд╛рдд рдЖрддреА рд╣реИ, рддреЛ рдХреЛрдИ рддреНрд░реБрдЯрд┐ рдирд╣реАрдВ рд╣реЛрддреА рд╣реИ рдФрд░ рдХреЛрдИ рдЬрдЧрд╣ рдирд╣реАрдВ рд╣реЛ рд╕рдХрддреА рд╣реИ, рднрд▓реЗ рд╣реА рд╡реЗ рдХрд┐рд╕реА рднреА рд╕рдорд╕реНрдпрд╛ рдореЗрдВ рдЕрдиреБрд╡рд╛рдж рди рдХрд░реЗрдВ, рдЬреИрд╕рд╛ рдХрд┐ рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рд╣реИред
рд╡рд╛рд░реНрдирд┐рд╢ рд▓реЛрдб рдХреЗ рд╕рд╛рде рдЕрдкрд░рд┐рдЪрд┐рдд рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП, рдпрд╣ рдПрдХ рд╕рд░рд▓ рд╢реЗрд▓ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╣реИ рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рд╡рд╛рд░реНрдирд┐рд╢ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЛ рдкреБрдирдГ рд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ - рдЬрд┐рд╕реЗ рд╡реАрд╕реАрдПрд▓ рднреА рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред
рдЬреИрд╕рд╛ рдХрд┐ рдЯрд┐рдХрдЯ рдХрд╛ рдирд╛рдо рдмрддрд╛рддрд╛ рд╣реИ, рдордВрдЪ рдкрд░ рд╕рд░реНрд╡рд░ рдореЗрдВ рд╕реЗ рдПрдХ рдкрд░ рдПрдХ рддреНрд░реБрдЯрд┐ рд╣реБрдИ, рдФрд░ рдЬрдм рд╕реЗ рдореБрдЭреЗ рдпрдХреАрди рдерд╛ рдХрд┐ рдордВрдЪ рдкрд░ рд╡рд╛рд░реНрдирд┐рд╢ рд░реВрдЯрд┐рдВрдЧ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдореИрдВрдиреЗ рдорд╛рди рд▓рд┐рдпрд╛ рдХрд┐ рдпрд╣ рдПрдХ рдЫреЛрдЯреА рд╕реА рддреНрд░реБрдЯрд┐ рд╣реЛрдЧреАред рддреЛ, рдмрд╕ рдПрдХ рд╕рдВрджреЗрд╢ рдЬреЛ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдмрдВрдж рдЖрдЙрдЯрдкреБрдЯ рд╕реНрдЯреНрд░реАрдо рдореЗрдВ рдорд┐рд▓рд╛ рд╣реИред рдореИрдВ рдЕрдкрдиреЗ рдЖрдк рдХреЛ рдЯрд┐рдХрдЯ рджреЗрддрд╛ рд╣реВрдВ, рдкреВрд░реЗ рд╡рд┐рд╢реНрд╡рд╛рд╕ рдореЗрдВ рдХрд┐ рдореИрдВ рдЗрд╕реЗ 30 рдорд┐рдирдЯ рд╕реЗ рдХрдо рд╕рдордп рдореЗрдВ рддреИрдпрд╛рд░ рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рдЪрд┐рд╣реНрдирд┐рдд рдХрд░реВрдВрдЧрд╛, рдЕрдЧрд▓реЗ рдХреВрдбрд╝реЗрджрд╛рди рд╕реЗ рдмреЛрд░реНрдб рдХреЛ рд╕рд╛рдл рдХрд░рдиреЗ рдФрд░ рдЕрдзрд┐рдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдорд╛рдорд▓реЛрдВ рдореЗрдВ рд▓реМрдЯрдиреЗ рдХреЗ рд▓рд┐рдП рдЦреБрдж рдХреЛ рдХрдВрдзреЗ рдкрд░ рдердкрдердкрд╛рдКрдВрдЧрд╛ред
200 рдХрд┐рдореА / рдШрдВрдЯрд╛ рдХреА рдЧрддрд┐ рд╕реЗ рдПрдХ рджреАрд╡рд╛рд░ рдореЗрдВ рджреБрд░реНрдШрдЯрдирд╛рдЧреНрд░рд╕реНрдд
varnishreload
рдлрд╝рд╛рдЗрд▓ рдХреЛ рдЦреЛрд▓рдиреЗ рдХреЗ рдмрд╛рдж, рдбреЗрдмрд┐рдпрди рд╕реНрдЯреНрд░реЗрдЪ рдХреЛ рдЪрд▓рд╛рдиреЗ рд╡рд╛рд▓реЗ рд╕рд░реНрд╡рд░реЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдкрд░, рдореИрдВрдиреЗ 200 рд╕реЗ рдХрдо рд▓рд╛рдЗрдиреЛрдВ рдХреА рд▓рдВрдмрд╛рдИ рдХреЗ рд╕рд╛рде рдПрдХ рд╢реЗрд▓ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рджреЗрдЦреАред
рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЪрд▓рдиреЗ рдХреЗ рдмрд╛рдж, рдореБрдЭреЗ рдРрд╕рд╛ рдХреБрдЫ рднреА рдирдЬрд╝рд░ рдирд╣реАрдВ рдЖрдпрд╛, рдЬрд┐рд╕рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рдЯрд░реНрдорд┐рдирд▓ рд╕реЗ рд╕реАрдзреЗ рдХрдИ рдмрд╛рд░ рдЪрд▓рд╛рдпрд╛ рдЬрд╛ рд╕рдХреЗред
рдЕрдВрдд рдореЗрдВ, рдпрд╣ рдПрдХ рдЪрд░рдг рд╣реИ, рднрд▓реЗ рд╣реА рдпрд╣ рдЯреВрдЯ рдЬрд╛рдП, рдХреЛрдИ рд╢рд┐рдХрд╛рдпрдд рдирд╣реАрдВ рдХрд░реЗрдЧрд╛, рдареАрдХ рд╣реИ ... рдмрд╣реБрдд рдЬреНрдпрд╛рджрд╛ рдирд╣реАрдВред рдореИрдВ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЪрд▓рд╛рддрд╛ рд╣реВрдВ рдФрд░ рджреЗрдЦрддрд╛ рд╣реВрдВ рдХрд┐ рдЯрд░реНрдорд┐рдирд▓ рдХреЛ рдХреНрдпрд╛ рд▓рд┐рдЦрд╛ рдЬрд╛рдПрдЧрд╛, рд▓реЗрдХрд┐рди рдореИрдВ рдХреЛрдИ рддреНрд░реБрдЯрд┐ рдирд╣реАрдВ рджреЗрдЦ рд╕рдХрддрд╛ред
рдПрдХ рдЬреЛрдбрд╝реЗ рдХреЛ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдирд╛ рд╢реБрд░реВ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ рдХрд┐ рдореИрдВ рдмрд┐рдирд╛ рдХрд┐рд╕реА рдЕрддрд┐рд░рд┐рдХреНрдд рдкреНрд░рдпрд╛рд╕ рдХреЗ рддреНрд░реБрдЯрд┐ рдХреЛ рдкреБрди: рдкреЗрд╢ рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ, рдФрд░ рдореИрдВ рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рдирд╛ рд╢реБрд░реВ рдХрд░ рджреЗрддрд╛ рд╣реВрдВ рдХрд┐ рдЗрд╕ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рдХреИрд╕реЗ рдмрджрд▓рдирд╛ рд╣реИ рдФрд░ рдЗрд╕реЗ рдЕрднреА рднреА рдПрдХ рддреНрд░реБрдЯрд┐ рджреЗрдирд╛ рд╣реИред
рдХреНрдпрд╛ рдХреЛрдИ рд╕реНрдХреНрд░рд┐рдкреНрдЯ STDOUT ( > &-
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ) рдХреЛ рдУрд╡рд░рд░рд╛рдЗрдб рдХрд░ рд╕рдХрддреА рд╣реИ? рдпрд╛ STDERR? рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рдХрд┐рд╕реА рдиреЗ рдХрд╛рдо рдирд╣реАрдВ рдХрд┐рдпрд╛ред
рдЬрд╛рд╣рд┐рд░ рд╣реИ, рд╕рд┐рд╕реНрдЯрдордб рдХрд┐рд╕реА рддрд░рд╣ рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк рд╡рд╛рддрд╛рд╡рд░рдг рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдХреИрд╕реЗ, рдФрд░ рдХреНрдпреЛрдВ?
рдореИрдВ рд╡рд┐рдо рдХреЛ рдХрд╛рдЯрддрд╛ рд╣реВрдВ рдФрд░ varnishreload
рд╕рдВрдкрд╛рджрд┐рдд рдХрд░рддрд╛ varnishreload
, set -x
рд╕реАрдзреЗ varnishreload
рдиреАрдЪреЗ рдЬреЛрдбрд╝рддрд╛ varnishreload
, рдЙрдореНрдореАрдж рдХрд░рддрд╛ varnishreload
рдХрд┐ рдбрд┐рдмрдЧ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЖрдЙрдЯрдкреБрдЯ рдереЛрдбрд╝рд╛ рдкреНрд░рдХрд╛рд╢ рдмрд╣рд╛рдПрдЧрд╛ред
рдлрд╝рд╛рдЗрд▓ рддрдп рд╣реЛ рдЧрдИ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореИрдВ рд╡рд╛рд░реНрдирд┐рд╢ рдХреЛ рдкреБрдирд░рд╛рд░рдВрдн рдХрд░рддрд╛ рд╣реВрдВ рдФрд░ рджреЗрдЦрддрд╛ рд╣реВрдВ рдХрд┐ рдкрд░рд┐рд╡рд░реНрддрди рдиреЗ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕рдм рдХреБрдЫ рддреЛрдбрд╝ рджрд┐рдпрд╛ ... рдирд┐рдХрд╛рд╕ рдПрдХ рдкреВрд░реНрдг рдЧрдбрд╝рдмрдбрд╝ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рдЯрди рдЬреИрд╕реЗ рд╕реА-рдХреЛрдб рд╣реИрдВред рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдЯрд░реНрдорд┐рдирд▓ рдореЗрдВ рд╕реНрдХреНрд░реЙрд▓ рдХрд░рдирд╛ рдпрд╣ рдЦреЛрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рдирд╣реАрдВ рд╣реИ рдХрд┐ рдпрд╣ рдХрд╣рд╛рдВ рд╕реЗ рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИред рдореИрдВ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рднреНрд░рдорд┐рдд рд╣реВрдБред рдХреНрдпрд╛ рдбрд┐рдмрдЧ рдореЛрдб рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рд▓реЙрдиреНрдЪ рдХрд┐рдП рдЧрдП рдХрд╛рд░реНрдпрдХреНрд░рдореЛрдВ рдХреЗ рдХрд╛рдо рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░ рд╕рдХрддрд╛ рд╣реИ? рдирд╣реАрдВ, рдмрдХрд╡рд╛рд╕ред рдЦреЛрд▓ рдореЗрдВ рдПрдХ рдмрдЧ? рдХрдИ рд╕рдВрднрд╛рд╡рд┐рдд рдкрд░рд┐рджреГрд╢реНрдп рдореЗрд░реЗ рд╕рд┐рд░ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рднрд╛рдЧрддреЗ рд╣реИрдВ рдЬреИрд╕реЗ рд╡рд┐рднрд┐рдиреНрди рджрд┐рд╢рд╛рдУрдВ рдореЗрдВ рддрд┐рд▓рдЪрдЯреНрдЯреЗред рдПрдХ рдХрдк рдХреИрдлреАрди-рдкреВрд░реНрдг рдкреЗрдп рддреБрд░рдВрдд рдЦрд╛рд▓реА рдХрд░ рджрд┐рдпрд╛, рд╕реНрдЯреЙрдХ рдХреЛ рдлрд┐рд░ рд╕реЗ рднрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд░рд╕реЛрдИ рдХреА рдПрдХ рддреНрд╡рд░рд┐рдд рдпрд╛рддреНрд░рд╛ рдФрд░ ... рдЪрд▓реЛ рдЪрд▓реЗрдВред рдореИрдВ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЦреЛрд▓рддрд╛ рд╣реВрдВ рдФрд░ рд╢реЗрдмрдВрдЧ рдХреЛ рджреЗрдЦрддрд╛ рд╣реВрдВ: #!/bin/sh
ред
/bin/sh
рдмрд╕ рдмреИрд╢ рд╕рд┐рдорд┐рд▓рд┐рдВрдХ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреА рд╡реНрдпрд╛рдЦреНрдпрд╛ POSIX- рд╕рдВрдЧрдд рдореЛрдб рдореЗрдВ рдХреА рдЬрд╛рддреА рд╣реИ, рд╣реИ рдирд╛? рд╡рд╣рд╛рдБ рдпрд╣ рдерд╛! рдбреЗрдмрд┐рдпрди рдореЗрдВ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╢реЗрд▓ рдкрд╛рдиреА рдХрд╛ рдЫреАрдВрдЯрд╛ рд╣реИ, рдФрд░ рдпрд╣реА рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ /bin/sh
рд╕рдВрджрд░реНрднрд┐рдд рд╣реИ ред
рдореБрдХрджрдореЗ рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ рд╢реЗрдмрдВрдЧ рдХреЛ #!/bin/bash
рдореЗрдВ рдмрджрд▓ рджрд┐рдпрд╛, set -x
рд╣рдЯрд╛ рджрд┐рдпрд╛ рдФрд░ рдлрд┐рд░ рд╕реЗ рдХреЛрд╢рд┐рд╢ рдХреАред рдЕрдВрдд рдореЗрдВ, рд╡рд╛рд░реНрдирд┐рд╢ рдХреЗ рдмрд╛рдж рдХреЗ рд░рд┐рдмреВрдЯ рдХреЗ рджреМрд░рд╛рди, рдЖрдЙрдЯрдкреБрдЯ рдореЗрдВ рдПрдХ рд╕рд╣рдиреАрдп рддреНрд░реБрдЯрд┐ рджрд┐рдЦрд╛рдИ рджреА:
Jan 01 12:00:00 hostname varnishreload[32604]: /usr/sbin/varnishreload: line 124: echo: write error: Broken pipe Jan 01 12:00:00 hostname varnishreload[32604]: VCL 'reload_20190101_120000_32604' compiled
рд░реЗрдЦрд╛ резреирек, рд╡рд╣рд╛рдБ рдпрд╣ рд╣реИ!
114 find_vcl_file() { 115 VCL_SHOW=$(varnishadm vcl.show -v "$VCL_NAME" 2>&1) || : 116 VCL_FILE=$( 117 echo "$VCL_SHOW" | 118 awk '$1 == "//" && $2 == "VCL.SHOW" {print; exit}' | { 119
рд▓реЗрдХрд┐рди рдЬреИрд╕рд╛ рдХрд┐ рдпрд╣ рдирд┐рдХрд▓рд╛, рд▓рд╛рдЗрди 124 рдХрд╛рдлреА рдЦрд╛рд▓реА рд╣реИ рдФрд░ рдХреЛрдИ рджрд┐рд▓рдЪрд╕реНрдкреА рдирд╣реАрдВ рд╣реИред рдореИрдВ рдХреЗрд╡рд▓ рдпрд╣ рдорд╛рди рд╕рдХрддрд╛ рдерд╛ рдХрд┐ рд▓рд╛рдЗрди резрезрем рдкрд░ рд╢реБрд░реВ рд╣реЛрдиреЗ рд╡рд╛рд▓реА рдорд▓реНрдЯреА-рд▓рд╛рдЗрди рдХреЗ рд╣рд┐рд╕реНрд╕реЗ рдХреЗ рд░реВрдк рдореЗрдВ рддреНрд░реБрдЯрд┐ рдЙрддреНрдкрдиреНрди рд╣реБрдИред
рдЙрдкрд░реНрдпреБрдХреНрдд рдЙрдк-рд╢реЗрд▓ рдХреЗ рдирд┐рд╖реНрдкрд╛рджрди рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк VCL_FILE
рдЪрд░ рдХреЛ рдЖрдЦрд┐рд░ рдХреНрдпрд╛ рд▓рд┐рдЦрд╛ рдЬрд╛рддрд╛ рд╣реИ?
рд╢реБрд░реБрдЖрдд рдореЗрдВ, рдпрд╣ рдкрд╛рдЗрдк рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЕрдЧрд▓реЗ рдХрдорд╛рдВрдб рдкрд░ рд▓рд╛рдЗрди 115 рдкрд░ рдмрдирд╛рдП рдЧрдП VLC_SHOW
рдЪрд░ рдХреА рд╕рд╛рдордЧреНрд░реА рднреЗрдЬрддрд╛ рд╣реИред рдФрд░ рдлрд┐рд░ рддрдм рдХреНрдпрд╛ рд╣реЛрддрд╛ рд╣реИ?
рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдпрд╣ рд╡рд╛рд░реНрдирд┐рд╢ рдЕрдзрд┐рд╖реНрдард╛рдкрди рдкреИрдХреЗрдЬ рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рд╣реИ, рдЬреЛ рд╡рд╛рд░реНрдирд┐рд╢ рдХреЛ рдкреБрдирд░рд╛рд░рдВрдн рдХрд┐рдП рдмрд┐рдирд╛ рд╡рд╛рд░реНрдирд┐рд╢ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред
vcl.show -v
рдЙрдкрдпреЛрдЧ STDOUT рдореЗрдВ ${VCL_NAME}
рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд╕рдВрдкреВрд░реНрдг VCL рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЛ рдЖрдЙрдЯрдкреБрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рд╡рд░реНрддрдорд╛рди рд╕рдХреНрд░рд┐рдп VCL рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди, рд╕рд╛рде рд╣реА рд╡рд╛рд░реНрдирд┐рд╢ рд░реВрдЯрд┐рдВрдЧ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЗ рдХрдИ рдкрд┐рдЫрд▓реЗ рд╕рдВрд╕реНрдХрд░рдг рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬреЛ рдЕрднреА рднреА рдореЗрдореЛрд░реА рдореЗрдВ рд╣реИрдВ, рдЖрдк varnishadm vcl.list
рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЬрд┐рд╕рдХрд╛ рдЖрдЙрдЯрдкреБрдЯ рдиреАрдЪреЗ рджрд┐рдП рдЧрдП рдХреЗ рд╕рдорд╛рди рд╣реЛрдЧрд╛:
discarded cold/busy 1 reload_20190101_120000_11903 discarded cold/busy 2 reload_20190101_120000_12068 discarded cold/busy 16 reload_20190101_120000_12259 discarded cold/busy 16 reload_20190101_120000_12299 discarded cold/busy 28 reload_20190101_120000_12357 active auto/warm 32 reload_20190101_120000_12397 available auto/warm 0 reload_20190101_120000_12587
рдЪрд░ ${VCL_NAME}
varnishreload
рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рдХрд┐рд╕реА рдЕрдиреНрдп рднрд╛рдЧ рдореЗрдВ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рд╕рдХреНрд░рд┐рдп VCL, рдпрджрд┐ рдХреЛрдИ рд╣реЛ, рдХреЗ рдирд╛рдо рдкрд░ рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдпрд╣ "reload_20190101_120000_12397" рд╣реЛрдЧрд╛ред
рдорд╣рд╛рди, рдЪрд░ ${VCL_SHOW}
рдореЗрдВ рд╡рд╛рд░реНрдирд┐рд╢ рдХреЗ рд▓рд┐рдП рдкреВрд░реНрдг рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рд╢рд╛рдорд┐рд▓ рд╣реИ, рдЕрдм рддрдХ рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд╣реИред рдЕрдм, рдореИрдВ рдЕрдВрдд рдореЗрдВ рд╕рдордЭ рдЧрдпрд╛ рдерд╛ рдХрд┐ set -x
рд╕рд╛рде рдбреИрд╢ рдЖрдЙрдЯрдкреБрдЯ рдЗрддрдирд╛ рдЯреВрдЯ рдЧрдпрд╛ рдерд╛ - рдЗрд╕рдореЗрдВ рдкрд░рд┐рдгрд╛рдореА рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреА рд╕рд╛рдордЧреНрд░реА рд╢рд╛рдорд┐рд▓ рдереАред
рдпрд╣ рд╕рдордЭрдирд╛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ рдХрд┐ рдПрдХ рдкреВрд░реНрдг рд╡реАрд╕реАрдПрд▓ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЛ рдЕрдХреНрд╕рд░ рдХрдИ рдлрд╛рдЗрд▓реЛрдВ рд╕реЗ рдПрдХ рд╕рд╛рде рдЬреЛрдбрд╝рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред C рд╢реИрд▓реА рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдХрд┐ рдХреБрдЫ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рджреВрд╕рд░реЛрдВ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдФрд░ рдпрд╣ рд╡рд╣реА рд╣реИ рдЬреЛ рдиреАрдЪреЗ рджрд┐рдП рдЧрдП рдХреЛрдб рд╕реНрдирд┐рдкреЗрдЯ рдХреА рдкреВрд░реА рдкрдВрдХреНрддрд┐ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╣реИред
рд╢рд╛рдорд┐рд▓ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рдиреЗ рд╡рд╛рд▓реА рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдХреЗ рд╕рд┐рдВрдЯреИрдХреНрд╕ рдореЗрдВ рдирд┐рдореНрди рдкреНрд░рд╛рд░реВрдк рд╣реИ:
рдЗрд╕ рд╕рдВрджрд░реНрдн рдореЗрдВ рдирдВрдмрд░ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдирд╣реАрдВ рд╣реИрдВ, рд╣рдо рдлрд╝рд╛рдЗрд▓ рдирд╛рдо рдореЗрдВ рд░реБрдЪрд┐ рд░рдЦрддреЗ рд╣реИрдВред
рддреЛ рд▓рд╛рдЗрди 116 рдкрд░ рд╢реБрд░реВ рд╣реЛрдиреЗ рд╡рд╛рд▓реА рдЯреАрдореЛрдВ рдХреЗ рджрд▓рджрд▓ рдореЗрдВ рдХреНрдпрд╛ рдЪрд▓ рд░рд╣рд╛ рд╣реИ?
рдЪрд▓рд┐рдП рдЗрд╕рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рддреЗ рд╣реИрдВред
рдЯреАрдо рдореЗрдВ рдЪрд╛рд░ рднрд╛рдЧ рд╣реЛрддреЗ рд╣реИрдВ:
- рдПрдХ рд╕рд╛рдзрд╛рд░рдг
echo
рдЬреЛ рдЪрд░ ${VCL_SHOW}
рдХреЗ рдореВрд▓реНрдп рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИ
echo "$VCL_SHOW"
awk
, рдЬреЛ рдПрдХ рд▓рд╛рдЗрди (рд░рд┐рдХреЙрд░реНрдб) рдХреА рддрд▓рд╛рд╢ рдореЗрдВ рд╣реИ, рдЬрд╣рд╛рдВ рдкрд╛рда рдХреЛ рддреЛрдбрд╝рдиреЗ рдХреЗ рдмрд╛рдж рдкрд╣рд▓рд╛ рдХреНрд╖реЗрддреНрд░ "//" рдФрд░ рджреВрд╕рд░рд╛ "VCL.SHOW" рд╣реЛрдЧрд╛ред
Awk рдЗрди рдкреИрдЯрд░реНрдиреЛрдВ рд╕реЗ рдореЗрд▓ рдЦрд╛рддреЗ рд╣реБрдП рдкрд╣рд▓реА рдкрдВрдХреНрддрд┐ рд▓рд┐рдЦреЗрдВрдЧреЗ, рдФрд░ рдлрд┐рд░ рддреБрд░рдВрдд рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдмрдВрдж рдХрд░ рджреЗрдВрдЧреЗред
awk '$1 == "//" && $2 == "VCL.SHOW" {print; exit}'
- рдХреЛрдб рдХрд╛ рдПрдХ рдЦрдВрдб рдЬреЛ рд░рд┐рдХреНрдд рд╕реНрдерд╛рди рджреНрд╡рд╛рд░рд╛ рдЕрд▓рдЧ рдХрд┐рдП рдЧрдП рдкрд╛рдВрдЪ рдЪрд░ рдХреНрд╖реЗрддреНрд░ рдореВрд▓реНрдпреЛрдВ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рддрд╛ рд╣реИред рдкрд╛рдВрдЪрд╡реЗрдВ File рд╡реИрд░рд┐рдПрдмрд▓ рдХреЛ рдмрд╛рдХреА рд╕реНрдЯреНрд░рд┐рдВрдЧ рдорд┐рд▓рддреА рд╣реИред рдЕрдВрдд рдореЗрдВ, рдЕрдВрддрд┐рдо рдЧреВрдВрдЬ рдЪрд░
${FILE}
рдХреА рд╕рд╛рдордЧреНрд░реА рдХреЛ рд▓рд┐рдЦрддрд╛ рд╣реИред
{ read -r DELIM VCL_SHOW INDEX SIZE FILE; echo "$FILE" }
- рдЪреВрдВрдХрд┐ рд╕рднреА рдЪрд░рдг 1 рд╕реЗ 3 рдПрдХ рдЙрдк-рд╢реЗрд▓ рдореЗрдВ рд╕рдВрд▓рдЧреНрди рд╣реИрдВ,
$FILE
рдореВрд▓реНрдп $FILE
рдХрд╛ рдЖрдЙрдЯрдкреБрдЯ рд╡реЗрд░рд┐рдПрдмрд▓ VCL_FILE
рд▓рд┐рдП рд▓рд┐рдЦрд╛ рдЬрд╛рдПрдЧрд╛ред
рд▓рд╛рдЗрди 119 рдкрд░ рдЯрд┐рдкреНрдкрдгреА рдХреЗ рдЕрдиреБрд╕рд╛рд░, рдпрд╣ рдПрдХ рдЙрджреНрджреЗрд╢реНрдп рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ: рдЙрди рдорд╛рдорд▓реЛрдВ рдХреЛ рдордЬрд╝рдмреВрддреА рд╕реЗ рд╕рдВрднрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд╣рд╛рдВ рд╡реАрд╕реАрдПрд▓ рдирд╛рдо рдХреЗ рд╕реНрдерд╛рди рдХреЗ рд╕рд╛рде рдлрд╝рд╛рдЗрд▓реЛрдВ рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдХрд░реЗрдЧрд╛ред
рдореИрдВрдиреЗ ${VCL_FILE}
рд▓рд┐рдП рдореВрд▓ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рддрд░реНрдХ рдкрд░ рдЯрд┐рдкреНрдкрдгреА рдХреА рдФрд░ рдХрдорд╛рдВрдб рдХреЗ рдЕрдиреБрдХреНрд░рдо рдХреЛ рдмрджрд▓рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА, рд▓реЗрдХрд┐рди рдЗрд╕рд╕реЗ рдХреБрдЫ рднреА рдирд╣реАрдВ рд╣реБрдЖред рдореЗрд░реЗ рд▓рд┐рдП рд╕рдм рдХреБрдЫ рд╕рдлрд╛рдИ рд╕реЗ рдХрд╛рдо рдХрд┐рдпрд╛, рдФрд░ рд╕реЗрд╡рд╛ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдпрд╣ рдПрдХ рддреНрд░реБрдЯрд┐ рджреАред
рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЬрдм рдЖрдк рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдЪрд▓рд╛рддреЗ рд╣реИрдВ, рддреЛ рддреНрд░реБрдЯрд┐ рдХреЗрд╡рд▓ рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдкреНрд░рд╕реНрддреБрдд рдХрд░рдиреЗ рдпреЛрдЧреНрдп рдирд╣реАрдВ рд╣реЛрддреА рд╣реИ, рдЬрдмрдХрд┐ рдЕрдкреЗрдХреНрд╖рд┐рдд 30 рдорд┐рдирдЯ рдкрд╣рд▓реЗ рд╣реА рдЫрд╣ рдмрд╛рд░ рд╕рдорд╛рдкреНрдд рд╣реЛ рдЪреБрдХреЗ рд╣реЛрддреЗ рд╣реИрдВ, рдФрд░ рдкрд░рд┐рд╢рд┐рд╖реНрдЯ рдореЗрдВ, рдПрдХ рдЙрдЪреНрдЪ рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рд╡рд╛рд▓рд╛ рдХрд╛рд░реНрдп рджрд┐рдЦрд╛рдИ рджреЗрддрд╛ рд╣реИ, рдмрд╛рдХреА рдорд╛рдорд▓реЛрдВ рдХреЛ рдПрдХ рддрд░рдл рдзрдХреЗрд▓ рджреЗрддрд╛ рд╣реИред рд╕рдкреНрддрд╛рд╣ рдХреЗ рдмрд╛рдХреА рд╣рд┐рд╕реНрд╕реЛрдВ рдХреЛ рд╡рд┐рднрд┐рдиреНрди рдкреНрд░рдХрд╛рд░ рдХреЗ рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд╕рд╛рде рдкреИрдХ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ рдФрд░ рдХреЗрд╡рд▓ рд╕реАрдб рдкрд░ рдПрдХ рд░рд┐рдкреЛрд░реНрдЯ рдФрд░ рдЙрдореНрдореАрджрд╡рд╛рд░ рдХреЗ рд╕рд╛рде рдПрдХ рд╕рд╛рдХреНрд╖рд╛рддреНрдХрд╛рд░ рдХреЗ рд╕рд╛рде рдереЛрдбрд╝рд╛ рдкрддрд▓рд╛ рдерд╛ред varnishreload
рд╕рд╛рде рд╕рдорд╕реНрдпрд╛ рд╕рдордп рдХреА рд░реЗрдд рдореЗрдВ рдЦреЛ рдЧрдИ рдереАред
рдЕрдкрдиреЗ рддрдерд╛рдХрдерд┐рдд sed- рдлреВ ... рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ ... рдмрдХрд╡рд╛рд╕
рдЕрдЧрд▓рд╛ рд╣рдлреНрддрд╛ рдПрдХ рджрд┐рди рдмрд╣реБрдд рдЦрд╝рд░рд╛рдм рд╣реЛ рдЧрдпрд╛, рдЗрд╕рд▓рд┐рдП рдлрд┐рд░ рд╕реЗ рдореИрдВрдиреЗ рдЗрд╕ рдЯрд┐рдХрдЯ рдХреЛ рд▓реЗрдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ред рдореИрдВ рдЙрдореНрдореАрдж рдХрд░ рд░рд╣рд╛ рдерд╛ рдХрд┐ рдореЗрд░реЗ рджрд┐рдорд╛рдЧ рдореЗрдВ, рдЗрд╕ рд╕рдордп рдХреБрдЫ рдкреГрд╖реНрдарднреВрдорд┐ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЗ рд╕рдорд╛рдзрд╛рди рдХреА рддрд▓рд╛рд╢ рдореЗрдВ рдереА, рдФрд░ рдЗрд╕ рдмрд╛рд░ рдореИрдВ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рд╕рдордЭрддрд╛ рд╣реВрдВ рдХрд┐ рдпрд╣ рдХреНрдпрд╛ рд╣реИред
рдЪреВрдВрдХрд┐ рдкрд┐рдЫрд▓реА рдмрд╛рд░ рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдХреЛрдб рдкрд░рд┐рд╡рд░реНрддрди рдиреЗ рдорджрдж рдирд╣реАрдВ рдХреА рдереА, рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ рдЗрд╕реЗ 116 рд╡реАрдВ рдкрдВрдХреНрддрд┐ рд╕реЗ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦрдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ред рдХрд┐рд╕реА рднреА рдорд╛рдорд▓реЗ рдореЗрдВ, рдореМрдЬреВрджрд╛ рдХреЛрдб рдШрдЯрд┐рдпрд╛ рдерд╛ред рдФрд░ рдЗрд╕рдореЗрдВ read
рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдмрд┐рд▓реНрдХреБрд▓ рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ read
ред
рдлрд┐рд░ рд╕реЗ рддреНрд░реБрдЯрд┐ рдХреЛ рджреЗрдЦрддреЗ рд╣реБрдП:
sh: echo: broken pipe
- рдЗрд╕ рдХрдорд╛рдВрдб рдореЗрдВ рдЗрдХреЛ рджреЛ рдЬрдЧрд╣реЛрдВ рдкрд░ рд╣реЛрддреА рд╣реИ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рд╕рдВрджреЗрд╣ рд╣реИ рдХрд┐ рдкрд╣рд▓реЗ рдЕрдзрд┐рдХ рд╕рдВрднрд╛рд╡рд┐рдд рдЕрдкрд░рд╛рдзреА рд╣реИ (рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ, рдпрд╛ рдХрдо рд╕реЗ рдХрдо рдПрдХ рд╕рд╛рдереА)ред рдЕрд╡рд╛рдХ рднреА рд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рдирд╣реАрдВ рд╣реИред рдФрд░ рдорд╛рдорд▓реЗ рдореЗрдВ рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ awk | {read; echo}
awk | {read; echo}
awk | {read; echo}
рдирд┐рд░реНрдорд╛рдг рдЗрди рд╕рднреА рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреА рдУрд░ рдЬрд╛рддрд╛ рд╣реИ, рдЗрд╕реЗ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдХреНрдпреЛрдВ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ? рдпрд╣ рдПрдХ-рдкрдВрдХреНрддрд┐ рдХрдорд╛рдВрдб awk рдХреА рд╕рднреА рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдЙрдкрд╛рдВрдЧ рдореЗрдВ рднреА рдпрд╣ рдЕрддрд┐рд░рд┐рдХреНрдд read
рдЬрд╛рддрд╛ рд╣реИред
рдЪреВрдБрдХрд┐ рдкрд┐рдЫрд▓реЗ рд╣рдлреНрддреЗ sed
рдкрд░ рдПрдХ рд░рд┐рдкреЛрд░реНрдЯ рдЖрдИ рдереА, рдореИрдВ рдЕрдкрдиреЗ рдирдП рдЕрдзрд┐рдЧреНрд░рд╣реАрдд рдХреМрд╢рд▓ рдХреЛ рдЖрдЬрд╝рдорд╛рдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛ рдФрд░ echo | awk | { read; echo}
рд╕рд░рд▓ рдмрдирд╛рдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛ echo | awk | { read; echo}
echo | awk | { read; echo}
рдЕрдзрд┐рдХ рд╕рдордЭ рдореЗрдВ рдЖрдиреЗ рд╡рд╛рд▓реА echo | sed
echo | sed
ред рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпрд╣ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдПрдХ рддреНрд░реБрдЯрд┐ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рддрд░реАрдХрд╛ рдирд╣реАрдВ рд╣реИ, рдореИрдВрдиреЗ рд╕реЛрдЪрд╛ рдХрд┐ рдХрдо рд╕реЗ рдХрдо рдореИрдВ рдЕрдкрдиреЗ рд╕реЗрдб-рдлреВ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реВрдВрдЧрд╛ рдФрд░ рд╢рд╛рдпрдж рд╕рдорд╕реНрдпрд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреБрдЫ рдирдпрд╛ рд╕реАрдЦреВрдВред рдЗрд╕ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ, рдореИрдВрдиреЗ рдЕрдкрдиреЗ рд╕рд╣рдпреЛрдЧреА, рд╕реАрдб рдкрд░ рд░рд┐рдкреЛрд░реНрдЯ рдХреЗ рд▓реЗрдЦрдХ рд╕реЗ рдкреВрдЫрд╛, рдЬрд┐рд╕рд╕реЗ рдореБрдЭреЗ рдЕрдзрд┐рдХ рдкреНрд░рднрд╛рд╡реА рд╕реЗрдб рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рд╕рд╛рде рдЖрдиреЗ рдореЗрдВ рдорджрдж рдорд┐рд▓ рд╕рдХреЗред
рдореИрдВрдиреЗ varnishadm vcl.show -v "$VCL_NAME"
рд╕рд╛рдордЧреНрд░реА рдХреЛ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ varnishadm vcl.show -v "$VCL_NAME"
рдХрд░ рджрд┐рдпрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореИрдВ рд╕реЗрд╡рд╛ рдХреЛ рдкреБрдирдГ рд▓реЛрдб рдХрд░рдиреЗ рд╕реЗ рдЬреБрдбрд╝реА рдХрд┐рд╕реА рднреА рдкрд░реЗрд╢рд╛рдиреА рдХреЗ рдмрд┐рдирд╛ рдПрдХ рд╕рд┐рдб рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд▓рд┐рдЦрдиреЗ рдкрд░ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВред
рдЕрдкрдиреЗ рдЬреАрдПрдирдпреВ рдореИрдиреБрдЕрд▓ рдореЗрдВ рдЗрдирдкреБрдЯ рдХреЛ рдХреИрд╕реЗ рд╣реИрдВрдбрд▓ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЗрд╕рдХрд╛ рд╕рдВрдХреНрд╖рд┐рдкреНрдд рд╡рд┐рд╡рд░рдгред Sed рд╕реНрд░реЛрддреЛрдВ рдореЗрдВ, \n
рд╡рд░реНрдг рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдПрдХ рд▓рд╛рдЗрди рд╡рд┐рднрд╛рдЬрдХ рдХреЗ рд░реВрдк рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд╣реЛрддрд╛ рд╣реИред
рдХрдИ рдкрд╛рд╕реЛрдВ рдореЗрдВ рдФрд░ рдореЗрд░реЗ рд╕рд╣рдпреЛрдЧреА рдХреА рд╕рд┐рдлрд╛рд░рд┐рд╢реЛрдВ рдХреЗ рд╕рд╛рде, рд╣рдордиреЗ рдПрдХ рд╕реАрдб рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд▓рд┐рдЦреА, рдЬрд┐рд╕рдиреЗ рдкреВрд░реЗ рд╕реЛрд░реНрд╕ рд▓рд╛рдЗрди 116 рдХреЗ рд╕рдорд╛рди рдкрд░рд┐рдгрд╛рдо рджрд┐рдпрд╛ред
рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдПрдХ рдирдореВрдирд╛ рдЗрдирдкреБрдЯ рдлрд╝рд╛рдЗрд▓ рд╣реИ:
> cat vcl-example.vcl Text // VCL.SHOW 0 1578 file with 3 spaces.vcl More text // VCL.SHOW 0 1578 file.vcl Even more text // VCL.SHOW 0 1578 file with TWOspaces.vcl Final text
рдпрд╣ рдЙрдкрд░реЛрдХреНрдд рд╡рд┐рд╡рд░рдг рд╕реЗ рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╣рдо рдХреЗрд╡рд▓ рдкрд╣рд▓реА рдЯрд┐рдкреНрдкрдгреА // VCL.SHOW
рдореЗрдВ рд░реБрдЪрд┐ рд░рдЦрддреЗ рд╣реИрдВ, рдФрд░ рдЗрдирдкреБрдЯ рдореЗрдВ рдЙрдирдореЗрдВ рд╕реЗ рдХрдИ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред рдпрд╣реА рдХрд╛рд░рдг рд╣реИ рдХрд┐ рдореВрд▓ awk рдкрд╣рд▓реЗ рдореИрдЪ рдХреЗ рдмрд╛рдж рдЕрдкрдирд╛ рдХрд╛рдо рдЦрддреНрдо рдХрд░ рджреЗрддрд╛ рд╣реИред
рддреЛ, рд╡рд╛рд░реНрдирд┐рд╢ рд▓реЛрдб рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреА рд╕рд╛рдордЧреНрд░реА рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрд╛рдИ рджреЗрдЧреА:
VCL_FILE="$(echo "$VCL_SHOW" | sed -En '\#// VCL.SHOW#{s#.*[0-9]+ [0-9]+ (.*)$#\1#p;q;};')"
рдЙрдкрд░реЛрдХреНрдд рддрд░реНрдХ рдХреЛ рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ рдкреНрд░рд╕реНрддреБрдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:
рдпрджрд┐ рд░реЗрдЦрд╛ рдирд┐рдпрдорд┐рдд рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ // VCL.SHOW
рд╕реЗ рдореЗрд▓ рдЦрд╛рддреА рд╣реИ, рддреЛ рд▓рд╛рд▓рдЪ рд╕реЗ рдЙрд╕ рдкрд╛рда рдХреЛ рдЦрд╛рдПрдВ рдЬрд┐рд╕рдореЗрдВ рдЗрд╕ рдкрдВрдХреНрддрд┐ рдореЗрдВ рджреЛрдиреЛрдВ рд╕рдВрдЦреНрдпрд╛рдПрдВ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ рдФрд░ рдЗрд╕ рдСрдкрд░реЗрд╢рди рдХреЗ рдмрд╛рдж рдмрдиреА рд╣реБрдИ рд╕рднреА рдЪреАрдЬрд╝реЛрдВ рдХреЛ рд╕рд╣реЗрдЬ рд▓реЗрдВред рд╕рд╣реЗрдЬреЗ рдЧрдП рдорд╛рди рджреЗрдВ рдФрд░ рдкреНрд░реЛрдЧреНрд░рд╛рдо рд╕рдорд╛рдкреНрдд рдХрд░реЗрдВред
рд╕рд░рд▓, рд╕рд╣реА?
рд╣рдо рд╕реАрдб рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдФрд░ рдЗрд╕ рддрдереНрдп рд╕реЗ рдкреНрд░рд╕рдиреНрди рдереЗ рдХрд┐ рдпрд╣ рд╕рднреА рдореВрд▓ рдХреЛрдб рдХреЛ рдмрджрд▓ рджреЗрддрд╛ рд╣реИред рдореЗрд░реЗ рд╕рднреА рдкрд░реАрдХреНрд╖рдгреЛрдВ рдиреЗ рд╡рд╛рдВрдЫрд┐рдд рдкрд░рд┐рдгрд╛рдо рджрд┐рдП, рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ рд╕рд░реНрд╡рд░ рдкрд░ " systemctl reload varnish
" рдХреЛ рдмрджрд▓ рджрд┐рдпрд╛ рдФрд░ рдлрд┐рд░ рд╕реЗ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рд░реВрдк рд╕реЗ systemctl reload varnish
рдЪрд▓рд╛рдпрд╛ред рдЧрдВрджреА рддреНрд░реБрдЯрд┐ echo: write error: Broken pipe
рд╣рдорд╛рд░реЗ рдЪреЗрд╣рд░реЗ рдкрд░ рдлрд┐рд░ рд╕реЗ рд╣рдБрд╕рд╛ред рд╡рд┐рдВрдХрд┐рдВрдЧ рдХрд░реНрд╕рд░ рдЯрд░реНрдорд┐рдирд▓ рдХреЗ рдЕрдВрдзреЗрд░реЗ рдЦрд╛рд▓реАрдкрди рдореЗрдВ рдПрдХ рдирдИ рдХрдорд╛рдВрдб рдХреЗ рдкреНрд░рд╡реЗрд╢ рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░ рд░рд╣рд╛ рдерд╛ ...