You are currently viewing sftp ile shpass kullanımı
sshpass file transfer

sftp ile shpass kullanımı

Başımızın belası diyebileceğimiz ve olmazsa olmazımız olan NAS cihazlarında rsync kullanamazsak ne yapabiliriz? Tam olarak burada devreye sftp ile shpass kullanımı yardımımıza koşuyor.

Kısaca sshpass

shpass example
shpass screen

İngilizceden çeviri olarak : sshpass, “klavye ile etkileşimli” parola doğrulaması olarak adlandırılan modu kullanmaktadır. Ancak etkileşimli olmayan modda ssh’yi çalıştırmak için tasarlanmış bir yardımcı programdır. Daha detaylı ve İngilizce kaynak olarak buradan yararlanabiliriz.

sftp ile shpass kullanımı Kurgumuz nedir ?

Örnek olarak burada Zyxel bir NAS cihazımız olduğunu düşünelim. Cihazımızdan bir dosya transferi yaparak remote olarak yedekleme yapmamız veya düzenli olarak dosya çekmemiz gerekli. Dosya çekme işlemi sırasında şifremizi her seferinde giremeyeceğimiz içinde bir yöntem ile şifremi göndermemiz gereklidir.

Burada yardımımıza koşan bir yardımcı aracımız sshpass’ı kullanmak olacaktır. NAS’ımızda rsync olmadığı için biz burada sftp işlemini kullanacağız ama rsync işlemleri içinde sshpass yöntemini kullanabiliriz.

Neler yapacağız

Bu kısımda bir kaç farklı yolumuz var aslında ben kendi tarafımca kullandığım yöntemi sizinle paylaşarak burada ilerleyeceğim. Dilerseniz siz bu kısımda kendinize göre kurgunuzu ve işleyişinizi değiştirebilir, takıldığınız yerde yazıp bilgi alış/verişi sağlayabilirsiniz.

  1. İlk olarak bir dosya oluşturalım
  2. Oluşturduğumuz dosya içine komutlarımızı yazalım
  3. Bir bash dosyası oluşturup sshpass komutlarımızı buraya yazalım
  4. Crontab ile bu işlemleri otomatize edelim

Evet işlemlerimiz bu şekilde sıraladıktan sonra örnek kodlara geçelim;

İlk olarak komutlistesi adında bir dosya oluşturalım ve edit ile düzenleme moduna geçelim;

$# cd /home/
$# nano komutlistesi

home dizinine geldik ve nano editörü ile komutlistesi isminde bir temp bellekte dosya açtım, içine yazacağımız kodlara gelelim.

Not : nano komutlistesi yazıp nano enteresan bastıktan sonra -bash: nano: Command not pound hatası alıyorsanız ilk olarak kullandığınız çekirdeğe göre apt / def / yum install nano yazmanız ve bu paketi kurmanız gereklidir. Dilerseniz vim’de kullanabilirsiniz ama aben genelde nano tercih ediyorum.

$# get -r /remote_dizin/* /local_dizin/

ctrl+x yaparak ve Y basarak kayıt edelim ve tekrar komut istemcimize dönelim.

Şimdiki adımımız ise bash dosyası oluşturmak olacaktır. Bash dosyamızın örneği ise şu şekilde olacaktır;

$# nano sync.bash

#!/bin/sh
export SSHPASS=remotePass
sshpass -e sftp -oBatchMode=no -b - -P remotePort username@ipadresi

yukarıdaki dosyamızda da ctrl+x ve y yaparak kayıt ettikten sonra chmod +x sync.bash yapmamız gereklidir.

Bu işlemi yapabilmemiz için root yetkisinde giriş yapmamız veya sudo chmod +x sync.bash yapmamız gereklidir.

Şimdi ise crontab -e ile hazırladığımız dosyamızın ne kadar süre ile çalışması gerektiğini ayarlamamız gereklidir. Dilerseniz bu kısımda crontab guru adresinden yardım alabilirsiniz.

Elimden geldiğince basitleştirip anlatmaya çalıştım, umuyorumki açıklayıcı olmuştur. Sorunlarınız varsa yorum olarak yazabilirsiniz.

kurtitasarim

‘’İrade ve yargıları aşan güçlü bir coşku, ihtiras" diye tanımlanır tutku. Yaptığın işi sevmek yerine, sevdiğin işi yap mottosu da benim tutku tanımım. Kod yazmak bir yana, o kodun sistem üzerindeki hareketlerini, farklı cihazlar ile etkileşimini, o noktalarda oluşan sıkıntıları görmek, çözmek ve bunu yaparken diğer kişilere yol göstermek işimin en zevkli yanı. Bu sebeple önce tutku ile yapılan iş, sonra maddiyat..

Bir yanıt yazın