เดซเดพเดณเดฟเด‚เด—เต เดกเต—เตบ เดฆ เดฑเดพเดฌเดฟเดฑเตเดฑเต เดนเต‹เตพ: เด’เดฐเต เดตเดพเตผเดฃเดฟเดทเต เดฑเต€เดฒเต‹เดกเต เดชเดฐเดพเดœเดฏเดคเตเดคเดฟเดจเตเดฑเต† เด•เดฅ - เดญเดพเด—เด‚ 1

เด˜เต‹เดทเดฟเดจเดถเด™เตเด•, เดคเดจเตเดฑเต† เดœเต€เดตเดฟเดคเด‚ เด…เดคเดฟเดจเต† เด†เดถเตเดฐเดฏเดฟเดšเตเดšเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเต เดŽเดจเตเดจ เดฎเดŸเตเดŸเดฟเตฝ, เด•เดดเดฟเดžเตเดž 20 เดฎเดฟเดจเดฟเดฑเตเดฑเต เดฌเดŸเตเดŸเดฃเตเด•เดณเดฟเตฝ เดšเตเดฑเตเดฑเดฟเด•เตเด•เดฑเด™เตเด™เตเดฎเตเดชเต‹เตพ, เด…เดตเดจเตเดฑเต† เด•เดฃเตเดฃเตเด•เดณเดฟเตฝ เด’เดฐเต เด…เตผเดฆเตเดง เดตเดจเตเดฏเดฎเดพเดฏ เดจเต‹เดŸเตเดŸเดตเตเด‚ เด’เดฐเต เด•เตเดธเตƒเดคเดฟ เดšเดฟเดฐเดฟเดฏเตเดฎเดพเดฏเดฟ เดŽเดจเตเดฑเต† เดจเต‡เดฐเต† เดคเดฟเดฐเดฟเดžเตเดžเต - "เดšเต‡เดŸเตเดŸเดพ, เดŽเดจเดฟเด•เตเด•เต เดฎเดจเดธเตเดธเดฟเดฒเดพเดฏเดฟ."

"เด‡เดตเดฟเดŸเต† เดจเต‹เด•เตเด•เต‚," เดธเตโ€Œเด•เตเดฐเต€เดจเดฟเดฒเต† เด’เดฐเต เดšเดฟเดนเตเดจเดคเตเดคเดฟเดฒเต‡เด•เตเด•เต เดšเต‚เดฃเตเดŸเดฟเด•เตเด•เดพเดฃเดฟเดšเตเดšเตเด•เตŠเดฃเตเดŸเต เด…เดฆเตเดฆเต‡เดนเด‚ เดชเดฑเดฏเตเดจเตเดจเต, "เดžเดพเตป เดจเดฟเด™เตเด™เตพเด•เตเด•เต เด…เดฏเดšเตเดšเดคเต เดžเด™เตเด™เตพ เด‡เดตเดฟเดŸเต† เดšเต‡เตผเดคเตเดคเดพเตฝ, เด•เต‹เดกเดฟเดจเตเดฑเต† เดฎเดฑเตเดฑเตŠเดฐเต เดตเดฟเดญเดพเด—เดคเตเดคเดฟเดฒเต‡เด•เตเด•เต เดšเต‚เดฃเตเดŸเดฟเด•เตเด•เดพเดฃเดฟเดšเตเดšเต, "เดŽเดจเตเดฑเต† เดšเตเดตเดจเตเดจ เดคเตŠเดชเตเดชเดฟ เดžเดพเตป เดตเดพเดคเตเดตเดฏเตเด•เตเด•เตเดจเตเดจเต. เดชเตเดฐเดฆเตผเดถเดฟเดชเตเดชเดฟเด•เตเด•เตเด‚."

เด…เตฝเดชเตเดชเด‚ เด†เดถเดฏเด•เตเด•เตเดดเดชเตเดชเดคเตเดคเดฟเดฒเตเด‚ เด•เตเดทเต€เดฃเดคเตเดคเดฟเดฒเตเด‚, เดžเด™เตเด™เตพ เด•เตเดฑเดšเตเดšเตเด•เดพเดฒเดฎเดพเดฏเดฟ เดชเตเดฐเดตเตผเดคเตเดคเดฟเดšเตเดšเตเด•เตŠเดฃเตเดŸเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจ เดธเต†เดกเต เดŽเด•เตเดธเตเดชเตเดฐเดทเตป เดžเดพเตป เดชเดฐเดฟเดทเตเด•เตเด•เดฐเดฟเดšเตเดšเต, เดซเดฏเตฝ เดธเต‡เดตเต เดšเต†เดฏเตเดคเต เดฑเตบ เดšเต†เดฏเตเดฏเตเด• systemctl varnish reload. เดชเดฟเดถเด•เต เดธเดจเตเดฆเต‡เดถเด‚ เด…เดชเตเดฐเดคเตเดฏเด•เตเดทเดฎเดพเดฏเดฟ...

"เดžเดพเตป เดธเตเดฅเดพเดจเดพเตผเดคเตเดฅเดฟเดฏเตเดฎเดพเดฏเดฟ เด•เตˆเดฎเดพเดฑเตเดฑเด‚ เดšเต†เดฏเตเดค เด‡เดฎเต†เดฏเดฟเดฒเตเด•เตพ," เดŽเดจเตเดฑเต† เดธเดนเดชเตเดฐเดตเตผเดคเตเดคเด•เตป เดคเตเดŸเตผเดจเตเดจเต, เด…เดตเดจเตเดฑเต† เดšเดฟเดฐเดฟ เดธเดจเตเดคเต‹เดทเดคเตเดคเดฟเดจเตเดฑเต† เดฏเดฅเดพเตผเดคเตเดฅ เดชเตเดžเตเดšเดฟเดฐเดฟเดฏเดพเดฏเดฟ เดตเดณเตผเดจเตเดจเดชเตเดชเต‹เตพ, "เด‡เดคเต เด…เดคเต‡ เดชเตเดฐเดถเตโ€Œเดจเดฎเดพเดฃเต†เดจเตเดจเต เดชเต†เดŸเตเดŸเต†เดจเตเดจเต เดŽเดจเดฟเด•เตเด•เต เดฎเดจเดธเตเดธเดฟเดฒเดพเดฏเดฟ!"

เดŽเดฒเตเดฒเดพเด‚ เดŽเด™เตเด™เดจเต† เด†เดฐเด‚เดญเดฟเดšเตเดšเต

bash, awk, sed, systemd เดŽเดจเตเดจเดฟเดต เดŽเด™เตเด™เดจเต† เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เตเดจเตเดจเต เดŽเดจเตเดจเดคเดฟเดจเต†เด•เตเด•เตเดฑเดฟเดšเตเดšเตเดณเตเดณ เด’เดฐเต เดงเดพเดฐเดฃ เดฒเต‡เด–เดจเด‚ เด…เดจเตเดฎเดพเดจเดฟเด•เตเด•เตเดจเตเดจเต. เดตเดพเตผเดฃเดฟเดทเดฟเดจเต†เด•เตเด•เตเดฑเดฟเดšเตเดšเตเดณเตเดณ เด…เดฑเดฟเดตเต เด…เดญเดฟเด•เดพเดฎเตเดฏเดฎเดพเดฃเต, เดชเด•เตเดทเต‡ เด†เดตเดถเตเดฏเดฎเดฟเดฒเตเดฒ.
เดธเตโ€Œเดจเดฟเดชเตเดชเต†เดฑเตเดฑเตเด•เดณเดฟเดฒเต† เดŸเตˆเด‚เดธเตเดฑเตเดฑเดพเดฎเตเดชเตเด•เตพ เดฎเดพเดฑเตเดฑเดฟ.
เด•เต‚เดŸเต† เดŽเดดเตเดคเดฟเดฏเดคเต เด˜เต‹เดทเดฟเดจเดถเด™เตเด•.
เดฐเดฃเตเดŸเดพเดดเตเดš เดฎเตเดฎเตเดชเต เด‡เด‚เด—เตเดฒเต€เดทเดฟเตฝ เดชเตเดฐเดธเดฟเดฆเตเดงเต€เด•เดฐเดฟเดšเตเดš เดฎเต‚เดฒเด•เตƒเดคเดฟเดฏเตเดŸเต† เดตเดฟเดตเตผเดคเตเดคเดจเดฎเดพเดฃเต เดˆ เดตเดพเดšเด•เด‚; เดตเดฟเดตเตผเดคเตเดคเดจเด‚ เดฌเต‹เดฏเดฟเด•เตเด•เต‹เดกเตป.

เดฎเดฑเตเดฑเตŠเดฐเต เดšเต‚เดŸเตเดณเตเดณ เดถเดฐเดคเตเด•เดพเดฒ เดชเตเดฐเดญเดพเดคเดคเตเดคเดฟเตฝ เดชเดจเต‹เดฐเดฎเดฟเด•เต เดœเดพเดฒเด•เด™เตเด™เดณเดฟเดฒเต‚เดŸเต† เดธเต‚เดฐเตเดฏเตป เดชเตเดฐเด•เดพเดถเดฟเด•เตเด•เตเดจเตเดจเต, เดชเตเดคเตเดคเดพเดฏเดฟ เดคเดฏเตเดฏเดพเดฑเดพเด•เตเด•เดฟเดฏ เด•เดซเต€เตป เด…เดŸเด™เตเด™เดฟเดฏ เด’เดฐเต เด•เดชเตเดชเต เดชเดพเดจเต€เดฏเด‚ เด•เต€เดฌเต‹เตผเดกเดฟเตฝ เดจเดฟเดจเตเดจเต เดฎเดพเดฑเดฟ เดจเดฟเตฝเด•เตเด•เตเดจเตเดจเต, เดจเดฟเด™เตเด™เดณเตเดŸเต† เดชเตเดฐเดฟเดฏเดชเตเดชเต†เดŸเตเดŸ เดธเดฟเด‚เดซเดฃเดฟ เดถเดฌเตเดฆเด™เตเด™เตพ เดจเดฟเด™เตเด™เดณเตเดŸเต† เดนเต†เดกเตโ€Œเดซเต‹เดฃเตเด•เดณเดฟเตฝ เดฎเตเดดเด™เตเด™เตเดจเตเดจเต, เดฎเต†เด•เตเด•เดพเดจเดฟเด•เตเด•เตฝ เด•เต€เดฌเต‹เตผเดกเตเด•เดณเตเดŸเต† เดฌเดนเดณเดคเตเดคเต† เดฎเตเด•เตเด•เดฟเด•เตเด•เดณเดฏเตเดจเตเดจเต, เด†เดฆเตเดฏ เดชเตเดฐเดตเต‡เดถเดจเด‚ เด•เดพเตปเดฌเตป เดฌเต‹เตผเดกเดฟเดฒเต† เดฌเดพเด•เตเด•เตโ€Œเดฒเต‹เด—เต เดŸเดฟเด•เตเด•เดฑเตเดฑเตเด•เดณเตเดŸเต† เดชเดŸเตเดŸเดฟเด•เดฏเดฟเตฝ "เดตเดพเตผเดฃเดฟเดทเตเดฐเต†เดฒเต‹เดกเต เด…เดจเตเดตเต‡เดทเดฟเด•เตเด•เตเด•" sh: เดชเตเดฐเดคเดฟเดงเตเดตเดจเดฟ: เดธเตเดฑเตเดฑเต‡เดœเดฟเด‚เด—เดฟเดฒเต† I/O เดชเดฟเดถเด•เต" (เดธเตเดฑเตเดฑเต‡เดœเดฟเด‚เด—เดฟเดฒเต† "varnishreload sh: echo: I/O เดชเดฟเดถเด•เต" เด…เดจเตเดตเต‡เดทเดฟเด•เตเด•เตเด•) เดŽเดจเตเดจ เดจเดฟเตผเดญเดพเด—เตเดฏเด•เดฐเดฎเดพเดฏ เดถเต€เตผเดทเด•เดคเตเดคเดฟเตฝ เด•เดณเดฟเดฏเดพเดฏเดฟ เดคเดฟเดณเด™เตเด™เตเดจเตเดจเต. เดตเดพเตผเดฃเดฟเดทเดฟเดจเตเดฑเต† เด•เดพเดฐเตเดฏเด‚ เดตเดฐเตเดฎเตเดชเต‹เตพ, เดˆ เด•เต‡เดธเดฟเดฒเต† เดชเต‹เดฒเต† เดŽเดจเตเดคเต†เด™เตเด•เดฟเดฒเตเด‚ เดชเตเดฐเดถเตโ€Œเดจเด™เตเด™เตพ เด‰เดฃเตเดŸเดพเด•เตเด•เดฟเดฏเดฟเดฒเตเดฒเต†เด™เตเด•เดฟเตฝเดชเตเดชเต‹เดฒเตเด‚, เดชเดฟเดถเด•เตเด•เตพเด•เตเด•เต เด‡เดŸเดฎเตเดฃเตเดŸเต, เดธเดพเดงเตเดฏเดฎเดฒเตเดฒ.

เดชเดฐเดฟเดšเดฏเดฎเดฟเดฒเตเดฒเดพเดคเตเดคเดตเตผเด•เตเด•เดพเดฏเดฟ เดตเดพเตผเดฃเดฟเดทเตเดฐเต†เดฒเต‹เดกเต, เด‡เดคเต เด•เต‹เตบเดซเดฟเด—เดฑเต‡เดทเตป เดฑเต€เดฒเต‹เดกเต เดšเต†เดฏเตเดฏเดพเตป เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจ เด’เดฐเต เดฒเดณเดฟเดคเดฎเดพเดฏ เดทเต†เตฝ เดธเตเด•เตเดฐเดฟเดชเตเดฑเตเดฑเดพเดฃเต เดตเดพเตผเดฃเดฟเดทเต - เดตเดฟเดธเดฟเดŽเตฝ เดŽเดจเตเดจเตเด‚ เดตเดฟเดณเดฟเด•เตเด•เตเดจเตเดจเต.

เดŸเดฟเด•เตเด•เดฑเตเดฑเดฟเดจเตเดฑเต† เดคเดฒเด•เตเด•เต†เดŸเตเดŸเต เดธเต‚เดšเดฟเดชเตเดชเดฟเด•เตเด•เตเดจเตเดจเดคเต เดชเต‹เดฒเต†, เดธเตเดฑเตเดฑเต‡เดœเดฟเดฒเต† เด’เดฐเต เดธเต†เตผเดตเดฑเดฟเดฒเดพเดฃเต เดชเดฟเดถเด•เต เดธเด‚เดญเดตเดฟเดšเตเดšเดคเต, เดธเตเดฑเตเดฑเต‡เดœเดฟเดฒเต† เดตเดพเตผเดฃเดฟเดทเต เดฑเต‚เดŸเตเดŸเดฟเด‚เด—เต เดถเดฐเดฟเดฏเดพเดฏเดฟ เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เตเดจเตเดจเตเดตเต†เดจเตเดจเต เดŽเดจเดฟเด•เตเด•เต เด‰เดฑเดชเตเดชเดพเดฏเดคเดฟเดจเดพเตฝ, เด‡เดคเต เด’เดฐเต เดšเต†เดฑเดฟเดฏ เดชเดฟเดถเด•เดพเดฏเดฟเดฐเดฟเด•เตเด•เตเดฎเต†เดจเตเดจเต เดžเดพเตป เด…เดจเตเดฎเดพเดจเดฟเดšเตเดšเต. เด…เดคเดฟเดจเดพเตฝ, เด‡เดคเดฟเดจเด•เด‚ เด…เดŸเดšเตเดš เด”เดŸเตเดŸเตเดชเตเดŸเตเดŸเต เดธเตเดŸเตเดฐเต€เดฎเดฟเตฝ เด…เดตเดธเดพเดจเดฟเดšเตเดš เด’เดฐเต เดธเดจเตเดฆเต‡เดถเด‚ เดฎเดพเดคเตเดฐเด‚. 30 เดฎเดฟเดจเดฟเดฑเตเดฑเดฟเตฝ เดคเดพเดดเต† เดธเดฎเดฏเดคเตเดคเดฟเดจเตเดณเตเดณเดฟเตฝ เดžเดพเตป เดŸเดฟเด•เตเด•เดฑเตเดฑเต เดคเดฏเตเดฏเดพเดฑเดพเดฏเดฟ เดŽเดจเตเดจเต เด…เดŸเดฏเดพเดณเดชเตเดชเต†เดŸเตเดคเตเดคเตเด‚ เดŽเดจเตเดจ เดชเต‚เตผเดฃเตเดฃ เดตเดฟเดถเตเดตเดพเดธเดคเตเดคเต‹เดŸเต† เดžเดพเตป เดŸเดฟเด•เตเด•เดฑเตเดฑเต เดŽเดŸเตเด•เตเด•เตเดจเตเดจเต, เดฌเต‹เตผเดกเต เดฎเดฑเตเดฑเตŠเดฐเต เดšเดชเตเดชเตเดšเดตเดฑเตเด•เตพ เดฎเดพเดฏเตโ€Œเด•เตเด•เตเดจเตเดจเดคเดฟเดจเต เดฎเตเดคเตเด•เดฟเตฝ เดคเดŸเตเดŸเตเด•เดฏเตเด‚ เด•เต‚เดŸเตเดคเตฝ เดชเตเดฐเดงเดพเดจเดชเตเดชเต†เดŸเตเดŸ เด•เดพเดฐเตเดฏเด™เตเด™เดณเดฟเดฒเต‡เด•เตเด•เต เดฎเดŸเด™เตเด™เตเด•เดฏเตเด‚ เดšเต†เดฏเตเดฏเตเดจเตเดจเต.

เดฎเดฃเดฟเด•เตเด•เต‚เดฑเดฟเตฝ 200 เด•เดฟเดฒเต‹เดฎเต€เดฑเตเดฑเตผ เดตเต‡เด—เดคเดฏเดฟเตฝ เดฎเดคเดฟเดฒเดฟเตฝ เด‡เดŸเดฟเดšเตเดšเต

เดซเดฏเตฝ เดคเตเดฑเด•เตเด•เตเดจเตเดจเต varnishreload, Debian Stretch เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เตเดจเตเดจ เดธเต†เตผเดตเดฑเตเด•เดณเดฟเตฝ เด’เดจเตเดจเดฟเตฝ, 200 เดตเดฐเดฟเด•เดณเดฟเตฝ เดคเดพเดดเต† เดจเต€เดณเดฎเตเดณเตเดณ เด’เดฐเต เดทเต†เตฝ เดธเตเด•เตเดฐเดฟเดชเตเดฑเตเดฑเต เดžเดพเตป เด•เดฃเตเดŸเต.

เดธเตเด•เตเดฐเดฟเดชเตเดฑเตเดฑเดฟเดฒเต‚เดŸเต† เด•เดŸเดจเตเดจเตเดชเต‹เดฏเดฟ, เดŸเต†เตผเดฎเดฟเดจเดฒเดฟเตฝ เดจเดฟเดจเตเดจเต เดจเต‡เดฐเดฟเดŸเตเดŸเต เด’เดจเตเดจเดฟเดฒเดงเดฟเด•เด‚ เดคเดตเดฃ เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเด•เตเด•เตเดฎเตเดชเต‹เตพ เดชเตเดฐเดถเตโ€Œเดจเด™เตเด™เดณเตเดฃเตเดŸเดพเด•เตเด•เตเดจเตเดจ เด’เดจเตเดจเตเด‚ เดžเดพเตป เดถเตเดฐเดฆเตเดงเดฟเดšเตเดšเดฟเดฒเตเดฒ.

เดŽเดฒเตเดฒเดพเดคเตเดคเดฟเดจเตเดฎเตเดชเดฐเดฟ, เด‡เดคเต เด’เดฐเต เดธเตเดฑเตเดฑเต‡เดœเดพเดฃเต, เด‡เดคเต เดชเตŠเดŸเตเดŸเดฟเดฏเดพเดฒเตเด‚ เด†เดฐเตเด‚ เดชเดฐเดพเดคเดฟเดชเตเดชเต†เดŸเดฟเดฒเตเดฒ, เด•เตŠเดณเตเดณเดพเด‚.. เด…เดฎเดฟเดคเดฎเดฒเตเดฒ. เดžเดพเตป เดธเตเด•เตเดฐเดฟเดชเตเดฑเตเดฑเต เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเดšเตเดšเต เดŸเต†เตผเดฎเดฟเดจเดฒเดฟเตฝ เดŽเดจเตเดคเดพเดฃเต เดŽเดดเตเดคเดชเตเดชเต†เดŸเตเด• เดŽเดจเตเดจเต เดจเต‹เด•เตเด•เตเดจเตเดจเต, เดชเด•เตเดทเต‡ เดชเดฟเดถเด•เตเด•เตพ เด‡เดจเดฟ เดฆเตƒเดถเตเดฏเดฎเดพเด•เดฟเดฒเตเดฒ.

เด…เดงเดฟเด• เดถเตเดฐเดฎเด™เตเด™เดณเตŠเดจเตเดจเตเดฎเดฟเดฒเตเดฒเดพเดคเต† เดŽเดจเดฟเด•เตเด•เต เดชเดฟเดถเด•เต เดชเตเดจเตผเดจเดฟเตผเดฎเตเดฎเดฟเด•เตเด•เดพเตป เด•เดดเดฟเดฏเดฟเดฒเตเดฒเต†เดจเตเดจเต เด‰เดฑเดชเตเดชเดพเด•เตเด•เดพเตป เด•เตเดฑเดšเตเดšเต เดฑเตบเดธเต เด•เต‚เดŸเดฟ เดจเดŸเดคเตเดคเดฟ, เดˆ เดธเตเด•เตเดฐเดฟเดชเตเดฑเตเดฑเต เดŽเด™เตเด™เดจเต† เดฎเดพเดฑเตเดฑเดพเดฎเต†เดจเตเดจเตเด‚ เด…เดคเต เด‡เดชเตเดชเต‹เดดเตเด‚ เด’เดฐเต เดชเดฟเดถเด•เต เดธเตƒเดทเตเดŸเดฟเด•เตเด•เตเดฎเต†เดจเตเดจเตเด‚ เดžเดพเตป เดฎเดจเดธเตเดธเดฟเดฒเดพเด•เตเด•เดพเตป เดคเตเดŸเด™เตเด™เดฟ.

เดธเตเด•เตเดฐเดฟเดชเตเดฑเตเดฑเดฟเดจเต STDOUT เด…เดธเดพเดงเตเดตเดพเด•เตเด•เดพเตป เด•เดดเดฟเดฏเตเดฎเต‹ (เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจเดคเต > &-)? เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ STDERR? เด‡เดต เดฐเดฃเตเดŸเตเด‚ เด…เดตเดธเดพเดจเด‚ เดชเตเดฐเดตเตผเดคเตเดคเดฟเดšเตเดšเดฟเดฒเตเดฒ.

เดชเตเดฐเดคเตเดฏเด•เตเดทเดคเตเดคเดฟเตฝ systemd เดŽเด™เตเด™เดจเต†เดฏเต†เด™เตเด•เดฟเดฒเตเด‚ เดธเตเดฑเตเดฑเดพเตผเดŸเตเดŸเดชเตเดชเต เดชเดฐเดฟเดคเดธเตเดฅเดฟเดคเดฟเดฏเดฟเตฝ เดฎเดพเดฑเตเดฑเด‚ เดตเดฐเตเดคเตเดคเตเดจเตเดจเต, เดชเด•เตเดทเต‡ เดŽเด™เตเด™เดจเต†, เดŽเดจเตเดคเตเด•เตŠเดฃเตเดŸเต?
เดžเดพเตป เดตเดฟเด‚ เดคเตเดฑเดจเตเดจเต เดŽเดกเดฟเดฑเตเดฑเต เดšเต†เดฏเตเดฏเตเดจเตเดจเต varnishreload, เดšเต‡เตผเด•เตเด•เตเดจเตเดจเต set -x เดธเตโ€Œเด•เตเดฐเดฟเดชเตโ€Œเดฑเตเดฑเดฟเดจเตเดฑเต† เดกเต€เดฌเด—เต เด”เดŸเตเดŸเตโ€ŒเดชเตเดŸเตเดŸเต เด•เตเดฑเดšเตเดšเต เดตเต†เดณเดฟเดšเตเดšเด‚ เดตเต€เดถเตเดฎเต†เดจเตเดจเต เดชเตเดฐเดคเต€เด•เตเดทเดฟเด•เตเด•เตเดจเตเดจ เดทเต†เดฌเดพเด™เตเด™เดฟเดจเต เด•เต€เดดเดฟเตฝ.

เดซเดฏเตฝ เดถเดฐเดฟเดฏเดพเด•เตเด•เดฟ, เด…เดคเดฟเดจเดพเตฝ เดžเดพเตป เดตเดพเตผเดฃเดฟเดทเต เดตเต€เดฃเตเดŸเตเด‚ เดฒเต‹เดกเตเดšเต†เดฏเตโ€Œเดคเต, เดฎเดพเดฑเตเดฑเด‚ เดŽเดฒเตเดฒเดพเด‚ เดชเต‚เตผเดฃเตเดฃเดฎเดพเดฏเตเด‚ เดคเด•เตผเดคเตเดคเดคเดพเดฏเดฟ เด•เดพเดฃเตเดจเตเดจเต... เดŽเด•เตโ€Œเดธเตโ€Œเดนเต‹เดธเตเดฑเตเดฑเต เด’เดฐเต เดชเต‚เตผเดฃเตเดฃเดฎเดพเดฏ เด•เตเดดเดชเตเดชเดฎเดพเดฃเต, เด…เดคเดฟเตฝ เดŸเตบ เดธเดฟ-เดชเต‹เดฒเตเดณเตเดณ เด•เต‹เดกเต เด‰เดฃเตเดŸเต. เดŸเต†เตผเดฎเดฟเดจเดฒเดฟเตฝ เดธเตเด•เตเดฐเต‹เตพ เดšเต†เดฏเตโ€Œเดคเดพเตฝ เดชเต‹เดฒเตเด‚ เด…เดคเต เดŽเดตเดฟเดŸเต† เดคเตเดŸเด™เตเด™เตเดจเตเดจเต เดŽเดจเตเดจเต เด•เดฃเตเดŸเต†เดคเตเดคเดพเตป เดชเดฐเตเดฏเดพเดชเตเดคเดฎเดฒเตเดฒ. เดžเดพเตป เด†เด•เต† เด†เดถเดฏเด•เตเด•เตเดดเดชเตเดชเดคเตเดคเดฟเดฒเดพเดฃเต. เด’เดฐเต เดธเตเด•เตเดฐเดฟเดชเตเดฑเตเดฑเดฟเตฝ เดฒเต‹เดžเตเดšเต เดšเต†เดฏเตเดฏเตเดจเตเดจ เดชเตเดฐเต‹เด—เตเดฐเดพเดฎเตเด•เดณเตเดŸเต† เดชเตเดฐเดตเตผเดคเตเดคเดจเดคเตเดคเต† เดกเต€เดฌเด—เตเด—เดฟเด‚เด—เต เดฎเต‹เดกเต เดฌเดพเดงเดฟเด•เตเด•เตเดฎเต‹? เด‡เดฒเตเดฒ, เด‡เดคเต เด…เดธเด‚เดฌเดจเตเดงเดฎเดพเดฃเต. เดทเต†เดฒเตเดฒเดฟเดฒเต† เดฌเด—เต? เดธเดพเดงเตเดฏเดฎเดพเดฏ เดจเดฟเดฐเดตเดงเดฟ เดธเดพเดนเดšเดฐเตเดฏเด™เตเด™เตพ เดตเตเดฏเดคเตเดฏเดธเตเดค เดฆเดฟเดถเด•เดณเดฟเดฒเต‡เด•เตเด•เต เด•เดพเด•เตเด•เดชเตเดชเต‚เด•เตเด•เดณเต†เดชเตเดชเต‹เดฒเต† เดŽเดจเตเดฑเต† เดคเดฒเดฏเดฟเดฒเต‚เดŸเต† เด“เดŸเตเดจเตเดจเต. เด•เดซเต€เตป เด…เดŸเด™เตเด™เดฟเดฏ เดชเดพเดจเต€เดฏเดคเตเดคเดฟเดจเตเดฑเต† เด•เดชเตเดชเต เดคเตฝเด•เตเดทเดฃเด‚ เดถเต‚เดจเตเดฏเดฎเดพเดฏเดฟ, เดธเตเดฑเตเดฑเต‹เด•เตเด•เต เดจเดฟเดฑเดฏเตเด•เตเด•เดพเตป เด…เดŸเตเด•เตเด•เดณเดฏเดฟเดฒเต‡เด•เตเด•เตเดณเตเดณ เด’เดฐเต เดชเต†เดŸเตเดŸเต†เดจเตเดจเตเดณเตเดณ เดฏเดพเดคเตเดฐ... เดžเด™เตเด™เตพ เดชเต‹เด•เตเดจเตเดจเต. เดžเดพเตป เดธเตโ€Œเด•เตเดฐเดฟเดชเตเดฑเตเดฑเต เดคเตเดฑเดจเตเดจเต เดทเต†เดฌเดพเด‚เด—เดฟเดจเต† เดธเต‚เด•เตเดทเตเดฎเดฎเดพเดฏเดฟ เดชเดฐเดฟเดถเต‹เดงเดฟเด•เตเด•เตเดจเตเดจเต: #!/bin/sh.

/bin/sh - เด‡เดคเต เดฌเดพเดทเดฟเดจเตเดณเตเดณ เด’เดฐเต เดธเดฟเด‚เดฒเดฟเด™เตเด•เต เดฎเดพเดคเตเดฐเดฎเดพเดฃเต, เด…เดคเดฟเดจเดพเตฝ เดธเตเด•เตเดฐเดฟเดชเตเดฑเตเดฑเต POSIX-เด…เดจเตเดฏเต‹เดœเตเดฏเดฎเดพเดฏ เดฎเต‹เดกเดฟเตฝ เดตเตเดฏเดพเด–เตเดฏเดพเดจเดฟเด•เตเด•เดชเตเดชเต†เดŸเตเดจเตเดจเต, เด…เดฒเตเดฒเต‡? เด…เด™เตเด™เดจเต† เด…เดฒเตเดฒ! เดกเต†เดฌเดฟเดฏเดจเดฟเดฒเต† เดกเดฟเดซเต‹เตพเดŸเตเดŸเต เดทเต†เตฝ เดกเดพเดทเต เด†เดฃเต, เด…เดคเต เด•เตƒเดคเตเดฏเดฎเดพเดฏเดฟ เด•เดพเดฃเดชเตเดชเต†เดŸเตเดจเตเดจเต. เดชเดฐเดพเดฎเตผเดถเดฟเด•เตเด•เตเดจเตเดจเต /bin/sh.

# ls -l /bin/sh
lrwxrwxrwx 1 root root 4 Jan 24  2017 /bin/sh -> dash

เด’เดฐเต เดŸเต†เดธเตเดฑเตเดฑเต เดŽเดจเตเดจ เดจเดฟเดฒเดฏเดฟเตฝ, เดžเดพเตป เดทเต†เดฌเดพเด‚เด—เต เดฎเดพเดฑเตเดฑเดฟ #!/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

เดฒเตˆเตป 124, เด‡เดคเดพ!

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                         # all this ceremony to handle blanks in FILE
120                         read -r DELIM VCL_SHOW INDEX SIZE FILE
121                         echo "$FILE"
122                 }
123         ) || :
124
125         if [ -z "$VCL_FILE" ]
126         then
127                 echo "$VCL_SHOW" >&2
128                 fail "failed to get the VCL file name"
129         fi
130
131         echo "$VCL_FILE"
132 }

เดชเด•เตเดทเต‡, 124 เดตเดฐเดฟ เดคเต€เตผเดคเตเดคเตเด‚ เดถเต‚เดจเตเดฏเดตเตเด‚ เดคเดพเตฝเดชเตเดชเดฐเตเดฏเดฎเดฟเดฒเตเดฒเดพเดคเตเดคเดคเตเดฎเดพเดฃเต. เดฒเตˆเตป 116-เตฝ เด†เดฐเด‚เดญเดฟเด•เตเด•เตเดจเตเดจ เด’เดฐเต เดฎเตพเดŸเตเดŸเดฟเดฒเตˆเตป เดธเตเดŸเตเดฐเดฟเด‚เด—เดฟเดจเตเดฑเต† เดญเดพเด—เดฎเดพเดฏเดพเดฃเต เดชเดฟเดถเด•เต เดธเด‚เดญเดตเดฟเดšเตเดšเดคเต†เดจเตเดจเต เดŽเดจเดฟเด•เตเด•เต เดŠเดนเดฟเด•เตเด•เดพเดตเตเดจเตเดจเดคเต‡เดฏเตเดณเตเดณเต‚.
เด†เดคเตเดฏเดจเตเดคเดฟเด•เดฎเดพเดฏเดฟ เดตเต‡เดฐเดฟเดฏเดฌเดฟเดณเดฟเตฝ เดŽเดจเตเดคเดพเดฃเต เดŽเดดเตเดคเดฟเดฏเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเดคเต? VCL_FILE เดฎเตเด•เดณเดฟเดฒเต† เดธเดฌเต-เดทเต†เตฝ เดจเดŸเดชเตเดชเดฟเดฒเดพเด•เตเด•เตเดจเตเดจเดคเดฟเดจเตเดฑเต† เดซเดฒเดฎเดพเดฏเดฟ?

เดคเตเดŸเด•เตเด•เดคเตเดคเดฟเตฝ, เด‡เดคเต เดตเต‡เดฐเดฟเดฏเดฌเดฟเดณเดฟเดจเตเดฑเต† เด‰เดณเตเดณเดŸเด•เตเด•เด™เตเด™เตพ เด…เดฏเดฏเตเด•เตเด•เตเดจเตเดจเต VLC_SHOW, เดชเตˆเดชเตเดชเต เดตเดดเดฟเดฏเตเดณเตเดณ เด•เดฎเดพเตปเดกเต เด…เดจเตเดธเดฐเดฟเดšเตเดšเต, เดฒเตˆเตป 115-เตฝ เดธเตƒเดทเตเดŸเดฟเดšเตเดšเต. เดŽเดจเตเดจเดฟเดŸเตเดŸเต เด…เดตเดฟเดŸเต† เดŽเดจเตเดคเดพเดฃเต เดธเด‚เดญเดตเดฟเด•เตเด•เตเดจเตเดจเดคเต?

เด’เดจเตเดจเดพเดฎเดคเดพเดฏเดฟ, เด…เดคเต เด…เดตเดฟเดŸเต† เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจเต varnishadm, เดชเตเดจเดฐเดพเดฐเด‚เดญเดฟเด•เตเด•เดพเดคเต† เดตเดพเตผเดฃเดฟเดทเต เดธเดœเตเดœเต€เด•เดฐเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเต, เดตเดพเตผเดฃเดฟเดทเต เด‡เตปเดธเตเดฑเตเดฑเดฒเต‡เดทเตป เดชเดพเด•เตเด•เต‡เดœเดฟเดจเตเดฑเต† เดญเดพเด—เดฎเดพเดฃเต.

เด‰เดชเดธเด‚เด˜เด‚ vcl.show -v เตฝ เดตเตเดฏเด•เตเดคเดฎเดพเด•เตเด•เดฟเดฏ เดฎเตเดดเตเดตเตป เดตเดฟเดธเดฟเดŽเตฝ เด•เต‹เตบเดซเดฟเด—เดฑเต‡เดทเดจเตเด‚ เด”เดŸเตเดŸเตเดชเตเดŸเตเดŸเต เดšเต†เดฏเตเดฏเดพเตป เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจเต ${VCL_NAME}, STDOUT เดฒเต‡เด•เตเด•เต.

เดจเดฟเดฒเดตเดฟเดฒเต† เดธเดœเต€เดตเดฎเดพเดฏ 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 เดตเดณเดฐเต† เดคเด•เตผเดจเตเดจเดคเดพเดฏเดฟ เดฎเดพเดฑเดฟ - เด…เดคเดฟเตฝ เดคเดคเตเดซเดฒเดฎเดพเดฏเตเดฃเตเดŸเดพเด•เตเดจเตเดจ เด•เต‹เตบเดซเดฟเด—เดฑเต‡เดทเดจเตเดฑเต† เด‰เดณเตเดณเดŸเด•เตเด•เด‚ เด‰เตพเดชเตเดชเต†เดŸเตเดจเตเดจเต.

เด’เดฐเต เดธเดฎเตเดชเต‚เตผเดฃเตเดฃ VCL เด•เต‹เตบเดซเดฟเด—เดฑเต‡เดทเตป เดชเดฒเดชเตเดชเต‹เดดเตเด‚ เดชเดฒ เดซเดฏเดฒเตเด•เดณเดฟเตฝ เดจเดฟเดจเตเดจเตเด‚ เด’เดฐเตเดฎเดฟเดšเตเดšเต เดšเต‡เตผเด•เตเด•เดพเตป เด•เดดเดฟเดฏเตเดฎเต†เดจเตเดจเต เดฎเดจเดธเตเดธเดฟเดฒเดพเด•เตเด•เต‡เดฃเตเดŸเดคเต เดชเตเดฐเดงเดพเดจเดฎเดพเดฃเต. เดšเดฟเดฒ เด•เต‹เตบเดซเดฟเด—เดฑเต‡เดทเตป เดซเดฏเดฒเตเด•เตพ เดฎเดฑเตเดฑเตเดณเตเดณเดตเดฏเดฟเตฝ เดŽเดตเดฟเดŸเต†เดฏเดพเดฃเต เด‰เตพเดชเตเดชเต†เดŸเตเดคเตเดคเดฟเดฏเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเดคเต†เดจเตเดจเต เดคเดฟเดฐเดฟเดšเตเดšเดฑเดฟเดฏเดพเตป เดธเดฟ-เดธเตเดฑเตเดฑเตˆเตฝ เด•เดฎเดจเตเดฑเตเด•เตพ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจเต, เด…เดคเดพเดฃเต เด‡เดจเดฟเดชเตเดชเดฑเดฏเตเดจเตเดจ เด•เต‹เดกเต เดธเตโ€Œเดจเดฟเดชเตเดชเต†เดฑเตเดฑเดฟเดจเตเดฑเต† เด…เตผเดคเตเดฅเด‚.
เด‰เตพเดชเตเดชเต†เดŸเตเดคเตเดคเดฟเดฏ เดซเดฏเดฒเตเด•เตพ เดตเดฟเดตเดฐเดฟเด•เตเด•เตเดจเตเดจ เด…เดญเดฟเดชเตเดฐเดพเดฏเด™เตเด™เดณเตเดŸเต† เดตเดพเด•เตเดฏเด˜เดŸเดจ เด‡เดจเดฟเดชเตเดชเดฑเดฏเตเดจเตเดจ เดซเต‹เตผเดฎเดพเดฑเตเดฑเดฟเดฒเดพเดฃเต:

// VCL.SHOW <NUM> <NUM> <FILENAME>

เดˆ เดธเดจเตเดฆเตผเดญเดคเตเดคเดฟเตฝ เด…เด•เตเด•เด™เตเด™เตพ เดชเตเดฐเดงเดพเดจเดฎเดฒเตเดฒ, เดซเดฏเตฝ เดจเดพเดฎเดคเตเดคเดฟเตฝ เดžเด™เตเด™เตพเด•เตเด•เต เดคเดพเตฝเดชเตเดชเดฐเตเดฏเดฎเตเดฃเตเดŸเต.

เดฒเตˆเตป 116-เตฝ เด†เดฐเด‚เดญเดฟเด•เตเด•เตเดจเตเดจ เด•เดฎเดพเตปเดกเตเด•เดณเตเดŸเต† เดšเดคเตเดชเตเดชเดฟเตฝ เด†เดคเตเดฏเดจเตเดคเดฟเด•เดฎเดพเดฏเดฟ เดŽเดจเตเดคเดพเดฃเต เดธเด‚เดญเดตเดฟเด•เตเด•เตเดจเตเดจเดคเต?
เดจเดฎเตเด•เตเด•เดคเต เด•เดฃเตเดŸเต†เดคเตเดคเดพเด‚.
เดŸเต€เด‚ เดจเดพเดฒเต เดญเดพเด—เด™เตเด™เตพ เด‰เตพเด•เตเด•เตŠเดณเตเดณเตเดจเตเดจเต:

  1. เดฒเดณเดฟเดคเด‚ echo, เดตเต‡เดฐเดฟเดฏเดฌเดฟเดณเดฟเดจเตเดฑเต† เดฎเต‚เดฒเตเดฏเด‚ เดชเตเดฐเดฟเดจเตเดฑเต เดšเต†เดฏเตเดฏเตเดจเตเดจเต ${VCL_SHOW}
    echo "$VCL_SHOW"
  2. awk, เด’เดฐเต เดตเดฐเดฟ (เดฑเต†เด•เตเด•เต‹เตผเดกเต) เดคเดฟเดฐเดฏเตเดจเตเดจเต, เด…เดตเดฟเดŸเต† เดตเดพเดšเด•เด‚ เดคเด•เตผเดคเตเดคเดคเดฟเดจเต เดถเต‡เดทเด‚ เด†เดฆเตเดฏเดคเตเดคเต† เดซเต€เตฝเดกเต "//" เด†เดฃเต, เดฐเดฃเตเดŸเดพเดฎเดคเตเดคเต‡เดคเต "VCL.SHOW" เด†เดฃเต.
    เดˆ เดชเดพเดฑเตเดฑเต‡เดฃเตเด•เดณเตเดฎเดพเดฏเดฟ เดชเตŠเดฐเตเดคเตเดคเดชเตเดชเต†เดŸเตเดจเตเดจ เด†เดฆเตเดฏ เดตเดฐเดฟ Awk เดŽเดดเตเดคเตเด•เดฏเตเด‚ เดคเตเดŸเตผเดจเตเดจเต เดชเตเดฐเต‹เดธเดธเตเดธเดฟเด‚เด—เต เด‰เดŸเดจเดŸเดฟ เดจเดฟเตผเดคเตเดคเตเด•เดฏเตเด‚ เดšเต†เดฏเตเดฏเตเด‚.

    awk '$1 == "//" && $2 == "VCL.SHOW" {print; exit}'
  3. เดซเต€เตฝเดกเต เดฎเต‚เดฒเตเดฏเด™เตเด™เดณเต† เดธเตโ€Œเดชเต†เดฏเตโ€Œเดธเตเด•เดณเดพเตฝ เดตเต‡เตผเดคเดฟเดฐเดฟเดšเตเดš เด…เดžเตเดšเต เดตเต‡เดฐเดฟเดฏเดฌเดฟเดณเตเด•เดณเดพเดฏเดฟ เดธเด‚เดญเดฐเดฟเด•เตเด•เตเดจเตเดจ เด•เต‹เดกเดฟเดจเตเดฑเต† เด’เดฐเต เดฌเตเดฒเต‹เด•เตเด•เต. เด…เดžเตเดšเดพเดฎเดคเตเดคเต† FILE เดตเต‡เดฐเดฟเดฏเดฌเดฟเดณเดฟเดจเต เดฌเดพเด•เตเด•เดฟเดฏเตเดณเตเดณ เดตเดฐเดฟเด•เตพ เดฒเดญเดฟเด•เตเด•เตเดจเตเดจเต. เด…เดตเดธเดพเดจเดฎเดพเดฏเดฟ, เด…เดตเดธเดพเดจ เดŽเด•เตเด•เต‹ เดตเต‡เดฐเดฟเดฏเดฌเดฟเดณเดฟเดจเตเดฑเต† เด‰เดณเตเดณเดŸเด•เตเด•เด™เตเด™เตพ เดŽเดดเตเดคเตเดจเตเดจเต ${FILE}.
    { read -r DELIM VCL_SHOW INDEX SIZE FILE; echo "$FILE" }
  4. 1 เดฎเตเดคเตฝ 3 เดตเดฐเต†เดฏเตเดณเตเดณ เดŽเดฒเตเดฒเดพ เด˜เดŸเตเดŸเด™เตเด™เดณเตเด‚ เด’เดฐเต เดธเดฌเตเดทเต†เดฒเตเดฒเดฟเตฝ เด‰เตพเดชเตเดชเต†เดŸเตเดคเตเดคเดฟเดฏเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเดพเตฝ, เดฎเต‚เดฒเตเดฏเด‚ เด”เดŸเตเดŸเตเดชเตเดŸเตเดŸเต เดšเต†เดฏเตเดฏเตเดจเตเดจเต $FILE เด’เดฐเต เดตเต‡เดฐเดฟเดฏเดฌเดฟเดณเดฟเตฝ เดŽเดดเตเดคเดชเตเดชเต†เดŸเตเด‚ VCL_FILE.

เดฒเตˆเตป 119-เดฒเต† เด•เดฎเดจเตเดฑเต เดธเต‚เดšเดฟเดชเตเดชเดฟเด•เตเด•เตเดจเตเดจเดคเต เดชเต‹เดฒเต†, VCL เดซเดฏเดฒเตเด•เตพ เด…เดตเดฏเตเดŸเต† เดชเต‡เดฐเตเด•เดณเดฟเตฝ เดธเตโ€Œเดชเต†เดฏเตโ€Œเดธเตเด•เดณเตเดณเตเดณ เดฑเดซเดฑเตปเดธเต เดšเต†เดฏเตเดฏเตเดจเตเดจ เด•เต‡เดธเตเด•เตพ เดตเดฟเดถเตเดตเดธเดจเต€เดฏเดฎเดพเดฏเดฟ เด•เตˆเด•เดพเดฐเตเดฏเด‚ เดšเต†เดฏเตเดฏเตเดจเตเดจเดคเดฟเดจเตเดณเตเดณ เดเด• เด‰เดฆเตเดฆเต‡เดถเตเดฏเดฎเดพเดฃเต เด‡เดคเต เดšเต†เดฏเตเดฏเตเดจเตเดจเดคเต.

เด‡เดคเดฟเดจเตเดฑเต† เดฏเดฅเดพเตผเดคเตเดฅ เดชเตเดฐเต‹เดธเดธเตเดธเดฟเด‚เด—เต เดฒเต‹เดœเดฟเด•เตเด•เต เดžเดพเตป เด•เดฎเดจเตเดฑเต เดšเต†เดฏเตเดคเดฟเดŸเตเดŸเตเดฃเตเดŸเต ${VCL_FILE} เด•เดฎเดพเตปเดกเต เดธเต€เด•เตเดตเตปเดธเต เดฎเดพเดฑเตเดฑเดพเตป เดถเตเดฐเดฎเดฟเดšเตเดšเต, เดชเด•เตเดทเต‡ เด…เดคเต เด’เดจเตเดจเตเด‚ เดจเดฏเดฟเดšเตเดšเดฟเดฒเตเดฒ. เดŽเดฒเตเดฒเดพเด‚ เดŽเดจเดฟเด•เตเด•เต เดจเดจเตเดจเดพเดฏเดฟ เดชเตเดฐเดตเตผเดคเตเดคเดฟเดšเตเดšเต, เดชเด•เตเดทเต‡ เดžเดพเตป เดธเต‡เดตเดจเด‚ เด†เดฐเด‚เดญเดฟเดšเตเดšเดชเตเดชเต‹เตพ เด…เดคเต เด’เดฐเต เดชเดฟเดถเด•เต เดจเตฝเด•เดฟ.

เดธเตโ€Œเด•เตเดฐเดฟเดชเตเดฑเตเดฑเต เดธเตเดตเดฎเต‡เดงเดฏเดพ เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเด•เตเด•เตเดฎเตเดชเต‹เตพ เดชเดฟเดถเด•เต เดชเตเดจเตผเดจเดฟเตผเดฎเตเดฎเดฟเด•เตเด•เดพเตป เด•เดดเดฟเดฏเดฟเดฒเตเดฒเต†เดจเตเดจเต เดคเต‹เดจเตเดจเตเดจเตเดจเต, เด…เดคเต‡เดธเดฎเดฏเด‚ 30 เดฎเดฟเดจเดฟเดฑเตเดฑเต เด‡เดคเดฟเดจเด•เด‚ เด†เดฑเต เดคเดตเดฃ เด•เดพเดฒเดนเดฐเดฃเดชเตเดชเต†เดŸเตเดŸเต, เด•เต‚เดŸเดพเดคเต†, เด‰เดฏเตผเดจเตเดจ เดฎเตเตปเด—เดฃเดจเดฏเตเดณเตเดณ เด’เดฐเต เดŸเดพเดธเตโ€Œเด•เต เดชเตเดฐเดคเตเดฏเด•เตเดทเดชเตเดชเต†เดŸเตเดŸเต, เดฎเดฑเตเดฑเต เด•เดพเดฐเตเดฏเด™เตเด™เตพ เดฎเดพเดฑเตเดฑเดฟเดตเดšเตเดšเต. เด†เดดเตโ€Œเดšเดฏเดฟเดฒเต† เดฌเดพเด•เตเด•เดฟ เดธเดฎเดฏเด‚ เดชเดฒเดคเดฐเดคเตเดคเดฟเดฒเตเดณเตเดณ เดœเต‹เดฒเดฟเด•เดณเดพเตฝ เดจเดฟเดฑเดžเตเดžเดฟเดฐเตเดจเตเดจเต, เดธเต†เดกเดฟเดจเต†เด•เตเด•เตเดฑเดฟเดšเตเดšเตเดณเตเดณ เด’เดฐเต เดฑเดฟเดชเตเดชเต‹เตผเดŸเตเดŸเตเด‚ เด’เดฐเต เดธเตเดฅเดพเดจเดพเตผเดคเตเดฅเดฟเดฏเตเดฎเดพเดฏเตเดณเตเดณ เด…เดญเดฟเดฎเตเด–เดตเตเด‚ เด•เตŠเดฃเตเดŸเต เด…เดคเต เดšเต†เดฑเตเดคเดพเดฏเดฟ เดจเต‡เตผเดชเตเดชเดฟเดšเตเดšเต. เดชเดฟเดถเด•เตเดณเตเดณ เดชเตเดฐเดถเตเดจเด‚ varnishreload เด•เดพเดฒเดคเตเดคเดฟเดจเตเดฑเต† เดฎเดฃเดฒเดฟเตฝ เดคเดฟเดฐเดฟเดšเตเดšเต†เดŸเตเด•เตเด•เดพเดจเดพเดตเดพเดคเตเดคเดตเดฟเดงเด‚ เดจเดทเตเดŸเดชเตเดชเต†เดŸเตเดŸเต.

เดจเดฟเด™เตเด™เดณเตเดŸเต† เดธเต†เดกเต-เดซเต‚... เดฏเดฅเดพเตผเดคเตเดฅเดคเตเดคเดฟเตฝ... เดฎเดพเดฒเดฟเดจเตเดฏเดฎเดพเดฃเต

เด…เดŸเตเดคเตเดค เด†เดดเตโ€Œเดš เดŽเดจเดฟเด•เตเด•เต เดคเดฟเด•เดšเตเดšเตเด‚ เดธเต—เดœเดจเตเดฏเดฎเดพเดฏ เด’เดฐเต เดฆเดฟเดตเดธเด‚ เด‰เดฃเตเดŸเดพเดฏเดฟเดฐเตเดจเตเดจเต, เด…เดคเดฟเดจเดพเตฝ เดˆ เดŸเดฟเด•เตเด•เดฑเตเดฑเต เดตเต€เดฃเตเดŸเตเด‚ เด•เตˆเด•เดพเดฐเตเดฏเด‚ เดšเต†เดฏเตเดฏเดพเตป เดžเดพเตป เดคเต€เดฐเตเดฎเดพเดจเดฟเดšเตเดšเต. เดŽเดจเตเดฑเต† เดฎเดธเตเดคเดฟเดทเตเด•เดคเตเดคเดฟเตฝ, เดˆ เดธเดฎเดฏเดฎเดคเตเดฐเดฏเตเด‚ เดšเดฟเดฒ เดชเดถเตเดšเดพเดคเตเดคเดฒ เดชเตเดฐเด•เตเดฐเดฟเดฏเด•เตพ เดˆ เดชเตเดฐเดถเตโ€Œเดจเดคเตเดคเดฟเดจเต เดชเดฐเดฟเดนเดพเดฐเด‚ เดคเต‡เดŸเตเดจเตเดจเตเดฃเตเดŸเต†เดจเตเดจเต เดžเดพเตป เดชเตเดฐเดคเต€เด•เตเดทเดฟเดšเตเดšเต, เด‡เดคเตเดคเดตเดฃ เดŽเดจเตเดคเดพเดฃเต เดธเด‚เดญเดตเดฟเด•เตเด•เตเดจเตเดจเดคเต†เดจเตเดจเต เดŽเดจเดฟเด•เตเด•เต เดคเต€เตผเดšเตเดšเดฏเดพเดฏเตเด‚ เดฎเดจเดธเตเดธเดฟเดฒเดพเด•เตเด‚.

เด•เดดเดฟเดžเตเดž เดคเดตเดฃ เด•เต‹เดกเต เดฎเดพเดฑเตเดฑเตเดจเตเดจเดคเต เดธเดนเดพเดฏเดฟเด•เตเด•เดพเดคเตเดคเดคเดฟเดจเดพเตฝ, 116 เดตเดฐเดฟเดฏเดฟเตฝ เดจเดฟเดจเตเดจเต เด…เดคเต เดฎเดพเดฑเตเดฑเดฟเดฏเต†เดดเตเดคเดพเตป เดžเดพเตป เดคเต€เดฐเตเดฎเดพเดจเดฟเดšเตเดšเต. เดเดคเดพเดฏเดพเดฒเตเด‚ เดจเดฟเดฒเดตเดฟเดฒเตเดณเตเดณ เด•เต‹เดกเต เดฎเดฃเตเดŸเดคเตเดคเดฐเดฎเดพเดฏเดฟเดฐเตเดจเตเดจเต. เด•เต‚เดŸเดพเดคเต† เด…เดคเต เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เต‡เดฃเตเดŸ เด†เดตเดถเตเดฏเดฎเดฟเดฒเตเดฒ read.

เดชเดฟเดถเด•เต เดตเต€เดฃเตเดŸเตเด‚ เดจเต‹เด•เตเด•เตเดจเตเดจเต:
sh: echo: broken pipe - เดˆ เด•เดฎเดพเตปเดกเดฟเตฝ เดฐเดฃเตเดŸเต เดธเตเดฅเดฒเด™เตเด™เดณเดฟเตฝ เดชเตเดฐเดคเดฟเดงเตเดตเดจเดฟ เดฆเตƒเดถเตเดฏเดฎเดพเด•เตเดจเตเดจเต, เดชเด•เตเดทเต‡ เด†เดฆเตเดฏเดคเตเดคเต‡เดคเต เด•เต‚เดŸเตเดคเตฝ เดธเดพเดงเตเดฏเดคเดฏเตเดณเตเดณ เด•เตเดฑเตเดฑเดตเดพเดณเดฟเดฏเดพเดฃเต†เดจเตเดจเต เดžเดพเตป เดธเด‚เดถเดฏเดฟเด•เตเด•เตเดจเตเดจเต (เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ เด•เตเดฑเดžเตเดžเดคเต เด’เดฐเต เดชเด™เตเด•เดพเดณเดฟเดฏเต†เด™เตเด•เดฟเดฒเตเด‚). Awk เด†เดคเตเดฎเดตเดฟเดถเตเดตเดพเดธเด‚ เดจเตฝเด•เตเดจเตเดจเดฟเดฒเตเดฒ. เด…เดคเต เดถเดฐเดฟเด•เตเด•เตเด‚ เด†เดฃเต†เด™เตเด•เดฟเตฝ awk | {read; echo} เดกเดฟเดธเตˆเตป เดˆ เดชเตเดฐเดถเตเดจเด™เตเด™เดณเดฟเดฒเต‡เด•เตเด•เต เดจเดฏเดฟเด•เตเด•เตเดจเตเดจเต, เดŽเดจเตเดคเตเด•เตŠเดฃเตเดŸเต เด…เดคเต เดฎเดพเดฑเตเดฑเดฟเดธเตเดฅเดพเดชเดฟเดšเตเดšเตเด•เต‚เดŸเดพ? เดˆ เด’เดฑเตเดฑเดตเดฐเดฟ เด•เดฎเดพเตปเดกเต awk-เดจเตเดฑเต† เดŽเดฒเตเดฒเดพ เดธเดตเดฟเดถเต‡เดทเดคเด•เดณเตเด‚ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจเดฟเดฒเตเดฒ, เด•เต‚เดŸเดพเดคเต† เดˆ เด…เดงเดฟเด•เดตเตเด‚ read เด‡เดคเตเด•เต‚เดŸเดพเดคเต†.

เด•เดดเดฟเดžเตเดž เด†เดดเตเดš เดฎเตเดคเตฝ เด’เดฐเต เดฑเดฟเดชเตเดชเต‹เตผเดŸเตเดŸเต เด‰เดฃเตเดŸเดพเดฏเดฟเดฐเตเดจเตเดจเต sed, เดชเตเดคเตเดคเดพเดฏเดฟ เดจเต‡เดŸเดฟเดฏ เดŽเดจเตเดฑเต† เด•เดดเดฟเดตเตเด•เตพ เดชเดฐเต€เด•เตเดทเดฟเด•เตเด•เดพเดจเตเด‚ เดฒเดณเดฟเดคเดฎเดพเด•เตเด•เดพเดจเตเด‚ เดžเดพเตป เด†เด—เตเดฐเดนเดฟเดšเตเดšเต echo | awk | { read; echo} เด•เต‚เดŸเตเดคเตฝ เดฎเดจเดธเตเดธเดฟเดฒเดพเด•เตเด•เดพเดตเตเดจเตเดจเดคเดฟเดฒเต‡เด•เตเด•เต echo | sed. เด‡เดคเต เดคเต€เตผเดšเตเดšเดฏเดพเดฏเตเด‚ เดฌเด—เต เดคเดฟเดฐเดฟเดšเตเดšเดฑเดฟเดฏเตเดจเตเดจเดคเดฟเดจเตเดณเตเดณ เดเดฑเตเดฑเดตเตเด‚ เดจเดฒเตเดฒ เดธเดฎเต€เดชเดจเดฎเดฒเตเดฒเต†เด™เตเด•เดฟเดฒเตเด‚, เด•เตเดฑเดžเตเดžเดคเต เดŽเดจเตเดฑเต† เดธเต†เดกเต-เดซเต‚ เดชเดฐเต€เด•เตเดทเดฟเด•เตเด•เดฃเดฎเต†เดจเตเดจเตเด‚ เดชเตเดฐเดถเตโ€Œเดจเดคเตเดคเต†เด•เตเด•เตเดฑเดฟเดšเตเดšเต เดชเตเดคเดฟเดฏ เดŽเดจเตเดคเต†เด™เตเด•เดฟเดฒเตเด‚ เดชเด เดฟเด•เตเด•เดฃเดฎเต†เดจเตเดจเตเด‚ เดžเดพเตป เด•เดฐเตเดคเดฟ. เดตเดดเดฟเดฏเดฟเตฝ, เดธเต†เดกเต เดŸเต‹เด•เตเด•เดฟเดจเตเดฑเต† เดฐเดšเดฏเดฟเดคเดพเดตเดพเดฏ เดŽเดจเตเดฑเต† เดธเดนเดชเตเดฐเดตเตผเดคเตเดคเด•เดจเต‹เดŸเต เด•เต‚เดŸเตเดคเตฝ เด•เดพเดฐเตเดฏเด•เตเดทเดฎเดฎเดพเดฏ เดธเต†เดกเต เดธเตเด•เตเดฐเดฟเดชเตเดฑเตเดฑเต เด•เตŠเดฃเตเดŸเตเดตเดฐเดพเตป เดŽเดจเตเดจเต† เดธเดนเดพเดฏเดฟเด•เตเด•เดพเตป เดžเดพเตป เด†เดตเดถเตเดฏเดชเตเดชเต†เดŸเตเดŸเต.

เดžเดพเตป เด‰เดณเตเดณเดŸเด•เตเด•เด‚ เด‰เดชเต‡เด•เตเดทเดฟเดšเตเดšเต varnishadm vcl.show -v "$VCL_NAME" เด’เดฐเต เดซเดฏเดฒเดฟเดฒเต‡เด•เตเด•เต, เด…เดคเดฟเดจเดพเตฝ เดธเตผเดตเต€เดธเต เดฑเต€เดฌเต‚เดŸเตเดŸเตเด•เดณเตเดŸเต† เด’เดฐเต เดฌเตเดฆเตเดงเดฟเดฎเตเดŸเตเดŸเตเด‚ เด•เต‚เดŸเดพเดคเต† เดธเต†เดกเต เดธเตเด•เตเดฐเดฟเดชเตเดฑเตเดฑเต เดŽเดดเตเดคเตเดจเตเดจเดคเดฟเตฝ เดŽเดจเดฟเด•เตเด•เต เดถเตเดฐเดฆเตเดง เด•เต‡เดจเตเดฆเตเดฐเต€เด•เดฐเดฟเด•เตเด•เดพเตป เด•เดดเดฟเดฏเตเด‚.

เดธเต†เดกเต เดชเตเดฐเต‹เดธเดธเต เด‡เตปเดชเตเดŸเตเดŸเต เดŽเด™เตเด™เดจเต† เด•เดฃเตเดŸเต†เดคเตเดคเดพเด‚ เดŽเดจเตเดจเดคเดฟเดจเตเดฑเต† เด’เดฐเต เดšเต†เดฑเดฟเดฏ เดตเดฟเดตเดฐเดฃเด‚ เด…เดตเดจเตเดฑเต† เด—เตเดจเต เดฎเดพเดจเตเดตเตฝ. เดธเต†เดกเต เด‰เดฑเดตเดฟเดŸเด™เตเด™เดณเดฟเตฝ เดšเดฟเดนเตเดจเด‚ 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 เด…เดตเดธเดพเดจเดฟเด•เตเด•เตเดจเตเดจเดคเต.

# ัˆะฐะณ ะฟะตั€ะฒั‹ะน, ะฒั‹ะฒะตัั‚ะธ ั‚ะพะปัŒะบะพ ัั‚ั€ะพะบะธ ั ะบะพะผะผะตะฝั‚ะฐั€ะธัะผะธ
# ะธัะฟะพะปัŒะทัƒั ะฒะพะทะผะพะถะฝะพัั‚ะธ sed, ะพะฟั€ะตะดะตะปัะตั‚ัั ัะธะผะฒะพะป-ั€ะฐะทะดะตะปะธั‚ะตะปัŒ ั ะฟะพะผะพั‰ัŒัŽ ะบะพะฝัั‚ั€ัƒะบั†ะธะธ '#' ะฒะผะตัั‚ะพ ะพะฑั‹ั‡ะฝะพ ะธัะฟะพะปัŒะทัƒะตะผะพะณะพ '/', ะทะฐ ัั‡ั‘ั‚ ัั‚ะพะณะพ ะฝะต ะฟั€ะธะดั‘ั‚ัั ัะบั€ะฐะฝะธั€ะพะฒะฐั‚ัŒ ะบะพัั‹ะต ะฒ ะธัะบะพะผะพะผ ะบะพะผะผะตะฝั‚ะฐั€ะธะธ
# ะพะฟั€ะตะดะตะปัะตั‚ัั ั€ะตะณัƒะปัั€ะฝะพะต ะฒั‹ั€ะฐะถะตะฝะธะต โ€œ// VCL.SHOWโ€, ะดะปั ะฟะพะธัะบะฐ ัั‚ั€ะพะบ ั ะพะฟั€ะตะดะตะปะตะฝะฝั‹ะผ ัˆะฐะฑะปะพะฝะพะผ
# ั„ะปะฐะณ -n ะฟะพะทะฐะฑะพั‚ะธั‚ัั ะพ ั‚ะพะผ, ั‡ั‚ะพะฑั‹ sed ะฝะต ะฒั‹ะฒะพะดะธะป ะฒัะต ะฒั…ะพะดะฝั‹ะต ะดะฐะฝะฝั‹ะต, ะบะฐะบ ะพะฝ ัั‚ะพ ะดะตะปะฐะตั‚ ะฟะพ ัƒะผะพะปั‡ะฐะฝะธัŽ (ัะผ. ััั‹ะปะบัƒ ะฒั‹ัˆะต)
# -E ะฟะพะทะฒะพะปัะตั‚ ะธัะฟะพะปัŒะทะพะฒะฐั‚ัŒ ั€ะฐััˆะธั€ะตะฝะฝั‹ะต ั€ะตะณัƒะปัั€ะฝั‹ะต ะฒั‹ั€ะฐะถะตะฝะธั
> cat vcl-processor-1.sed
#// VCL.SHOW#p
> sed -En -f vcl-processor-1.sed vcl-example.vcl
// VCL.SHOW 0 1578 file with 3 spaces.vcl
// VCL.SHOW 0 1578 file.vcl
// VCL.SHOW 0 1578 file with TWOspaces.vcl

# ัˆะฐะณ ะฒั‚ะพั€ะพะน, ะฒั‹ะฒะตัั‚ะธ ั‚ะพะปัŒะบะพ ะธะผั ั„ะฐะนะปะฐ
# ะธัะฟะพะปัŒะทัƒั ะบะพะผะฐะฝะดัƒ โ€œsubstituteโ€, ั ะณั€ัƒะฟะฟะฐะผะธ ะฒะฝัƒั‚ั€ะธ ั€ะตะณัƒะปัั€ะฝั‹ั… ะฒั‹ั€ะฐะถะตะฝะธะน, ะพั‚ะพะฑั€ะฐะถะฐะตั‚ัั ั‚ะพะปัŒะบะพ ะฝัƒะถะฝะฐั ะณั€ัƒะฟะฟa
# ะธ ัั‚ะพ ะดะตะปะฐะตั‚ัั ั‚ะพะปัŒะบะพ ะดะปั ัะพะฒะฟะฐะดะตะฝะธะน, ั€ะฐะฝะตะต ะพะฟะธัะฐะฝะฝะพะณะพ ะฟะพะธัะบะฐ
> cat vcl-processor-2.sed
#// VCL.SHOW# {
    s#.* [0-9]+ [0-9]+ (.*)$#1#
    p
}
> sed -En -f vcl-processor-2.sed vcl-example.vcl
file with 3 spaces.vcl
file.vcl
file with TWOspaces.vcl

# ัˆะฐะณ ั‚ั€ะตั‚ะธะน, ะฟะพะปัƒั‡ะธั‚ัŒ ั‚ะพะปัŒะบะพ ะฟะตั€ะฒั‹ะน ะธะท ั€ะตะทัƒะปัŒั‚ะฐั‚ะพะฒ
# ะบะฐะบ ะธ ะฒ ัะปัƒั‡ะฐะต ั awk, ะดะพะฑะฐะฒะปัะตั‚ัั ะฝะตะผะตะดะปะตะฝะฝะพะต ะทะฐะฒะตั€ัˆะตะฝะธั ะฟะพัะปะต ะฟะตั‡ะฐั‚ะธ ะฟะตั€ะฒะพะณะพ ะฝะฐะนะดะตะฝะฝะพะณะพ ัะพะฒะฟะฐะดะตะฝะธั
> cat vcl-processor-3.sed
#// VCL.SHOW# {
    s#.* [0-9]+ [0-9]+ (.*)$#1#
    p
    q
}
> sed -En -f vcl-processor-3.sed vcl-example.vcl
file with 3 spaces.vcl

# ัˆะฐะณ ั‡ะตั‚ะฒะตั€ั‚ั‹ะน, ัั…ะปะพะฟะฝัƒั‚ัŒ ะฒัั‘ ะฒ ะพะดะฝะพัั‚ั€ะพั‡ะฝะธะบ, ะธัะฟะพะปัŒะทัƒั ะดะฒะพะตั‚ะพั‡ะธั ะดะปั ั€ะฐะทะดะตะปะตะฝะธั ะบะพะผะฐะฝะด
> sed -En -e '#// VCL.SHOW#{s#.* [0-9]+ [0-9]+ (.*)$#1#p;q;}' vcl-example.vcl
file with 3 spaces.vcl

เด…เดคเดฟเดจเดพเตฝ, เดตเดพเตผเดฃเดฟเดทเตเดฐเต†เดฒเต‹เดกเต เดธเตเด•เตเดฐเดฟเดชเตเดฑเตเดฑเดฟเดจเตเดฑเต† เด‰เดณเตเดณเดŸเด•เตเด•เด‚ เด‡เดคเตเดชเต‹เดฒเต†เดฏเดพเดฏเดฟเดฐเดฟเด•เตเด•เตเด‚:

VCL_FILE="$(echo "$VCL_SHOW" | sed -En '#// VCL.SHOW#{s#.*[0-9]+ [0-9]+ (.*)$#1#p;q;};')"

เดฎเต‡เตฝเดชเตเดชเดฑเดžเตเดž เดฏเตเด•เตเดคเดฟเดฏเต† เดธเด‚เด•เตเดทเดฟเดชเตเดคเดฎเดพเดฏเดฟ เด‡เดจเดฟเดชเตเดชเดฑเดฏเตเดจเตเดจ เดฐเต€เดคเดฟเดฏเดฟเตฝ เดชเตเดฐเด•เดŸเดฟเดชเตเดชเดฟเด•เตเด•เดพเด‚:
เดธเตเดŸเตเดฐเดฟเด‚เด—เต เด’เดฐเต เดธเดพเดงเดพเดฐเดฃ เดชเดฆเดชเตเดฐเดฏเต‹เด—เดตเตเดฎเดพเดฏเดฟ เดชเตŠเดฐเตเดคเตเดคเดชเตเดชเต†เดŸเตเดจเตเดจเตเดตเต†เด™เตเด•เดฟเตฝ // VCL.SHOW, เดคเตเดŸเตผเดจเตเดจเต เดˆ เดตเดฐเดฟเดฏเดฟเดฒเต† เดฐเดฃเตเดŸเต เด…เด•เตเด•เด™เตเด™เดณเตเด‚ เด‰เตพเดชเตเดชเต†เดŸเตเดจเตเดจ เดตเดพเดšเด•เด‚ เด…เดคเตเดฏเดพเด—เตเดฐเดนเดคเตเดคเต‹เดŸเต† เดตเดฟเดดเตเด™เตเด™เตเด•, เดˆ เดชเตเดฐเดตเตผเดคเตเดคเดจเดคเตเดคเดฟเดจเต เดถเต‡เดทเด‚ เดถเต‡เดทเดฟเด•เตเด•เตเดจเตเดจเดคเต†เดฒเตเดฒเดพเด‚ เดธเด‚เดฐเด•เตเดทเดฟเด•เตเด•เตเด•. เดธเด‚เดญเดฐเดฟเดšเตเดš เดฎเต‚เดฒเตเดฏเด‚ เดŽเดฎเดฟเดฑเตเดฑเต เดšเต†เดฏเตเดคเต เดชเตเดฐเต‹เด—เตเดฐเดพเด‚ เด…เดตเดธเดพเดจเดฟเดชเตเดชเดฟเด•เตเด•เตเด•.

เดฒเดณเดฟเดคเด‚, เด…เดฒเตเดฒเต‡?

เดธเต†เดกเต เดธเตเด•เตเดฐเดฟเดชเตเดฑเตเดฑเดฟเดฒเตเด‚ เด…เดคเต เดŽเดฒเตเดฒเดพ เด’เดฑเดฟเดœเดฟเดจเตฝ เด•เต‹เดกเดฟเดจเต†เดฏเตเด‚ เดฎเดพเดฑเตเดฑเดฟเดธเตเดฅเดพเดชเดฟเดšเตเดšเดคเดฟเดฒเตเด‚ เดžเด™เตเด™เตพ เดธเดจเตเดคเตเดทเตเดŸเดฐเดพเดฏเดฟเดฐเตเดจเตเดจเต. เดŽเดจเตเดฑเต† เดŽเดฒเตเดฒเดพ เดชเดฐเดฟเดถเต‹เดงเดจเด•เดณเตเด‚ เด†เดตเดถเตเดฏเดฎเตเดณเตเดณ เดซเดฒเด™เตเด™เตพ เดจเตฝเด•เดฟ, เด…เดคเดฟเดจเดพเตฝ เดžเดพเตป เดธเต†เตผเดตเดฑเดฟเดฒเต† "เดตเดพเตผเดฃเดฟเดทเตเดฐเต†เดฒเต‹เดกเต" เดฎเดพเดฑเตเดฑเดฟ เดตเต€เดฃเตเดŸเตเด‚ เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเดšเตเดšเต systemctl reload varnish. เดฎเต‹เดถเด‚ เดคเต†เดฑเตเดฑเต echo: write error: Broken pipe เดžเด™เตเด™เดณเตเดŸเต† เดฎเตเด–เดคเตเดคเต เดตเต€เดฃเตเดŸเตเด‚ เดšเดฟเดฐเดฟเดšเตเดšเต. เดŸเต†เตผเดฎเดฟเดจเดฒเดฟเดจเตเดฑเต† เด‡เดฐเตเดฃเตเดŸ เดถเต‚เดจเตเดฏเดคเดฏเดฟเตฝ เด’เดฐเต เดชเตเดคเดฟเดฏ เด•เดฎเดพเตปเดกเดฟเดจเดพเดฏเดฟ เด•เดฃเตเดฃเดฟเดฑเตเด•เตเด•เตเดจเตเดจ เด•เดดเตเดธเตผ เด•เดพเดคเตเดคเดฟเดฐเดฟเด•เตเด•เตเด•เดฏเดพเดฏเดฟเดฐเตเดจเตเดจเต...

เด…เดตเดฒเด‚เดฌเด‚: www.habr.com

เด’เดฐเต เด…เดญเดฟเดชเตเดฐเดพเดฏเด‚ เดšเต‡เตผเด•เตเด•เตเด•