SFTP ile yine argümanları sırasıyla ve ayrı ayrı göndermek mümkün ama iş kullanıcı adından sonra şifre göndermeye gelince SFTP mızıkçılık yapıyor. İzin vermiyor yani.
Bu durumda araya bir 'şey'in girip bu tür girdi bekleyen komutlara istediği cevabı göndermesi ve bunu da yine bir 'yığın' mantığıyla yapması gerekiyor. Gözüken buydu.
İşte burada 'expect' devreye giriyor. TCL diliyle entegre olan bu uygulama, bu tür ihtiyaçları karşılamak için birebir. Ancak Solaris için expect'i Sunfreeware.com'dan indirmek çok zahmetli. Bağımlılıklar can sıkıyor. OpenCSW'den indirmek daha kolay.
Expect'in detaylarına girecek değilim ama basit bir örnekle anlatmakta fayda görüyorum.
#!/opt/csw/bin/expect -f
# Asagidaki DOSYA_ADI degiskeni, sistem icinde tanimlaniyor. Olmadan calismayacaktir.
set timeout -1
spawn /usr/bin/sftp mahmure@veri.com
expect "password"
send "123456\r"
expect "sftp"
send "cd mahmure\r"
expect "sftp"
send "ls -l\r"
expect "sftp"
send "lcd /data/ftp/mahmure_local\r"
expect "sftp"
send "get $env(DOSYA_ADI)\r"
expect "sftp"
Aşağıda da bu konu hakkındaki enteresan linkler bulunuyor.
Automating sftp with expect script
http://jibbysununix.blogspot.com/2010/01/automating-sftp-with-expect-script.html
Scripting the OpenSSH, SFTP
http://www.scottklement.com/presentations/Setting%20up%20and%20Scripting%20the%20OpenSSH,%20SFTP%20and%20SCP%20Utilities%20on%20IBM%20i.pdf
SFTP Bash script with expect
http://www.admin-hints.com/2009/05/sftp-bash-script-with-expect.html
Automating SFTP using expect
http://www.linux-bsd-central.com/index.php/content/view/26/
http://www.stratigery.com/scripting.ftp.html
Hiç yorum yok:
Yorum Gönder