Jūsu VPN indikators kļūst zaļš, maršruts atgriežas, un atstātais SSH logs nekad vairs neatgriež uzvedni. Maršruta atjaunošana neatjauno TCP sarunu, kas to izmantoja, tāpēc viss, kas tajā logā ierakstīts, ir pazudis. Ja īstā raizes lieta ir redaktora buferis vai gara migrācija, risinājums ir pārstāt saistīt šo darbu ar vienu savienojumu. tmux un uzdevumu izpildītājs atrisina dažādas šīs problēmas puses.

Atkārtoti pievienots VPN ligzdu neturpina

TCP nav priekšstata par turpināšanu pēc adreses maiņas. SSH savienojumu identificē abi gali, un, kad tunelis tiek pārbūvēts, vietējā adrese var mainīties un vecā ligzda ir mirusi. Serveris to pamana beigās, bet jūsu terminālis to pamana uzreiz.

Klienta keepalive atklāj mirušu partneri agrāk. Tas neatgriež sesiju un nevar atjaunot komandu, kas jau darbojās. Keepalive ir detektors, nevis atjaunošanas rīks. Tas neko nepasaka par to, vai attālā komanda izdzīvoja.

Novietojiet darbu uz attālā resursdatora

Izveidojiet sesiju attālajā resursdatorā, nevis klēpjdatorā. Pieslēdzieties kā parasti, palaidiet tur tmux un tajā palaidiet redaktoru vai migrāciju. Atvienojieties ar noklusējuma prefiksu, un sesija turpina darboties, kamēr SSH savienojums pazūd. Tmux palaišana lokāli aizsargā jūsu čaulu no aizvērta loga, nevis attālu komandu no miruša tuneļa.

ssh [email protected]
tmux new-session -s office-work

Kad VPN ir atgriezies, atveriet jaunu SSH savienojumu ar to pašu resursdatoru un pieslēdzieties no jauna pēc nosaukuma. Noturīgais objekts ir sesija, nevis savienojums. Dodiet tai nosaukumu, ko atpazīsiet arī pēc nedēļas.

tmux pret uzdevumu izpildītāju

tmux uztur interaktīvu procesu dzīvu, kamēr resursdators ir ieslēgts. Uzdevumu izpildītājs vai pakalpojumu pārvaldnieks uztur neinteraktīvu uzdevumu dzīvu, reģistrē tā iziešanas statusu un pārdzīvo pilnīgu SSH sesijas beigas. Pirmais ir darbam, ko jūs vērojat; otrais ir darbam, ko plānojat un vēlāk pārbaudāt.

Neviens no tiem nepārdzīvo restartu, ja vien resursdators nav konfigurēts to atjaunot. tmux sesija iet bojā kopā ar mašīnu, un īslaicīgs uzdevums iet bojā kopā ar startu, ja vien tas nav reģistrēts kā vienība. Izvēlieties pēc tā, kam darbam ir jāpārdzīvo.

Abām pieejām vajag arī žurnālu, ko varat lasīt pēc atkārtotas pievienošanās. Bez tā jūs zināt, ka process pastāv, bet ne to, ko tas ir izdarījis. Pierakstiet žurnāla ceļu blakus sesijas nosaukumam.

Izlemiet pēc tā, kam jāizdzīvo

Izlemiet pēc sliktākā, kas var notikt, ja darbs apstājas pusceļā. Redaktora sesija zaudē nesaglabātus buferus, kas ir kaitinoši, bet atjaunojami. Migrācija, kas fiksē pusi savu izmaiņu, tāda nav, un tas runā par labu izpildītājam ar ierakstītu rezultātu. Ja uzdevums ir interaktīvs un garš, tmux un rakstīts žurnāls parasti ir pietiekami.

systemd-run --user --unit=migrate-customers --collect ./migrate.sh

Lai ko jūs izvēlētos, pirms kaut ko palaist no jauna pārbaudiet ierakstīto rezultātu. Trūkstoša pēdējā rinda jums pasaka, ko redzēja klēpjdators, nevis ko fiksēja serveris. Tieši šī atšķirība ir iemesls turēt darbu ārpus savienojuma jau no sākuma, un atvienošanās un atkārtotas pievienošanās modelis ir tās mazākā versija.

Saistītie raksti