Hello à toutes et tous.
J’essaie de faire un script qui me permette de télécharger un fichier en ftp.
J’ai essayé ce script :
#!/bin/bash
sudo python /diagbox/web/scripts/gpio/led_32_on.py
sudo python /diagbox/web/scripts/gpio/led_10_on.py
Suser=$1
Spass=$2
Sip=$3
Sport=$4
Sname=$5
Slight=$6
#Veriff si présence du fichier resultat
echo "verif presence fichier vider_iso"
if [ -f "/diagbox/web/tmp/maj_resultat" ];then
sudo rm /diagbox/web/tmp/maj_resultat
fi
#Aller dans le bon dossier
cd /StockImg
#Vide le dossier s'il y a qqch
echo "vider le dossier stock iso"
if sudo rm -rf /StockImg/*; then
echo "ok"
else
sudo python /diagbox/web/scripts/gpio/led_32_off.py
sudo python /diagbox/web/scripts/gpio/led_10_off.py
sudo echo 'koo' >> /diagbox/web/tmp/maj_resultat
exit
fi
#Lancer le téléchargement
if sudo wget --ftp-user=$1 --ftp-password=$2 ftp://$3:$4/iso/$5;then
echo 'ok'
else
sudo python /diagbox/web/scripts/gpio/led_32_off.py
sudo python /diagbox/web/scripts/gpio/led_10_off.py
echo 'kooo' >> /diagbox/web/tmp/maj_resultat
exit
fi
#Renommer fichier
if sudo mv /StockImg/$5 /StockImg/$6;then
echo 'ok' >> /diagbox/web/tmp/maj_resultat
else
sudo python /diagbox/web/scripts/gpio/led_32_off.py
sudo python /diagbox/web/scripts/gpio/led_10_off.py
echo 'kooooooo' >> /diagbox/web/tmp/maj_resultat
exit
fi
exit
Ca fonctionne quand je suis dans le réseau ( en Lan).
Mais en extérieur ça bloque.
J’ai pourtant ouvert tous les ports pour le mode passif.
Et ça fonctionne quand je me connecte avec filezila en mode passif.
==> SYST ... done. ==> PWD ... done.
==> TYPE I ... done. ==> CWD (1) /iso ... done.
==> SIZE diagbox_G0R0C1.light ... 1105616969
==> PASV ... couldn't connect to 192.168.3.75 port 49957: Connection timed out
Retrying.
==> SYST ... done. ==> PWD ... done.
==> TYPE I ... done. ==> CWD (1) /iso ... done.
==> SIZE diagbox_G0R0C1.light ... 1105616969
==> PASV ... couldn't connect to 192.168.3.75 port 49957: Connection timed out
Retrying.
Du coups j’ai essayé avec la commande ftp :
#!/bin/sh
# constantes
HOST=$1
LOGIN=$2
PASSWORD=$3
PORT=$4
# le transfert lui même
ftp -i -n -v $HOST $PORT << END_SCRIPT
quote USER $LOGIN
quote PASS $PASSWORD
mget $5
quit
END_SCRIPT
Voila ce que j’ai en retour :
Connected to domoticity.ddns.net.
220 Serveur FTP ::ffff:192.168.3.75 prêt
331 Mot de passe requis pour diagbox
230 Utilisateur diagbox authentifié
221 Au revoir.
Mais aucun fichier télécharger ( la commande se coupe au bout de 2 seconde alors qu’un fichier de 1go devrait venir )
Ma préférence serait pour wget car je peux le manipuler avec des if et else, que la commande ftp je ne vois pas comment faire.
Si quelqu’un voit ma grosse erreur je suis preneur
Merci par avance