Netcat kullanarak dosya göndermek için bu betiği yazdım. Niyetim, hedef sunucudaki netcat portunu orijinden açmak, bu şekilde her şeyi dest üzerinde diğeri kaynağa koymak yerine sadece bir betikle yapıyorum.
#!/bin/bash
FILE=$1
SERVDEST=$2
SIZE=`du -h --apparent-size $FILE | cut -f1`
DATE=`date +%Y%m%d%H%M`
echo "Sending file $FILE of $SIZE to $SERVDEST" >> NCtransf_$DATE.log
echo "" >> NCtransf_$DATE.log
ssh $SERVDEST "nc -l 6969 > /backup/backupSO/nc_$FILE.tgz" &
#sleep 5 #tried sleeping for some secs but it didn't work either
(/usr/bin/time --format='Transfer took %e seconds' tar czf - $FILE | nc $SERVDEST 6969) &>> NCtransf_$DATE.log
echo "" >> NCtransf_$DATE.log
Nedense dosya hedefte oluşturulur, ancak boyutu 0'dır. Bilgi asla geçmez ve netcat bağlantı noktası diğer tarafta açık kalır. Bunun ssh $SERVDEST "nc -l 6969 > /backup/backupSO/nc_$FILE.tgz" &
için bu çizgiyi değiştirmeyi de denedim ssh $SERVDEST "nohup nc -l 6969 > /backup/backupSO/nc_$FILE.tgz" &
ama aynı sonuçlar oldu.
Ayrı aynı satırları denersem (portu hedefe manuel olarak açarak) cazibe gibi çalışır. Sadece kayıt için şifresiz ssh bağlantım var ve port güvenlik duvarında açık.