VPN göstergeniz yeşile döner, rota geri gelir ve açık bıraktığınız SSH penceresi bir daha asla komut istemi döndürmez. Rotayı geri yüklemek, onu kullanan TCP konuşmasını geri yüklemez, bu nedenle o pencereye yazılan her şey kaybolmuştur. Gerçek kaygı bir düzenleyici tamponu ya da uzun bir geçiş ise çözüm, bu işi tek bir bağlantıya bağlamayı bırakmaktır. tmux ile bir iş çalıştırıcı bu sorunun farklı yarılarını çözer.

Yeniden bağlanan VPN soketi sürdürmez

TCP'nin adres değişikliğinden sonra sürdürme diye bir kavramı yoktur. SSH bağlantısı iki uç tarafından tanımlanır ve tünel yeniden kurulduğunda yerel adres değişebilir ve eski soket ölür. Sunucu bunu en sonunda fark eder, ama terminaliniz hemen fark eder.

İstemci tarafı keepalive ölü eşi daha erken algılar. Oturumu geri getirmez ve hâlihazırda çalışan bir komutu kurtaramaz. Keepalive bir algılayıcıdır, kurtarma aracı değildir. Uzak komutun hayatta kalıp kalmadığı hakkında hiçbir şey söylemez.

İşi uzak ana makineye koyun

Oturumu dizüstü bilgisayarda değil, uzak ana makinede oluşturun. Her zamanki gibi bağlanın, orada tmux başlatın ve düzenleyiciyi ya da geçişi onun içinde çalıştırın. Varsayılan ön ek ile ayrılın ve SSH bağlantısı kaybolurken oturum çalışmaya devam eder. tmux'u yerel olarak başlatmak kabuğunuzu kapanmış bir pencereden korur, uzak bir komutu ölü bir tünelden değil.

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

VPN geri geldiğinde aynı ana makineye yeni bir SSH bağlantısı açın ve ada göre yeniden bağlanın. Kalıcı nesne oturumdur, bağlantı değil. Bir hafta sonra da tanıyacağınız bir ad verin.

tmux ile iş çalıştırıcı

tmux, ana makine açık olduğu sürece etkileşimli bir süreci canlı tutar. Bir iş çalıştırıcı ya da hizmet yöneticisi etkileşimsiz bir işi canlı tutar, çıkış durumunu kaydeder ve SSH oturumu tamamen bittiğinde de ayakta kalır. Birincisi izlediğiniz iş içindir; ikincisi planlayıp sonra denetlediğiniz iş içindir.

Ana makine geri yüklemek için yapılandırılmadıkça hiçbiri yeniden başlatmayı atlatamaz. tmux oturumu makineyle birlikte ölür ve geçici iş, birim olarak kaydedilmediyse açılışla birlikte ölür. İşin neyi atlatması gerektiğine göre seçin.

Her iki yaklaşım da yeniden bağlandıktan sonra okuyabileceğiniz bir günlük gerektirir. O olmadan sürecin var olduğunu bilirsiniz, ama ne yaptığını bilmezsiniz. Günlük yolunu oturum adının yanına yazın.

Neyin hayatta kalması gerektiğine göre karar verin

İş yarıda durursa olabilecek en kötü şeye göre karar verin. Bir düzenleyici oturumu kaydedilmemiş tamponları kaybeder, bu can sıkıcıdır ama kurtarılabilir. Değişikliklerinin yarısını işleyen bir geçiş öyle değildir ve bu, sonucu kaydedilen bir çalıştırıcının lehinedir. İş etkileşimli ve uzunsa tmux artı yazılı bir günlük genellikle yeterlidir.

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

Ne seçerseniz seçin, herhangi bir şeyi yeniden çalıştırmadan önce kaydedilmiş sonucu inceleyin. Eksik son satır size dizüstü bilgisayarın ne gördüğünü söyler, sunucunun neyi işlediğini değil. Bu fark, işi baştan itibaren bağlantının dışında tutmanın nedenidir ve ayırma ve yeniden bağlanma modeli bunun en küçük sürümüdür.

İlgili makaleler