"เช เชนเซเช เชเซเช," เชคเซ เชธเซเชเซเชฐเซเชจ เชชเชฐเชจเชพ เชชเซเชฐเชคเซเชเซเชฎเชพเชเชฅเซ เชเช เชคเชฐเชซ เชเชถเชพเชฐเซ เชเชฐเซเชจเซ เชเชนเซ เชเซ, "เชนเซเช เชคเชฎเชจเซ เชฎเชพเชฐเซ เชฒเชพเชฒ เชเซเชชเซ เชชเชฐ เชถเชฐเชค เชฒเชเชพเชตเซเช เชเซเช, เชเซ เช เชฎเซ เชคเชฎเชจเซ เช เชนเซเช เชเซ เชฎเซเชเชฒเซเชฏเซเช เชเซ เชคเซ เชเชฎเซเชฐเซเชถเซเช," เชเซเชกเชจเชพ เชฌเซเชเชพ เชตเชฟเชญเชพเช เชคเชฐเชซ เชจเชฟเชฐเซเชฆเซเชถ เชเชฐเซเชจเซ, "เชญเซเชฒ เชนเชตเซ เชชเซเชฐเชฆเชฐเซเชถเชฟเชค เชฅเชถเซ เชจเชนเซเช."
เชฅเซเชกเซ เชฎเซเชเชเชตเชฃเชญเชฐเซเชฏเซ เช
เชจเซ เชฅเชพเชเซเชฒเชพ, เชนเซเช เชธเซเชก เชธเซเชเซเชเชฎเซเชจเซเชเชฎเชพเช เชซเซเชฐเชซเชพเชฐ เชเชฐเซเช เชเซเช เชเซเชจเชพ เชชเชฐ เช
เชฎเซ เชฅเซเชกเชพ เชธเชฎเชฏเชฅเซ เชเชพเชฎ เชเชฐเซ เชฐเชนเซเชฏเชพ เชเซเช, เชซเชพเชเชฒ เชธเชพเชเชตเซ เช
เชจเซ เชเชฒเชพเชตเซ systemctl varnish reload
. เชญเซเชฒ เชธเชเชฆเซเชถ เช
เชฆเซเชถเซเชฏ เชฅเช เชเชฏเซ เชเซ...
"เชฎเซเช เชเชฎเซเชฆเชตเชพเชฐ เชธเชพเชฅเซ เชเชฎเซเชเชฒเชจเซ เชเชช-เชฒเซ เชเชฐเซ," เชฎเชพเชฐเชพ เชธเชพเชฅเซเชฆเชพเชฐเซ เชเชพเชฒเซ เชฐเชพเชเซเชฏเซเช, เชเชพเชฐเชฃ เชเซ เชคเซเชจเซ เชธเซเชฎเชฟเชค เชเชจเชเชฆเชฅเซ เชญเชฐเชชเซเชฐ เช เชธเชฒเซ เชธเซเชฎเชฟเชคเชฎเชพเช เชซเซเชฐเชตเชพเช เชเชพเชฏ เชเซ, "เช เชเชพเชจเช เชฎเชจเซ เชเชฌเชฐ เชชเชกเซ เชเซ เช เชฌเชฐเชพเชฌเชฐ เช เช เชธเชฎเชธเซเชฏเชพ เชเซ!"
เชคเซ เชฌเชงเซเช เชเซเชตเซ เชฐเซเชคเซ เชถเชฐเซ เชฅเชฏเซเช
เชฒเซเช เชเซเชตเซ เชฐเซเชคเซ bash, awk, sed เช
เชจเซ systemd เชเชพเชฎ เชเชฐเซ เชเซ เชคเซเชจเซ เชธเชฎเช เชงเชพเชฐเซ เชเซ. เชตเชพเชฐเซเชจเชฟเชถเชจเซเช เชเซเชเชพเชจ เชชเซเชฐเชพเชงเชพเชจเซเชฏ เชเซ เชชเชฐเชเชคเซ เชเชฐเซเชฐเซ เชจเชฅเซ.
เชธเซเชจเชฟเชชเซเชเซเชธเชฎเชพเช เชเชพเชเชฎเชธเซเชเซเชฎเซเชช เชฌเชฆเชฒเชตเชพเชฎเชพเช เชเชตเซเชฏเชพ เชเซ.
เชธเชพเชฅเซ เชฒเชเชพเชฏเซเชฒ
เช เชฒเชเชพเชฃ เชฌเซ เช
เช เชตเชพเชกเชฟเชฏเชพ เชชเชนเซเชฒเชพ เช
เชเชเซเชฐเซเชเซเชฎเชพเช เชชเซเชฐเชเชพเชถเชฟเชค เชฅเชฏเซเชฒ เชฎเซเชณเชจเซ เช
เชจเซเชตเชพเชฆ เชเซ; เช
เชจเซเชตเชพเชฆ
เช เชจเซเชฏ เชเชฐเชฎ เชชเชพเชจเชเชฐเชจเซ เชธเชตเชพเชฐเซ เชตเชฟเชนเชเชเชฎ เชฌเชพเชฐเซเชเชฎเชพเชเชฅเซ เชธเซเชฐเซเชฏ เชเชณเชเซ เชเซ, เชคเชพเชเชพ เชเชเชพเชณเซเชฒเชพ เชเซเชซเซเชจเชฏเซเชเซเชค เชชเซเชฃเชพเชเชจเซ เชเช เชเชช เชเซเชฌเซเชฐเซเชกเชฅเซ เชฆเซเชฐ เชฐเชนเซ เชเซ, เชนเซเชกเชซเซเชจเชฎเชพเช เชฏเชพเชเชคเซเชฐเชฟเช เชเซเชฌเซเชฐเซเชกเชจเชพ เชเชกเชเชกเชพเช เชชเชฐ เช เชตเชพเชเซเชจเซ เชฎเชจเชชเชธเชเชฆ เชธเชฟเชฎเซเชซเชจเซ เชตเชพเชเซ เชเซ, เช เชจเซ เชเชพเชจเชฌเชจ เชฌเซเชฐเซเชก เชชเชฐ เชฌเซเชเชฒเซเช เชเชฟเชเชฟเชเชจเซ เชฏเชพเชฆเซเชฎเชพเช เชชเซเชฐเชฅเชฎ เชเชจเซเชเซเชฐเซ เชเซ: "เชนเซเช เชเซเชฌ เช เชฐเชฎเซเชเซ เชถเซเชฐเซเชทเช เชธเชพเชฅเซ. เชธเซเชเซเชเชฟเชเชเชฎเชพเช เช เชเชฐเชฐโ (เชธเซเชเซเชเชฎเชพเช โvarnishreload sh : echo: I/O เชเชฐเชฐโเชจเซ เชคเชชเชพเชธ เชเชฐเซ). เชเซเชฏเชพเชฐเซ เชตเชพเชฐเซเชจเชฟเชถเชจเซ เชตเชพเชค เชเชตเซ เชเซ, เชคเซเชฏเชพเช เชเซเช เชญเซเชฒเซ เชจเชฅเซ เช เชจเซ เชนเซเช เชถเชเชคเซ เชจเชฅเซ, เชชเชเซ เชญเชฒเซ เชคเซ เชเซเช เชธเชฎเชธเซเชฏเชพเชฎเชพเช เชชเชฐเชฟเชฃเชฎเชคเซ เชจ เชนเซเชฏ, เชเซเชฎ เชเซ เช เชเชฟเชธเซเชธเชพเชฎเชพเช.
เชเซเช เชชเชฐเชฟเชเชฟเชค เชจเชฅเซ เชคเซเชฎเชจเชพ เชฎเชพเชเซ
เชเชฟเชเชฟเชเชจเซเช เชถเซเชฐเซเชทเช เชธเซเชเชตเซ เชเซ เชคเซเชฎ, เชธเซเชเซเชเชฎเชพเชเชจเชพ เชเช เชธเชฐเซเชตเชฐ เชชเชฐ เชญเซเชฒ เชเชตเซ เชนเชคเซ, เช เชจเซ เชฎเชจเซ เชตเชฟเชถเซเชตเชพเชธ เชนเชคเซ เชเซ เชธเซเชเซเชเชฎเชพเช เชตเชพเชฐเซเชจเชฟเชถเชจเซเช เชฐเซเชเซเชเช เชฏเซเชเซเชฏ เชฐเซเชคเซ เชเชพเชฎ เชเชฐเซ เชฐเชนเซเชฏเซเช เชเซ, เชคเซเชฅเซ เชฎเซเช เชงเชพเชฐเซเชฏเซเช เชเซ เช เชเช เชจเชพเชจเซ เชญเซเชฒ เชนเชถเซ. เชคเซเชฅเซ, เชซเชเซเชค เชเช เชธเชเชฆเซเชถ เชเซ เชชเชนเซเชฒเชพเชฅเซ เชฌเชเชง เชเชเชเชชเซเช เชชเซเชฐเชตเชพเชนเชฎเชพเช เชเชตเซเชฏเซ. เชนเซเช เชฎเชพเชฐเชพ เชฎเชพเชเซ เชเชฟเชเชฟเช เชฒเชเช เชเซเช, เชธเชเชชเซเชฐเซเชฃ เชตเชฟเชถเซเชตเชพเชธ เชธเชพเชฅเซ เชเซ เชนเซเช เชคเซเชจเซ 30 เชฎเชฟเชจเชฟเชเชฅเซ เชเชเชพ เชธเชฎเชฏเชฎเชพเช เชคเซเชฏเชพเชฐ เชเชฐเซเชถ, เชเชเชพเชฎเซ เชเชเชเชจเชพ เชฌเซเชฐเซเชกเชจเซ เชธเชพเชซ เชเชฐเชตเชพ เชฎเชพเชเซ เชฎเชพเชฐเซ เชเชพเชคเชจเซ เชเชญเชพ เชชเชฐ เชฅเชชเชพเชตเซเชถ เช เชจเซ เชตเชงเซ เชฎเชนเชคเซเชตเชชเซเชฐเซเชฃ เชฌเชพเชฌเชคเซ เชชเชฐ เชชเชพเชเชพ เชเชตเซเชถ.
200 เชเชฟเชฎเซ/เชเชฒเชพเชเชจเซ เชเชกเชชเซ เชฆเชฟเชตเชพเชฒ เชธเชพเชฅเซ เช เชฅเชกเชพเชตเซเช
เชซเชพเชเชฒ เชเซเชฒเซ เชฐเชนเซเชฏเชพ เชเซเช varnishreload
, เชกเซเชฌเชฟเชฏเชจ เชธเซเชเซเชฐเซเช เชเชฒเชพเชตเชคเชพ เชธเชฐเซเชตเชฐเชฎเชพเชเชฅเซ เชเช เชชเชฐ, เชฎเซเช 200 เชฅเซ เชเชเซ เชฒเซเชเซเช เชฒเชพเชเชฌเซ เชถเซเชฒ เชธเซเชเซเชฐเชฟเชชเซเช เชเซเช.
เชธเซเชเซเชฐเชฟเชชเซเช เชฆเซเชตเชพเชฐเชพ เชเชพเชฒเชคเชพ, เชฎเชจเซ เชเชตเซเช เชเชเช เชฆเซเชเชพเชคเซเช เชจเชนเซเชคเซเช เชเซ เชเซ เชคเซเชจเซ เชเชฐเซเชฎเชฟเชจเชฒเชฅเซ เชธเซเชงเซ เชเชฃเซ เชตเชเชค เชเชฒเชพเชตเชคเซ เชตเชเชคเซ เชธเชฎเชธเซเชฏเชพ เชเชญเซ เชเชฐเซ เชถเชเซ.
เชเซเชตเชเซ, เช เชเช เชคเชฌเชเซเชเซ เชเซ, เชเซ เชคเซ เชคเซเชเซ เชเชพเชฏ เชคเซ เชชเชฃ, เชเซเช เชซเชฐเชฟเชฏเชพเชฆ เชเชฐเชถเซ เชจเชนเซเช, เชธเชพเชฐเซเช ... เชตเชงเซ เชชเชกเชคเซเช เชจเชฅเซ. เชนเซเช เชธเซเชเซเชฐเชฟเชชเซเช เชเชฒเชพเชตเซเช เชเซเช เช เชจเซ เชเซเชเช เชเซเช เชเซ เชเชฐเซเชฎเชฟเชจเชฒ เชชเชฐ เชถเซเช เชฒเชเชตเชพเชฎเชพเช เชเชตเชถเซ, เชชเชฐเชเชคเซ เชญเซเชฒเซ เชนเชตเซ เชฆเซเชเชพเชคเซ เชจเชฅเซ.
เชนเซเช เชเซเชเชฒเชพเช เชตเชงเชพเชฐเชพเชจเชพ เชชเซเชฐเชฏเชคเซเชจเซ เชตเชฟเชจเชพ เชญเซเชฒเชจเซเช เชชเซเชจเชเชเชคเซเชชเชพเชฆเชจ เชเชฐเซ เชถเชเชคเซ เชจเชฅเซ เชคเซเชจเซ เชเชพเชคเชฐเซ เชเชฐเชตเชพ เชฎเชพเชเซ เชฅเซเชกเชพ เชตเชงเซ เชฆเซเชกเซ เชเซ, เช เชจเซ เชนเซเช เช เชธเซเชเซเชฐเชฟเชชเซเชเชจเซ เชเซเชตเซ เชฐเซเชคเซ เชฌเชฆเชฒเชตเซ เชคเซ เชถเซเชงเชตเชพเชจเซเช เชถเชฐเซ เชเชฐเซเช เชเซเช เช เชจเซ เชคเซ เชนเชเซ เชชเชฃ เชญเซเชฒ เชซเซเชเชเซ เชฆเซ เชเซ.
เชถเซเช เชธเซเชเซเชฐเชฟเชชเซเช STDOUT (เชจเซ เชเชชเชฏเซเช เชเชฐเซเชจเซ > &-
)? เช
เชฅเชตเชพ STDERR? เช
เชเชคเซ เชฌเชเชจเซเช เชเชพเชฎ เชเชฐเซเชฏเซเช เชจเชนเซเช.
เชฆเซเชเซเชคเซ เชฐเซเชคเซ systemd เชฐเชจ เชชเชฐเซเชฏเชพเชตเชฐเชฃเชจเซ เช
เชฎเซเช เชฐเซเชคเซ เชฌเชฆเชฒเซ เชเซ, เชชเชฐเชเชคเซ เชเซเชตเซ เชฐเซเชคเซ เช
เชจเซ เชถเชพ เชฎเชพเชเซ?
เชนเซเช เชตเชฟเชฎ เชเชพเชฒเซ เชเชฐเซเช เชเซเช เช
เชจเซ เชธเชเชชเชพเชฆเชฟเชค เชเชฐเซเช เชเซเช varnishreload
, เชเชฎเซเชฐเซ เชฐเชนเซเชฏเชพ เชเซ set -x
เชถเซเชฌเซเชเชเชจเซ เชจเซเชเซ, เชเชถเชพ เชเซ เชเซ เชธเซเชเซเชฐเชฟเชชเซเชเชจเชพ เชเชเชเชชเซเชเชจเซ เชกเชฟเชฌเช เชเชฐเชตเชพเชฅเซ เชฅเซเชกเซ เชชเซเชฐเชเชพเชถ เชเชตเชถเซ.
เชซเชพเชเชฒ เช เซเช เชฅเช เชเช เชเซ, เชคเซเชฅเซ เชฎเซเช เชตเชพเชฐเซเชจเชฟเชถ เชซเชฐเซเชฅเซ เชฒเซเชก เชเชฐเซเชฏเซเช เช
เชจเซ เชเซเชฏเซเช เชเซ เชซเซเชฐเชซเชพเชฐเชฅเซ เชฌเชงเซเช เช เชคเซเชเซ เชเชฏเซเช เชเซ... เชเชเซเชเซเชธเซเช เช เชธเชเชชเซเชฐเซเชฃ เชเชกเชฌเชก เชเซ, เชเซเชฎเชพเช เชเชจ C-เชเซเชตเชพ เชเซเชก เชเซ. เชคเซ เชเซเชฏเชพเชเชฅเซ เชถเชฐเซ เชฅเชพเชฏ เชเซ เชคเซ เชถเซเชงเชตเชพ เชฎเชพเชเซ เชเชฐเซเชฎเชฟเชจเชฒเชฎเชพเช เชธเซเชเซเชฐเซเชฒ เชเชฐเชตเซเช เชชเชฃ เชชเซเชฐเชคเซเช เชจเชฅเซ. เชนเซเช เชธเชเชชเซเชฐเซเชฃเชชเชฃเซ เชฎเซเชเชเชตเชฃเชฎเชพเช เชเซเช. เชถเซเช เชกเชฟเชฌเช เชฎเซเชก เชธเซเชเซเชฐเชฟเชชเซเชเชฎเชพเช เชเชพเชฒเชคเชพ เชชเซเชฐเซเชเซเชฐเชพเชฎเซเชธเชจเชพ เชเชพเชฎเชจเซ เช
เชธเชฐ เชเชฐเซ เชถเชเซ เชเซ? เชเซเช เชฌเชเชตเชพเชถ เชจเชนเซเช. เชถเซเชฒเชฎเชพเช เชญเซเชฒ เชเซ? เชเซเชเชฒเชพเช เชธเชเชญเชตเชฟเชค เชฆเซเชถเซเชฏเซ เชฎเชพเชฐเชพ เชฎเชพเชฅเชพเชฎเชพเช เชเซเชเชฐเซเชเชจเซ เชเซเชฎ เชเซเชฆเซ เชเซเชฆเซ เชฆเชฟเชถเชพเชฎเชพเช เชเชกเซ เชฐเชนเซเชฏเชพ เชเซ. เชเซเชซเซเชจเชฅเซ เชญเชฐเชชเซเชฐ เชชเซเชฃเซเชเชจเซ เชเช เชเชช เชคเซเชตเชฐเชฟเชคเชฎเชพเช เชเชพเชฒเซ เชฅเช เชเชพเชฏ เชเซ, เชชเซเชจเช เชชเซเชฐเชตเช เชพ เชฎเชพเชเซ เชฐเชธเซเชกเชพเชฎเชพเช เชเชกเชชเซ เชธเชซเชฐ เช
เชจเซโฆ เชเชพเชฒเซ เชเชเช. เชนเซเช เชธเซเชเซเชฐเชฟเชชเซเช เชเซเชฒเซเช เชเซเช เช
เชจเซ เชถเซเชฌเชพเชเชเชจเซ เชจเชเซเชเชฅเซ เชเซเชเช เชเซเช: #!/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 เชฐเซเชชเชฐเซเชเชพเชเชเชจ เชเชเชเชชเซเช เชเชฐเชตเชพ เชฎเชพเชเซ เชตเชชเชฐเชพเชฏ เชเซ ${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 เชจเชพ เชจเชพเชฎ เชชเชฐ, เชเซ เชเซเช เชนเซเชฏ เชคเซ. เช เชเชฟเชธเซเชธเชพเชฎเชพเช เชคเซ "เชฐเซเชฒเซเชก_20190101_120000_12397" เชนเชถเซ.
เช เซเช เชเซ, เชเชฒ. ${VCL_SHOW}
เชตเชพเชฐเซเชจเชฟเชถ เชฎเชพเชเซ เชธเชเชชเซเชฐเซเชฃ เชฐเซเชชเชฐเซเชเชพเชเชเชจ เชธเชฎเชพเชตเซ เชเซ, เช
เชคเซเชฏเชพเชฐ เชธเซเชงเซ เชธเซเชชเชทเซเช เชเซ. เชนเชตเซ เชนเซเช เชเชเชฐเซ เชธเชฎเชเซเช เชเซเช เชเซ เชถเชพ เชฎเชพเชเซ เชกเซเชถ เชเชเชเชชเซเช เชธเชพเชฅเซ set -x
เชคเซ เชเซเชฌ เชคเซเชเซเชฒเซเช เชนเซเชตเชพเชจเซเช เชฌเชนเชพเชฐ เชเชตเซเชฏเซเช - เชคเซเชฎเชพเช เชชเชฐเชฟเชฃเชพเชฎเซ เชเซเช เชตเชฃเซเชจเซ เชธเชพเชฎเชเซเชฐเซ เชถเชพเชฎเซเชฒ เชเซ.
เชคเซ เชธเชฎเชเชตเซเช เช
เชเชคเซเชฏเชจเซเช เชเซ เชเซ เชธเชเชชเซเชฐเซเชฃ VCL เชฐเซเชชเชฐเซเชเชพเชเชเชจ เชเชฃเซเชตเชพเชฐ เชฌเชนเซเชตเชฟเชง เชซเชพเชเชฒเซเชฎเชพเชเชฅเซ เชเชเชธเชพเชฅเซ เชเซเชฌเชฒ เชเชฐเซ เชถเชเชพเชฏ เชเซ. C-เชถเซเชฒเซเชจเซ เชเชฟเชชเซเชชเชฃเซเชเชจเซ เชเชชเชฏเซเช เช เชตเซเชฏเชพเชเซเชฏเชพเชฏเชฟเชค เชเชฐเชตเชพ เชฎเชพเชเซ เชฅเชพเชฏ เชเซ เชเซ เชเซเชฏเชพเช เชเช เชฐเซเชชเชฐเซเชเชพเชเชเชจ เชซเชพเชเชฒ เชฌเซเชเซเชฎเชพเช เชธเชฎเชพเชตเชตเชพเชฎเชพเช เชเชตเซ เชเซ, เช
เชจเซ เชเซเชก เชธเซเชจเชฟเชชเซเชเชจเซ เชจเซเชเซเชจเซ เชฒเชพเชเชจ เชฌเชฐเชพเชฌเชฐ เชคเซ เช เชเซ.
เชธเชฎเชพเชตเชฟเชทเซเช เชซเชพเชเชฒเซเชจเซเช เชตเชฐเซเชฃเชจ เชเชฐเชคเซ เชเชฟเชชเซเชชเชฃเซเช เชฎเชพเชเซเชจเซเช เชตเชพเชเซเชฏเชฐเชเชจเชพ เชจเซเชเซ เชฎเซเชเชฌเชจเซเช เชซเซเชฐเซเชฎเซเช เชงเชฐเชพเชตเซ เชเซ:
// VCL.SHOW <NUM> <NUM> <FILENAME>
เช เชธเชเชฆเชฐเซเชญเชฎเชพเช เชธเชเชเซเชฏเชพเช เชฎเชนเชคเซเชตเชชเซเชฐเซเชฃ เชจเชฅเซ, เช เชฎเชจเซ เชซเชพเชเชฒเชจเชพ เชจเชพเชฎเชฎเชพเช เชฐเชธ เชเซ.
เชคเซ เชเชฆเซเชถเซเชจเชพ เชธเซเชตเซเชฎเซเชชเชฎเชพเช เชถเซเช เชฅเชพเชฏ เชเซ เชเซ เชฒเชพเชเชจ 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
เชเชฒ เชชเชฐ เชฒเชเชตเชพเชฎเชพเช เชเชตเชถเซVCL_FILE
.
เชฒเชพเชเชจ 119 เชชเชฐเชจเซ เชเชฟเชชเซเชชเชฃเซ เชธเซเชเชตเซ เชเซ เชคเซเชฎ, เช เชเชตเชพ เชเชฟเชธเซเชธเชพเชเชจเซ เชตเชฟเชถเซเชตเชธเชจเซเชฏ เชฐเซเชคเซ เชนเซเชจเซเชกเชฒ เชเชฐเชตเชพเชจเซ เชเชเชฎเชพเชคเซเชฐ เชนเซเชคเซ เชชเซเชฐเซ เชชเชพเชกเซ เชเซ เชเซเชฏเชพเช VCL เชคเซเชฎเชจเชพ เชจเชพเชฎเชฎเชพเช เชตเซเชนเชพเชเชเชธเซเชชเซเชธ เช เชเซเชทเชฐเซเชตเชพเชณเซ เชซเชพเชเชฒเซเชจเซ เชธเชเชฆเชฐเซเชญ เชเชชเชถเซ.
เชฎเซเช เชฎเซเชณ เชชเซเชฐเซเชธเซเชธเชฟเชเช เชคเชฐเซเช เชฎเชพเชเซ เชเชฟเชชเซเชชเชฃเซ เชเชฐเซ เชเซ ${VCL_FILE}
เช
เชจเซ เชเชฆเซเชถเซเชจเซ เชเซเชฐเชฎ เชฌเชฆเชฒเชตเชพเชจเซ เชชเซเชฐเชฏเชพเชธ เชเชฐเซเชฏเซ, เชชเชฐเชเชคเซ เชคเซ เชเชเชเชชเชฃ เชคเชฐเชซ เชฆเซเชฐเซ เชเชฏเซเช เชจเชนเซเช. เชฎเชพเชฐเชพ เชฎเชพเชเซ เชฌเชงเซเช เชธเซเชตเชเซเช เชฐเซเชคเซ เชเชพเชฎ เชเชฐเซเชฏเซเช, เช
เชจเซ เชธเซเชตเชพ เชถเชฐเซ เชเชฐเชตเชพเชจเชพ เชเชฟเชธเซเชธเชพเชฎเชพเช, เชคเซเชฃเซ เชญเซเชฒ เชเชชเซ.
เชเชตเซเช เชฒเชพเชเซ เชเซ เชเซ เชธเซเชเซเชฐเชฟเชชเซเช เชฎเซเชจเซเชฏเซเช
เชฒเซ เชเชฒเชพเชตเชคเซ เชตเชเชคเซ เชญเซเชฒ เชซเชเซเชค เชชเซเชจเชเชเชคเซเชชเชพเชฆเชจ เชเชฐเซ เชถเชเชพเชคเซ เชจเชฅเซ, เชเซเชฏเชพเชฐเซ เช
เชเชฆเชพเชเชฟเชค 30 เชฎเชฟเชจเชฟเช เชชเชนเซเชฒเชพเชฅเซ เช เช เชตเชเชค เชธเชฎเชพเชชเซเชค เชฅเช เชเช เชเซ เช
เชจเซ เชตเชงเซเชฎเชพเช, เชเช เชเชเซเช เชชเซเชฐเชพเชฅเชฎเชฟเชเชคเชพ เชเชพเชฐเซเชฏ เชฆเซเชเชพเชฏเซเช เชเซ, เชฌเชพเชเซเชจเชพ เชเซเชธเซเชจเซ เชฌเชพเชเซ เชชเชฐ เชงเชเซเชฒเซ เชฆเซ เชเซ. เชฌเชพเชเซเชจเซเช เช
เช เชตเชพเชกเชฟเชฏเซเช เชตเชฟเชตเชฟเชง เชเชพเชฐเซเชฏเซเชฅเซ เชญเชฐเซเชฒเซเช เชนเชคเซเช เช
เชจเซ เชฎเชพเชคเซเชฐ sed เชชเชฐเชจเซ เชเชฐเซเชเชพ เช
เชจเซ เชเชฎเซเชฆเชตเชพเชฐ เชธเชพเชฅเซเชจเชพ เชเชจเซเชเชฐเชตเซเชฏเซเชฅเซ เชฅเซเชกเซเช เชเชเซเช เชนเชคเซเช. เชฎเชพเช เชญเซเชฒเชจเซ เชธเชฎเชธเซเชฏเชพ 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"
เชซเชพเชเชฒ เชชเชฐ เชเซเชฅเซ เชนเซเช เชธเซเชตเชพ เชชเซเชจเชเชชเซเชฐเชพเชฐเชเชญเชจเซ เชเซเชเชชเชฃ เชฎเซเชถเซเชเซเชฒเซ เชตเชฟเชจเชพ เชธเซเชก เชธเซเชเซเชฐเชฟเชชเซเช เชฒเชเชตเชพ เชชเชฐ เชงเซเชฏเชพเชจ เชเซเชจเซเชฆเซเชฐเชฟเชค เชเชฐเซ เชถเชเซเช.
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 เชธเชฎเชพเชชเซเชค เชฅเชพเชฏ เชเซ.
# ัะฐะณ ะฟะตัะฒัะน, ะฒัะฒะตััะธ ัะพะปัะบะพ ัััะพะบะธ ั ะบะพะผะผะตะฝัะฐัะธัะผะธ
# ะธัะฟะพะปัะทัั ะฒะพะทะผะพะถะฝะพััะธ 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
เชคเซเชฅเซ varnishreload เชธเซเชเซเชฐเชฟเชชเซเชเชจเซ เชธเชพเชฎเชเซเชฐเซ เชเชจเชพ เชเซเชตเซ เชฆเซเชเชพเชถเซ:
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