Copie et suppression dossier FTP tout les jours

Copie et suppression dossier FTP tout les jours - Shell/Batch - Programmation

Marsh Posté le 03-07-2017 à 18:04:37    

Bonjour,  
 
J'ai une camera qui envoi des images sur un FTP gratuit.  
 
Mon probleme est qu'il sature trés vite.  
 
Donc tout les jours je copie vers mon ordi puis supprime du ftp
 
Savez vous si il existe un logiciel (ou un mini systeme) qui permettrait de faire cette manip de manière autonome ?  
 
De mes recherches j'ai trouvé des personnes qui parle de faire un scipt. mais ça me semble complexe  Pourriez vous m'aider ?  
 
(Les dossiers changent de nom tout les jours genre  
Camera\
Puis  
2017 06 15
2017 06 16...)  
 
Adresse FTP : fab-preview.your-hosting.net
Idenfiant : fabfab
mot de passe : zerofoiszero
 
 
Par avance merci pour votre aide.  
 
 

Reply

Marsh Posté le 03-07-2017 à 18:04:37   

Reply

Marsh Posté le 04-07-2017 à 10:04:03    

Euh mais pourquoi tu nous donnes les coordonnées du serveur avec les identifiants ? :o

 

Sinon, oui, tu peux faire un script pour automatiser tes actions. Par contre déjà il faudrait lister PRECISEMENT ce qu'il faut faire. Du genre :
- Se connecter au FTP
- Ouvrir le répertoire bidule
- Copier truc sur X
- Supprimer machin
- Fermer
Etc

 

Dans tous les cas on pourra t'orienter sur comment faire le script/quels outils correspondent, mais on ne te fera probablement pas le boulot.


Message édité par TotalRecall le 04-07-2017 à 10:06:21

---------------
Réalisation amplis classe D / T      Topic .Net - C# @ Prog
Reply

Marsh Posté le 04-07-2017 à 18:07:28    

Bonjour,  
 
Les identifiants sont bidons.  
 
Se connecter au FTP tout les jours
Ouvrir dossier CAMERA  
Ouvrir dossier 192.192.1.1
Couper (ou copier) le dossier / les dossiers et les fichiers se trouvant à l'intérieur  
Suprimer les dossiers copier  
fermer.
(Eteindre pc ; allumage dans 23h)  
 
Ce qui peut etre une difficulté c'est que le dossier du jour peut etre amené à avoir des nouvelles photos  
Ensuite les dossiers changent de nom tout les jours car sont nommé par la date du jour
Exemple :  
Dossier : 2017-06-04
Fichier : 2017060422:30 ;  
Fichier2 :2017060422:31 ...etc  
 
Demain, il y aura un dossier 2017-06-05 ...etc  


Message édité par fab475 le 04-07-2017 à 18:09:46
Reply

Marsh Posté le 04-07-2017 à 19:53:10    

Il manque une info importante: Quel système d'exploitation?
 
Avec cURL p.ex. ça ne doit pas être sorcier, mais faudra essayer toi-même, comme l'indiquait TotalRecall on est pas vraiment là pour faire ton boulot - sachant que tu peux avoir de la chance, pour quelqu'un qui sait faire ça doit être rapide.

Reply

Marsh Posté le 04-07-2017 à 20:14:40    

moi je suis sur windows xp.  
mais apres j'ai un vieux pc qui peut etre formater et sur lequel on peut mettre ce qui vous parrait le plus simple.  

Reply

Marsh Posté le 05-07-2017 à 10:02:32    

Si rufo passe ici, il te dira probablement d'utiliser AutoIt [:caloub]


---------------
Réalisation amplis classe D / T      Topic .Net - C# @ Prog
Reply

Marsh Posté le 06-07-2017 à 06:50:15    

AutoIt ? enregistrerais les mouvements souris clavier et les reproduit c'est bien ça ?

Reply

Marsh Posté le 06-07-2017 à 08:56:44    

Si je dis "non, pas du tout", ça t'aide beaucoup ?


---------------
Réalisation amplis classe D / T      Topic .Net - C# @ Prog
Reply

Marsh Posté le 06-07-2017 à 22:06:11    

Bonjour,  
 
Pouvez vous m'aidez pour le scipt ?  
 
Sinon AutoIt, pas réussi. En revanche je suppose du meme principe j'ai trouvé Ghost Mouse.  
La problématique je crois pas que la fonction Couper existe sur filezilla.  
Donc copier vers PC ok,  
Mais, supprimer je dois attendre la fin de copie et ça c'est complétement aléatoire. Et si j’attends trop. De nouveaux clichés arrivent.  

Reply

Marsh Posté le 06-07-2017 à 23:14:43    

Pour le moment  
 
Je viens de tester WinSCP (client FTP) qui a une fonction couper repertoire touche F6  
Avec Ghost Mouse j'enregistre la manip.  
 
(Je bloque avec Win SCP pour si dossier présent pour garder en mémoire remplacer (ajouter)  

Reply

Marsh Posté le 06-07-2017 à 23:14:43   

Reply

Marsh Posté le 07-07-2017 à 08:26:32    

Euh moi j'ai proposé d'utiliser AutoIt, pas AutoIt + une souris + filezilla + winscp + des timers magiques +...
C'était le sens du "pas du tout" plus haut quand tu as parlé de souris.
Traduction : faire un script autoit de quelques lignes qui fasse tout. Ca commence par :
https://www.autoitscript.fr/autoit3 [...] onnect.htm
Je n'ai pas utilisé autoit pour ce genre de pb mais ton truc est plutôt simple et très procédural, pas besoin de savoir programmer.


Message édité par TotalRecall le 07-07-2017 à 08:30:16

---------------
Réalisation amplis classe D / T      Topic .Net - C# @ Prog
Reply

Marsh Posté le 08-07-2017 à 17:53:42    

Bonjour,  
 
Les scripts sont à priori interdit par le service FTP  
 
C'est le fichier que genere ghost mouse est ce que cela peut se tranformer en Bat ou en fichier executable ?  
 
Mouse : 794 : 43 : Move : 0 : 0 : 0
DELAY : 127
Mouse : 794 : 43 : LeftButtonDown : 0 : 0 : 0
DELAY : 95
Mouse : 794 : 42 : Move : 0 : 0 : 0
Mouse : 794 : 43 : LeftButtonUp : 0 : 0 : 0
DELAY : 27
 
En effet, tout les ghost record que j'ai tester fonctionne a partir du moment ou l'on ouvre le fichier .


Message édité par fab475 le 08-07-2017 à 17:54:17
Reply

Marsh Posté le 09-07-2017 à 20:20:57    

Bonjour,
 
Si tu as installé WinSCP tu peux essayer ce script .bat :
 

Code :
  1. @echo off
  2. Setlocal enableextensions
  3. set server=ftp://user:password@fab-preview.your-hosting.net
  4. set destination=%userprofile%\CAMERA
  5. set software=%ProgramFiles%\WinSCP\WinSCP.com
  6. set chemin=/CAMERA/192.192.1.1
  7. if not exist "%software%" (exit)
  8. if not exist "%destination%" (mkdir "%destination%" )
  9. cls & echo. & echo ****** Le transfert FTP va commencer ******
  10. echo. & ping -n 5 127.0.0.1 > nul
  11. "%software%" /ini=nul /command "open %server%" "cd %chemin%" "lcd %destination%" "get *" "rm *" "close" "exit"
  12. if %ERRORLEVEL% EQU 0 (cls & echo *** Transfert FTP = Success ***) else (
  13. cls & echo *** Transfert FTP = Error ***
  14. ping -n 5 127.0.0.1 > nul
  15. exit
  16. )
  17. pause
  18. Endlocal
  19. exit


Message édité par kyurakushunsui le 09-07-2017 à 20:46:58
Reply

Marsh Posté le 09-07-2017 à 21:47:47    

Bonjour,  
Avant de parler du script.  
 
Je refait point complet.
Objectif :  

Un logiciel (un ordi) se connect à un serveur STP. Copie sur l'ordinateur et supprime le dossier  
(au départ je parlais de sous dossier et de faire une trie, mais limite tant pis pour tout ça et les sous dossier; si il prend le dossier racine c'est bon aussi au final)  
 
Ghost recorder et enregistreur de souris.  
Je parlais d'enregistrer avec la souris les manips. Le problème pour les logiciels à mon niveau  testé est qu' il faut ouvrir le fichier d'enregistrement pour que ghost execute la manip. Pas reussi à ce que le programme s'ouvre seul et exécute tout seul.  
 
Au niveau de WinSCP.
Il y a une fonction qui permet de faire un raccourci au serveur. (on clic ça s’ouvre direct avec la dernière fenêtre)  
Il y a une fonction qui permet de copier et supprimer un dossier sélectionner (raccourci F6)  
Donc plus qu'a sélectionner le dossier et raccourci clavier F6  
 
Savez vous si il est possible apres ouverture de programmer WinSCP pour sélectionner le dossier et executer F6 ? puis exit ?  
 
 
 
kyurakushunsui
Merci pour le script. J'ai un peu honte, mais j'ai pas réussi à faire marcher.
 J'ai mis le code dans bloc note et enregistré en BAT (ou peut etre il aurait fallu faire dans WinSCP?)  
La console s'ouvre. inscrit " Le transfert FTP va commencer" puis "Transfert FTP = Error"  
 
De plus est ce que le logiciel WinSCP devrait s'ouvrir ?  
 
Les données

Adresse FTP : fab-preview.your-hosting.net
Idenfiant : fabfab
mot de passe : zerofoiszero


Pour le dossier à la limite, si il coupe le dossier CAMERA et supprime c'est pas un problème. La camera le re créera apres.  
Nota, je ne vois pas comment donner la ligne destination (sur mon ordi) du dossier ? (D:\Savecamera)  
 
--------------------------------------------------------------------
    @echo off
    Setlocal enableextensions
    set server=ftp://fabfab:zerofoiszero@fab-preview.your-hosting.net
    set destination=%userprofile%\CAMERA
    set software=%ProgramFiles%\WinSCP\WinSCP.exe <<< tu avais mis WinSCP.com j'ai modifié par Exe.  
    set chemin=/CAMERA/
    if not exist "%software%" (exit)
    if not exist "%destination%" (mkdir "%destination%" )
    cls & echo. & echo ****** Le transfert FTP va commencer ******
    echo. & ping -n 5 127.0.0.1 > nul
    "%software%" /ini=nul /command "open %server%" "cd %chemin%" "lcd %destination%" "get *" "rm *" "close" "exit"
    if %ERRORLEVEL% EQU 0 (cls & echo *** Transfert FTP = Success ***) else (
    cls & echo *** Transfert FTP = Error ***
    ping -n 5 127.0.0.1 > nul
    exit
    )
    pause
    Endlocal
    exit
 
 
Encore merci pour votre aide.

Reply

Marsh Posté le 09-07-2017 à 22:05:47    

Il ne faut pas remplacer WinSCP.com c'est fait exprès pour appeler le programme en ligne de commande.
 
Pour la destination il faut modifier cette ligne :  set destination=D:\Savecamera
 
Enfin il ne faut pas oublier d'indiquer tes vrais identifiants et l'adresse de ton serveur.

Reply

Marsh Posté le 09-07-2017 à 22:45:46    

Si ça ne marche toujours pas, c'est peut-être parce que ton serveur utilise SSL/TLS, dans ce cas il faudra modifier légèrement la commande WinSCP.com, à toi de me le dire.

Reply

Marsh Posté le 10-07-2017 à 12:25:37    

Citation :

Merci pour le script. J'ai un peu honte, mais j'ai pas réussi à faire marcher.
 J'ai mis le code dans bloc note et enregistré en BAT (ou peut etre il aurait fallu faire dans WinSCP?)


==>> c'est bien tu as fait ce qu'il fallait  
 
 
 

Citation :

De plus est ce que le logiciel WinSCP devrait s'ouvrir ?


==>> non il ne doit s'ouvrir, juste l'invite de commandes


Message édité par kyurakushunsui le 10-07-2017 à 12:25:50
Reply

Marsh Posté le 10-07-2017 à 14:30:25    

Bonjour !
 
Avec WinSCP, il n'est pas nécessaire, comme on le fait en scriptant des commandes standard depuis un shell, de faire :  

prompt
mget *


Pour récupérer tous les fichiers ? C'est une vraie question, je n'utilise WinSCP qu'en interface graphique et ne fais des scripts qu'avec le client en ligne de commandes Unix/Linux, mais j'imagine que les commandes à envoyer au serveur sont les mêmes ...
 
Bonne continuation !


---------------
On n'est jamais très fort pour ce calcul !
Reply

Marsh Posté le 19-12-2017 à 21:46:38    

Bonjour,  
 
Pour faire suite, cela marche super bien ton script kyurakushunsui. Alors Super merci :)  
 
J'aimerais à présent perfectionner un peu le programme.  

  • Est il possible d'ajouter au début de la commande une tempo genre attendre 2 min (c'est pour laisser le temps à l'ordinateur de démarrer tranquillement) ?  


De plus,  

  • Est il possible d'ajouter à au script une commande pour dire à la fin du téléchargement forcer éteindre le pc ? je connais ça "shutdown.exe -s -f -t 2520"


 
Je remet ci dessous le script cela peut servir à d'autre.  
 
    @echo off
    Setlocal enableextensions
    set server=ftp://fabfab:zerofoiszero@fab-preview.your-hosting.net  
    set destination=D:\Savecamera  
    set software=%ProgramFiles%\WinSCP\WinSCP.COM  
    set chemin=/CAMAV/
    if not exist "%software%" (exit)
    if not exist "%destination%" (mkdir "%destination%" )
    cls & echo. & echo ****** Le transfert FTP va commencer ******
    echo. & ping -n 5 127.0.0.1 > nul
    "%software%" /ini=nul /command "open %server%" "cd %chemin%" "lcd %destination%" "get *" "rm *" "close" "exit"
    if %ERRORLEVEL% EQU 0 (cls & echo *** Transfert FTP = Success ***) else (
    cls & echo *** Transfert FTP = Error ***
    ping -n 5 127.0.0.1 > nul
    exit
    )
    pause
    Endlocal
    exit

Message cité 1 fois
Message édité par fab475 le 18-03-2018 à 11:10:44
Reply

Marsh Posté le 18-03-2018 à 11:03:50    

Petit up :)


Message édité par fab475 le 18-03-2018 à 11:10:02
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed