SSH-økt døyr med VPN: tmux eller ein jobbkøyring?
Ein gjenoppretta tunnel vekkjer ikkje den gamle SSH-socketen. Avgjer om arbeidet treng ei terminaløkt du koplar til att, eller ein jobb med eit registrert resultat.
VPN-indikatoren blir grøn, ruta er tilbake, og SSH-vindauget du lét stå ope gir aldri ei ledetekst att. Å gjenoppretta ei rute gjenopprettar ikkje TCP-samtalen som brukte ho, så alt som vart skrive i det vindauget, er borte. Viss den eigentlege bekymringa er ein editor-buffer eller ein lang migrasjon, er løysinga å slutta å binda det arbeidet til éi tilknyting. tmux og ein jobbkøyring løyser kvar sin halvdel av det problemet.
Ein gjenoppretta VPN gjenopptek ikkje socketen
TCP har inga førestilling om å gjenoppta etter ei adresseendring. SSH-tilknytinga blir identifisert av begge endepunkta, og når tunnelen blir bygd opp att, kan den lokale adressa endra seg og den gamle socketen er død. Tenaren merkar det til slutt, men terminalen din merkar det straks.
Ein keepalive på klientsida oppdagar ein død motpart tidlegare. Han hentar ikkje tilbake økta, og han kan ikkje gjenoppretta ein kommando som alt køyrde. Keepaliven er ein detektor, ikkje eit gjenopprettingsverktøy. Han seier ingenting om fjernkommandoen overlevde.
Legg arbeidet på fjernverten
Opprett økta på fjernverten, ikkje på laptoppen. Kopla til som vanleg, start tmux der, og køyr editoren eller migrasjonen inne i han. Kopla frå med standardprefikset, og økta held fram med å køyra medan SSH-tilknytinga forsvinn. Å starta tmux lokalt vernar skalet ditt mot eit lukka vindauge, ikkje ein fjernkommando mot ein død tunnel.
ssh [email protected]
tmux new-session -s office-workNår VPN-en er tilbake, opne ei ny SSH-tilknyting til same vert og kopla til att ved namn. Det varige objektet er økta, ikkje tilknytinga. Gi ho eit namn du framleis kjenner att ei veke seinare.
tmux kontra ein jobbkøyring
tmux held ein interaktiv prosess i live så lenge verten køyrer. Ein jobbkøyring eller tenesteadministrator held ein ikkje-interaktiv jobb i live, registrerer avslutningsstatusen og overlever at SSH-økta blir avslutta heilt. Det første er for arbeid du følgjer med på; det andre for arbeid du planlegg og granskar seinare.
Ingen av dei overlever ein omstart med mindre verten er sett opp til å gjenoppretta det. Ei tmux-økt døyr med maskinen, og ein forbigåande jobb døyr med oppstarten med mindre han vart registrert som eining. Vel etter kva arbeidet må overleva.
Begge tilnærmingane treng òg ein logg du kan lesa etter å ha kopla til att. Utan ein veit du at prosessen finst, men ikkje kva han har gjort. Skriv ned loggbanen ved sida av øktnamnet.
Avgjer etter kva som må overleva
Avgjer etter det verste som kan henda viss arbeidet stoppar halvvegs. Ei editorøkt mistar ulagra buffar, noko som er irriterande men gjenopprettande. Ein migrasjon som committar halvparten av endringane sine, er ikkje det, og det talar for ein køyring med eit registrert resultat. Viss jobben er interaktiv og lang, er tmux pluss ein skriven logg vanlegvis nok.
systemd-run --user --unit=migrate-customers --collect ./migrate.shUansett kva du vel, gransk det registrerte resultatet før du køyrer noko på nytt. Ei manglande siste line fortel deg kva laptoppen såg, ikkje kva tenaren committa. Den skilnaden er grunnen til å halda arbeidet utanfor tilknytinga frå byrjinga, og modell for fråkopling og attkopling er den minste utgåva av det.