Versiyon güncellemeleri, hata tespiti ya da bakım kapsamında yapılan işler gereği, müşteri ortamlarında bulunan geliştirdiğimiz ürünün bulunduğu sunuculara bağlanabiliyoruz. Genellikle bu işlemleri müşteri ile birlikte uzaktan bağlantı ile yapıyoruz, ama çok nadir olsa da bu işlemleri fiziksel olarak ilgili sunucunun olduğu veri merkezinde de yaptığımız oluyor.

Toplantılar genellikle Teams, Zoom, AnyDesk gibi uzak masaüstü yönetim ve haberleşme araçları üzerinden yapılıyor. Bunlardan en sevdiğim AnyDesk diyebilirim, çünkü bağlantı sonrasında eğer uzaktan kontrol izini verilirse en sorunsuz ve hızlı çalışanı. Genellikle klavye ile kendi bilgisayarınızda hangi harfi yazmaya çalışıyorsanız karşı taraf da aynı harfi alıyor. Fakat AnyDesk tarafında yakın zamanda ortaya çıkan güvenlik bulgusu, daha önce kullanan herkesi korkutmuş durumda artık kimse AnyDesk üzerinden bağlantı vermek istemiyor.

Elimizde kalan diğer seçeneklerden Teams ya da Zoom ile toplantı yapıyorsak ve uzak kontrol verildiyse sıkıntılı dakikalar bizi bekliyor. Genelde toplantı şu şekilde ilerliyor.

… bey/hanım ben basıyorum ama farklı bir karakter çıkarıyor lütfen {,|,[ tuşuna basabilir misiniz?

Böyle olunca tabi 10 dakika sürecek şeyi 30 dakikada ancak bitirebiliyorsunuz. Diyelim ki bir hata nedeniyle log kayıtlarında bir inceleme yapmak istiyorsunuz ve sistem docker üzerinde çalışıyor. Aşağıdaki gibi bir one-liner yardımıyla şuanda aktif ya da kapanmış olan tüm container kümesi içinde hata kayıtlarına bakacaksınız.

user@server:~# for c in $(docker ps -a -q); do docker logs "$c" 2>&1 | grep "error:"; done

AnyDesk ile çalışırsanız ne mutlu, direk karşı tarafta genelde sorun çıkmadan yukarıdaki scripti uzak sunucu üzerinde yazabilirsiniz, hatta kendi bilgisayarınızda yazıp uzak sunucuya copy-paste yapabilirsiniz. Ama Teams, Zoom ikilisinden birine denk gelirseniz, genelde copy-paste çalışmıyor ya da kurum politikası tarafından engellenmiş, geriye tek seçenek uzak sunucuda bunu kendinizin yazması kalıyor.

Yukarıdaki gibi basit bir scripti hatta bazen daha da basitlerini yazmaya kalkarsanız shell scriptlerin vazgeçilmezi olan |,{,},&,[,],-,*,/ gibi karakterlerden mutlaka birisini kullanmak zorunda kalıyorsunuz. Bu karakterlerden birini yazacak tuşa kendi bilgisayarınızda bastığınızda da karşı tarafta bazen alakasız farklı karakterler bazen de hiç olmayan æß∂ƒğ∑ gibi karakterler çıkabiliyor. Sonra toplantı yukarıda bahsettiğim dialog şeklinde inanılmaz verimsiz bir şekilde ilerliyor.

Artık bu durum iyice canımı sıkmaya başlayınca elimizdeki araçları ve tabi ki kadim dostumuz vim‘i kullanarak aşağıdaki gibi çözüm ürettim.

Bash, Zsh gibi shell ortamları bize normalde komutları yazdığınız satırın dışında bunları geçerli editör ile yazmanıza da olanak sağlıyor. ctrl-x, ctrl-e kısayolu ya da fc komutu ile yazmak istediğiniz kod için size bir editör açılıyor ve orada istediğiniz şekilde yazıp kaydedip kapattıktan sonra yazdığınız şey otomatik olarak çalıştırılıyor.

Peki shell satırında değil de editör üzerinde yazmak ne değiştirecek sorusu akla gelebilir, eğer editor vim ise çok şey değiştirebilir. Tabi öncelikle yukarıda bahsettiğim kısayolların editör olarak vim kullanmasını sağlamamız lazım bunun için kullandığımız shell ortamının baktığı ortam değişkenini ayarlamak gerekiyor.

user@server:~# EDITOR=vim

Ardından ister ctrl-x, ctrl-e isterseniz fc ile komut yazmak için Vim ortamına geçebilirsiniz. Sonrasında Vim insert mode içinde bize ascii tablosundaki sayı karşılığını kullanarak karakter girmemizi sağlıyor. Detaylar için vim içinde :h i_CTRL-V_digit yazdığınızda aşağıdaki açıklama geliyor.

With CTRL-V the decimal, octal or hexadecimal value of a character can be
entered directly.  This way you can enter any character, except a line break
(<NL>, value 10).  There are five ways to enter the character value:

first char	mode	     max nr of chars   max value ~
(none)		decimal		   3		255
o or O		octal		   3		377	 (255)
x or X		hexadecimal	   2		ff	 (255)
u		hexadecimal	   4		ffff	 (65535)
U		hexadecimal	   8		7fffffff (2147483647)

Yani ASCII tablosuna bakarak önce insert mode sonra ctrl-v decimal değer karşılığını girerek istediğimiz karakterleri yazdırabiliyoruz.

Decimal Char Decimal Char
33 ! 59 ;
34 60 <
35 # 61 =
36 $ 62 >
37 % 63 ?
38 & 91 [
39 92 \
40 ( 93 ]
41 ) 94 ^
42 * 95 _
43 + 123 {
44 , 124 |
45 - 125 }
46 . 126 ~
47 / 64 @
58 : 96 `

Aşağıda nasıl olduğunu örnek üzerinde çalışırken görebilirsiniz. İlk olarak ctrl-x, ctrl-e sonra da fc ile benzer işlemi yapıyorum. Her iki örnekte de | karakterini yukarıda bahsettiğim vim yöntemi ile yani insert mode içerisinde ctrl-v 124 ile yapıyorum.

server1


<
Previous Post
HTTP Protokolünde El Sıkışmanın Bedeli
>
Blog Archive
Archive of all previous blog posts