Page 1 sur 1

Application BackUp FTP

Publié : mer. 19/août/2015 18:27
par Yrahen
Bonsoir les gens,

Il y a une semaine, suite a la suppression malencontreuse du contenu de mon serveur ftp, je me suis dit "Tiens, un code pour faire des backup ca pourrait etre sympa.".

Du coup je me permet de poster ici le code créé pour l'occasion. La base du code a été trouvé sur le forum anglais, je l'ai un peu adapté a mes besoins.

Code : Tout sélectionner

InitNetwork() : OpenConsole()

Macro Afficher(Texte) : PrintN(Texte) : EndMacro
Macro Exclure(Rep) : AddElement(Exclusion()) : Exclusion()=Rep : EndMacro

Global NewList ftpFile.s() : Global NewList Exclusion.s() : Global Repertoire$
Repertoire$=FormatDate("%dd-%mm-%yyyy", Date())

#FTP=1

;
; A remplir
;

#Hote$="ftp.trucmuch" : #User$="machinchose"  : #Password$="motdepasse"

;
; Dossiers qui seront exclus a l'exploration
;

Exclure(".") : Exclure("..") : Exclure("error")

Procedure Explore(dir.s)
  Protected NewList DirectoryFTP.s()
  Afficher("-"+dir)
  CreateDirectory(Repertoire$+dir)
  SetFTPDirectory(#FTP, dir)
  If ExamineFTPDirectory(#FTP)
    While NextFTPDirectoryEntry(#FTP)
      If FTPDirectoryEntryType(#FTP) = #PB_FTP_File
        AddElement( ftpFile() )
        ftpFile() = dir + FTPDirectoryEntryName(#FTP)
        Afficher("   "+ftpFile())
        ReceiveFTPFile(#FTP,ftpFile(),Repertoire$+ftpFile())
      ElseIf FTPDirectoryEntryType(#FTP) = #PB_FTP_Directory
        Exclu=0
        ForEach Exclusion() 
          If FTPDirectoryEntryName(#FTP)=Exclusion() : Exclu=1 : EndIf
        Next

        If Exclu=0
          AddElement( DirectoryFTP() )
          DirectoryFTP() = dir + FTPDirectoryEntryName(#FTP) + "/"
        EndIf
      EndIf 
    Wend
  EndIf
  ForEach DirectoryFTP() : Explore(DirectoryFTP()) : Next
EndProcedure



If OpenFTP(#FTP,#Hote$,#User$,#Password$)
  Afficher("---") : Afficher("Debut de la sauvegarde") : Afficher("---")
  CreateDirectory(Repertoire$)
  Explore("/")
  CloseFTP(#FTP)
  Afficher("---") : Afficher("Fin de la sauvegarde") : Afficher("---")
  Input()
Else
  Afficher("Impossible de se connecter au FTP.")
EndIf
End
Biensur, il faut modifier les constantes Hote, User et Password.

Pour ce qui est des Exclure("XXX"), ca permet de ne pas rechercher dans certains repertoires. Dans mon exemple, mon hebergeur me colle automatiquement un dossier "error" qui contiendra des fichiers dont je me fou completement.

Je sais pas si ce code va servir a quelqu'un, c'etait surtout histoire de partager :)

Re: Application BackUp FTP

Publié : jeu. 20/août/2015 11:25
par Ar-S
En ajoutant la date des documents tu as les prémices pour faire un CloudFTP.
J'ai pensé me faire ça mais j'ai pas trouvé le temps.

Re: Application BackUp FTP

Publié : jeu. 20/août/2015 12:13
par Yrahen
CloudFTP? Je vois bien le cloud, le FTP, mais le melange des deux, tu le definirais comment?

Re: Application BackUp FTP

Publié : jeu. 20/août/2015 13:35
par Ar-S
Bien synchroniser un dossier ftp et un dossier en locale. Comme le ferait OneDrive.
ça permettrait de synchroniser des documents (perso le faire pour mes code PB par exemple) d'un PC à un autre.

Re: Application BackUp FTP

Publié : jeu. 20/août/2015 18:05
par Yrahen
Ah d'accord.
C'est pas con comme idée de projet, je bosse souvent sur plusieurs pc ca me serait utile.
Bon bah je me pencherais dessus pendant mes vacances alors, je partagerais ca :)