Dostal som za úlohu urobiť BASH skript na stiahnutie najnovšieho súboru z SFTP. Trošku som sa natrápil, ale teraz je to ok.

echo “ls -lt” sshpass -f aa.pswd sftp user@sftp.server.sk:/dajaky_adresar 1>sftp.log 2>&1

Takze, ls -lt vypíše všetky súbory v adresári, zoradené podľa času, teda najnovší je prvý. Toto celé je posunuté do sftp a následne uložené v sftp.log. V súbore aa.pswd je uložené heslo pre sftp.

FILE=$(cat sftp.log sed -n 4p awk ‘{print $NF}’)

Vytvorí sa premenná FILE v ktorej je čisto názov súboru.

echo “get $FILE” sshpass -f aa.pswd sftp user@sftp.server.sk:/dajaky_adresar

Sťahni súbor, ktorý je v premennej FILE

mv $FILE “$DIR/$FILE”

Toto presunie stiahnutý súbor do nami zvoleného adresára v premennej $DIR Ešte raz a celé :).

#!/bin/sh
DIR=/tmp
echo “ls -lt” sshpass -f aa.pswd sftp user@sftp.server.sk:/dajaky_adresar 1>sftp.log 2>&1
FILE=$(cat sftp.log sed -n 4p awk ‘{print $NF}’)
echo “get $FILE” sshpass -f aa.pswd sftp user@sftp.server.sk:/dajaky_adresar
mv $FILE “$DIR/$FILE”