Олон скриптийн анхааруулга нь хуваарийн гомдол мэт сонсогддог тул тодорхой шийдэл нь тэр алга болтол мөрүүдийг дахин цэгцлэх юм. Гэхдээ энэ нь хуваарийн гомдол биш. Хожуу --up тодорхойлолт нь тухайн үе шатанд аль хэдийн хадгалагдсан командыг орлуулж, задлагч үүнийг хэлдэг, өөрөөр хэлбэл таны хоёр скриптийн зөвхөн нэг нь л ажиллаж байсан. Нөгөө нь түүний ард дараалалд зогсохгүй; тэр алга болсон.

Тиймээс анхааруулга үхлийн биш ч анхаарал хандуулах ёстой: энэ нь чимээгүйхэн зогссон DNS шинэчлэл эсвэл маршрутын өөрчлөлтийг урьдчилан хэлж байна.

Анхааруулга дарааллын тухай биш

OpenVPN up үе шатанд нэг хэрэглэгчийн скриптийн командыг хадгалдаг. Задлагч өөр тодорхойлолттой таарвал, профайл, оруулсан файл эсвэл командын мөрөөс, аль хэдийн барьсан зүйлээ орлуулж, анхааруулгыг гаргана. Юу ч нэгтгэгдэхгүй, юу ч хоёр удаа ажиллахгүй, дарааллын асуулт байхгүй. Үлдэх команд нь задлагчийн хамгийн сүүлд харсан команд тул мөрийг зөөх нь ялагчийг өөрчилж, нөгөө скрипт үхсэн хэвээр үлдэж болно.

Мөн адил загвар бусад скриптийн үе шатуудад үйлчилнэ: тус бүрд нэг команд. Хэрэв хоёр ажил хоёулаа болох ёстой бол тэдэнд жагсаалт мэт харагдах хоёр заавар биш, нэг орох цэг хэрэгтэй.

Хоёр тодорхойлолтыг бодит эхлүүлэлтээс ол

Засварласан профайлаас биш, демон бодитоор хүлээн авснаас эхэл. ps -ef болон нэгжийн ExecStart командын мөрийг харуулдаг бөгөөд тэнд контейнерийн орох цэг эсвэл бүрхүүлээс --up нэмэгдсэн байж болно; түгээлтийн init файл ч мөн адил хийж чадна. systemctl cat openvpn-server@server үйлчилгээ өөрөө юу нэмдэгийг илчилдэг, тохиргооны хавтас дээрх рекурсив grep файлын түвшний тодорхойлолтыг олдог. Давхарга нь ихэвчлэн өөр өөр давхаргаас ирдэг, нэг файлыг засварлахад юу ч өөрчлөгддөггүйн шалтгаан нь ч энэ.

Скриптийг өөр хавтас руу хуулах эсвэл нэрийг нь өөрчлөх нь ч зааврыг арилгахгүй. Задлагч файл биш, тодорхойлолтыг тоолдог.

Ажлыг нэг hook эзэмшээрэй

Бат бөх шийдэл нь хоёр үйлдлийг санаатай дарааллаар гүйцэтгэдэг нэг диспетчер юм. set -eu бүхий богино shell скрипт шаардлагатай интеграцийг, дараа нь локал үйлдлийг дуудаж, аргументын хил хязгаар үлдэхийн тулд "$@" дамжуулдаг тул зан төлөв нэг шалгах боломжтой газарт үлддэг. Аргументыг дамжуулах нь тэдгээрийг хадгалах төдий; хоёр туслах нэг интерфэйс хүлээж байгааг нотлохгүй тул тус бүрийн гэрээг уншина уу. Алдаа юу хийх, хэсэгчилсэн өөрчлөлтийг буцаах шаардлагатай эсэхийг шийдээрэй.

Хэрэв эхлүүлэгч дэмжигдсэн өргөтгөлийн hook санал болговол гараар барьсан гинжээс түүнийг илүүд үзээрэй. Контейнерын дүрс эсвэл нийлүүлэгчийн багц нь нэмэлт ажилд зориулсан баримтжуулсан газартай байдаг бөгөөд үүнийг ашиглах нь шинэчлэл таны диспетчерийг дарж бичихээс сэргийлнэ.

Цэвэрлэгээ нь харгалзах down үе шатанд хамаарна. DNS-ийг дахин бичих эсвэл маршрут нэмэх up үйлдэл баримтжуулсан буцаалт шаарддаг бөгөөд зөвхөн эхлэлийг хариуцдаг диспетчер бол хагас загвар.

Чимээгүй байдал биш, интеграцийг батал

Давхардсан анхааруулгыг арилгах нь хялбар хэсэг; интеграци ажиллах ёстой хэвээр. Холбогдсоны дараа resolvectl status эсвэл /etc/resolv.conf уншиж шийдэгчийн төлөвийг шалгаж, маршрутыг ip route ашиглан батал. Дараа нь салгаж дахин холбогдоорой, учир нь яаралтай холбосон hook өмнөх сессээс ямар нэг зүйл үлдээдэг. journalctl -u openvpn-server@server -b таны диспетчер ажилласан эсэх, юу хэвлэснийг харуулна.

hook-ийн эрх мэдлийг байх ёстой газар нь байлга. script-security өсгөх эсвэл демоныг илүү эрхээр ажиллуулах нь солигдсон hook-ийн засвар биш; энэ нь ирээдүйн скрипт бүрийн, халдагчийн нэрлэх скриптийн ч хийж чадах зүйлийг өргөжүүлнэ.

Засвар үнэхээр болсны шинж нь лог дахь чимээгүй байдал биш. Энэ нь DNS хариулт, маршрутын бичлэг, цэвэрлэгээ — хоёр дахин холбогдсоны дараа бүгд зөв ажиллах явдал юм.

Холбоотой нийтлэлүүд