lftp, stdout, stderr ve SAP exec_protocol

Oct 21 2020

SFTP'yi önceden paylaşılan anahtarlar aracılığıyla yapmak için linux komut dosyalarımız var, ancak son zamanlarda bir satıcı anahtar ve parola istiyor, sanırım bu iki faktörlü kimlik doğrulamaya benziyor. Bu nedenle, satıcı önceden paylaşılan anahtarla kimlik doğrulaması yapar ve ardından bir parola ister. Parola girilene kadar, yalnızca kısmen kimliğiniz doğrulanır. Yani standart komut dosyalarım çalışmıyor. Bunu lftpaşmak için, şifreyi bir komut dosyasında geçirebileceğimi ve komut dosyası koyma ve dosya alma sorununu çözdüğünü keşfettim . İşte benim senaryom:

     #!/bin/sh
     # ###########################
     # Parameters
     # $1 Source Directory # $2 Source File
     # $3 Target IP # $4 Target File
     # $5 Target Directory # $6 Mode (binary or ascii)
     # $7 User # $8 Pwd
     # ###########################
         lftp sftp://$7:$8@$3 -e "cd $5; put $1$2; bye"

Bu komut dosyası, işlevi çağırarak bir SAP abap programından çağrılır SXPG_COMMAND_EXECUTE. Kabuk betiklerinden dönüş bilgileri genellikle dönüş parametresinde yakalanır EXEC_PROTOCOL. Tüm diğer bash betikleri ile iyi çalışıyor ancak standart lftpçıktıdan hiçbir şey alamıyoruz. Hatalar alıyoruz, bu yüzden stderr yakaladığını varsayıyorum. Neden bu olduğu hakkında bir düşünceniz var mı?

Yanıtlar

Jagger Oct 22 2020 at 13:35

Ne SAP ne de ABAP ile ilgisi yoktur. Yazı bak burada üzerinde serverfault.com .

Komut çıktısını arabelleğe alıyor olabilir, orada kabul edilen yanıtı görün ve arabelleği kaldırmaya çalışın.