Curlftpfs


 

 

Utilité : Permet de se connecter à vos site Ftp à l'aide de curlftpfs.

 

Fonctionnement :

- Affichage d'une boite de dialogue de choix
- En fonction du choix, connexion au ftp désiré et ouverture du répertoire sur le bureau
- Si erreur de connexion, affichage d'une boite de dialogue et fin
- icône de notification de connexion


#!/bin/bash
Je déclare le programme qui va traiter le script ( OBLIGATOIRE)

####################### choix ############################
opt=`zenity --list --radiolist --width=300 --height=220 \          le caractère "\" signifie que la suite de la commande se situe à la ligne suivante
--title="Ftp" \
--column="" --column="Ftp" --column="Description" \    la première colonne n'aura pas de titre  ( "" ) , la seconde Ftp et la troisième Description
TRUE    "1"        "nom1" \          le TRUE à la première colonne signifie que le bouton sera par défaut sur ce choix
FALSE    "2"        "nom2" \
FALSE    "3"        "nom3" \
FALSE    "4"        "Autre" `  
J'affiche une boite de dialogue de choix ( avec 4 choix ) , le résultat sera conservé dans la variable $opt ( grace au caractères ` `, j'aurais pu utilliser $( commande ) )

case "$opt" in
dans le cas ou la variable $opt est égale à

1) f="serveur1" ; u="login1" ; pass="pass1"  ;;
1 alors la variables $f est égale à serveur1, $u à login1 , etc ... jusqu'aux caractères ";;" qui délimite le test

2) f="serveur2" ; u="login2" ; pass="pass2"  ;;

3) f="serveur3" ; u="login3" ; pass="pass3"  ;;

4) f=`zenity --entry --text="Serveur : ftp://"`
j'affiche une boite de dialogue demandant d'entrer le serveur ftp, le résultat sera conservé dans la variable $f

u=`zenity --entry --text="utilisateur"`
j'affiche une boite de dialogue demandant d'entrer le nom d'utilisateur, le résultat sera conservé dans la variable $u

pass=`zenity --entry --text="password"` ;;
j'affiche une boite de dialogue demandant d'entrer le mot de passe, le résultat sera conservé dans la variable $pass
les caractères ";;"  délimite le test dans le c


*) exit 1 ;;
Dans tout les autres cas, fin du script

esac
fin du test de la variable $opt

###################### Curlftps ######################
ftp="ftp://$f" ; user="user=$u:$pass"
je déclare que la variable $ftp est égale à "ftp://$f" donc "ftp://serveur1" par exemple, je declare que la variable $user est égale à "user=login1:pass1"

mkdir ~/Desktop/Ftp
je crée un dossier Ftp dans le dossier utilisateur sur son bureau

curlftpfs "$ftp" ~/Desktop/Ftp -o "$user"
je me connecte au serveur à l'aide de la commande curlftpfs

################ Verification de la connexion ############

case $? in
dans le cas ou la précédente commande ( c'est à dire curlftps ) est égale à

1)
le 1 signifie qu'il y a eu une erreur ( la variable $? affiche le resultat de la commande precedente, 0 si c'est ok, 1 dans les autres cas )

zenity --error --text="Probleme de connexion, operation echouée !"
j'affiche une boite de dialogue d'erreur

exit 2
fin du script sur erreur.

;;
fin du test ou $? est egale à 1


0)
le 0 signifie que tout s'est bien déroulé

exo-open ~/Desktop/Ftp
j'ouvre mon répertoire Ftp situé sur mon bureau ( sous gnome, j'aurais pu utiliser la commande gnome-open )

zenity --notification --text="Connecté sur $ftp  Cliquer pour se déconnecter"
j'affiche un icone de notification avec le texte "Connecté sur serveur1  Cliquer pour se déconnecter" par exemple

si je clique sur l'icône alors je fais ce qui suit, sinon rien ne se passe

fusermount -u ~/Desktop/Ftp
Je me déconnecte avec la commande fusermount

if [ $? -eq 0 ] ; then zenity --info --text="Deconnecté de $ftp"
Si la commande s'est bien passé ( le $? ) alors j'affiche une boite de dialogue

fi
fi du test de $? de la commande fusermount

;;
fin du test de $? de la commande culftps

esac
fin du test

rm -rf ~/Desktop/Ftp
suppression du répertoire du bureau

exit 0
sortie du script