1 1 1 1 1 Rating 0.00 (0 Votes)

Ah les bonnes vieilles racines du web le FTP !

Imaginez que vous ayez un site web Joomla et que vous utilisiez JoomlaPack pour faire vos backup, il serait néanmoins intéressant de faire un batch pour récuprer ces backup en local ? 

Et soyons fou si vous avez de l'espace de stockage virtuelle pourquoi pas les encrypter en 128bits et les re uploader sur un serveur de backup de l'autre côté de l'Atlantique ? On ne sais jamais en cas de guerre nucléaire sur l'Europe ! Oui c'est possible et en 10mn... pas la guerre le backup hein ! lmao ;)

Ou plus précisément comment se connecter à un serveur FTP quand on n'a que Windows ou Dos sous la main et que l'on est allergique a explorer ?

En utlisant FTP !

Passons à la pratique :

Ftp est une petite commande de Microsoft Windows 2000, XP, NT, 7. Elle permet de se connecter à des... ftp... et bien sûr d'automatiser certaines tâches, par contre vous vous en doutez il y a un revers à la médaille... c'est du Microsoft....

C'est que ce programme est un bloc de pierre, il est c... comme un balai et assez intransigeant dès que l'on veut un peu le commander (sale môme), donc il va falloir le guider, pour ce faire il faut lui faire en mode automatisé un petit fichier de commandes.

C'est ce que j'ai fait avec le fichier command.txt et command2.txt, ce sont les 2 fichiers qui contiennent identifiants et mots de passes, ainsi que les commandes à effectuer sur le ftp, ne vous plantez pas il y a pas de undo...

Dans le cas d'une récupération de données cycliques autant automatiser. Dans mon cas de figure il s'agit de récupérer en local, de compresser et d'encrypter en 128 bits et de re uploader sur un ftp (j'adore automatiser). Alors voici comment faire, tout d'abort créer un .bat contenant à peu près ceci :


Backupcrashdebug.bat----------------------------------------------------------------------------- prog principal
CD C:\Users\Neo\Documents\Dev web\Backup_Auto_Temp

ftp -i -n -s:c:command.txt ftp.votreserveurftp.fr

rar a -r -t -rv -dh -hpxxxxxxx -pxxxxxxx -isnd backup *.* backup

CD C:\Users\Neo\Documents\Dev web\Backup_Auto_Temp

ftp -i -n -s:c:command2.txt file.votre2emeserveurftp.net

Echo Job done Folamour ;)

pause

Et voilà pour le batch principal, remplacer le c:\user par votre répertoire de travail et les 'xxxxxxx' par votre mot de passe d'archive.


Pour les exemples de fichiers de réponses je pense que c'est assez parlant :


command.txt------------------------------------------------------------------------------------- réponses FTP1
user VOTREUSER VOTREPASSWORD

cd\
cd /administrator/components/com_joomlapack/backup/

bell
binary
mget *.*
close wait
close
quit

Command2.txt------------------------------------------------------------------------------------- réponses FTP2
user VOTREUSER VOTREPASSWORD

cd \
cd system
cd backup

del .
bell
binary
mput backup.rar
close wait
close
quit
--------------------------------------------------------------------------------------------------

Voilà c'est tout bête, car avec JoomlaPack les fichiers sont déja compressés avec la table SQL ,et là on récupère l'ENSEMBLE des backup pas de cadeaux,
si une personne avait voulu faire un backup sélectif d'un site, il faut procédér répertoire par répertoire ce qui est vite fastidieux.
 
Mais non, ils n'ont pas prévu de commande de type Robocopy ou Xcopy, donc il faut connaître la structure du site web et faire un CD /nomderépertoire avant chaque copie et ne pas oublier de rétablir la structure en sortie, mais c'est sans problème possible,

j'ai mis le signal Bell pour indiquer par voie sonore la fin d'un transfert ne pas oublier de passer aussi en mode 'binary' sinon surprise assuré à l'arrivée,

le 'programme' mdr va donc se localiser sur le répertoire C:\Users\Neo\Documents\Dev web\Backup_Auto_Temp se connecter au ftp distant
copier tout le contenu de /administrator/components/com_joomlapack/backup sur le disque C: dans le répertoire courant indiqué précédement,

puis on ferme la connexion, on compresse le backup à l'aide de winrar et on met le password, on se connecte à l'autre ftp et on re upload le tout, et on ferme la connexxion.

On a donc une copie locale propre et un backup crypté :) pour encrypter je me suis servi de la version dos de rar.exe qui est présent dans Winrar téléchargeable ici bien sûr il faut que rar.exe soit dans un de vos chemins de recherches ou dans le même répertoire que backupcrashdebug.bat sinon le batch échouera.

si ont désire automatiser tout ça il suffit de taper au prompt :

at \\nomdelamachine 2:00:00 EVERY M,T,W,Th,S,Su C:\Users\Neo\Document
s\Dev web\Backup_Auto_Temp\backupcrashdebug.bat

Ce qui veut dire à 2:00:00 tous les jours de la semaine lance backupcrashdebug.bat remplacez bien sûr C:\user etc... par le chemin de votre programme... sinon ça risque de pédaler dans le vide...

Pour un rappel des programmes en attente tapez AT (entrée) au prompt)
je suis pas très confiant dans AT ... mais apparemment c'est pas rebootproof donc batch dans le groupe démarrage, je suis en train de tester...

La commande de base est simple FTP nomduserveurftp login motdepasse
si vous vous trompez vous passez en mode interractif,
sinon pour un login directement interractif tapez ftp nomduserveur ftp et tada! présentation...

Pour les amoureux de command prompt :) voici les commandes de ftp:

List of FTP commands for the Microsoft command-line FTP client

Command-line options As you're starting the program from a DOS prompt:

ftp [-v] [-d] [-i] [-n] [-g] [-s:filename] [-a] [-w:windowsize] [computer]

-v - Suppresses verbose display of remote server responses.
-n - Suppresses auto-login upon initial connection.
-i - Turns off interactive prompting during multiple file transfers.
-d - Enables debugging, displaying all ftp commands passed between the client and server.
-g - Disables filename globbing, which permits the use of wildcard chracters in local file and path names.
-s:filename - Specifies a text file containing ftp commands; the commands will automatically run after ftp starts. No spaces are allowed in this parameter. Use this switch instead of redirection (>).
-a - Use any local interface when binding data connection.
-w:windowsize - Overrides the default transfer buffer size of 4096.
computer - Specifies the computer name or IP address of the remote computer to connect to. The computer, if specified, must be the last parameter on the line.
Client commands! - Runs the specified command on the local computer
? - Displays descriptions for ftp commands
append - Appends a local file to a file on the remote computer
ascii - Sets the file transfer type to ASCII, the default
bell - Toggles a bell to ring after each file transfer command is completed (default = OFF)
binary - Sets the file transfer type to binary
bye - Ends the FTP session and exits ftp
cd - Changes the working directory on the remote computer
close - Ends the FTP session and returns to the command interpreter
debug - Toggles debugging (default = OFF)
delete - Deletes a single file on a remote computer
dir - Displays a list of a remote directory's files and subdirectories
disconnect - Disconnects from the remote computer, retaining the ftp prompt
get - Copies a single remote file to the local computer
glob - Toggles filename globbing (wildcard characters) (default = ON)
hash - Toggles hash-sign (#) printing for each data block transferred (default = OFF)
help - Displays descriptions for ftp commands
lcd - Changes the working directory on the local computer
literal - Sends arguments, verbatim, to the remote FTP server
ls - Displays an abbreviated list of a remote directory's files and subdirectories
mdelete - Deletes one or more files on a remote computer
mdir - Displays a list of a remote directory's files and subdirectories
mget - Copies one or more remote files to the local computer
mkdir - Creates a remote directory
mls - Displays an abbreviated list of a remote directory's files and subdirectories
mput - Copies one or more local files to the remote computer
open - Connects to the specified FTP server
prompt - Toggles prompting (default = ON)
put - Copies a single local file to the remote computer
pwd - Displays the current directory on the remote computer (literally, "print working directory")
quit - Ends the FTP session with the remote computer and exits ftp (same as "bye")
quote - Sends arguments, verbatim, to the remote FTP server (same as "literal")
recv - Copies a remote file to the local computer
remotehelp - Displays help for remote commands
rename - Renames remote files
rmdir - Deletes a remote directory
send - Copies a local file to the remote computer (same as "put")
status - Displays the current status of FTP connections
trace - Toggles packet tracing (default = OFF)
type - Sets or displays the file transfer type (default = ASCII)
user - Specifes a user to the remote computer
verbose - Toggles verbose mode (default = ON)

Folamour,

 

Vous êtes ici : Accueil Arrow Informatique Arrow Astuces Logiciels Arrow Ftp mon amour,