Batch Index du Forum
S’enregistrerRechercherFAQMembresGroupesConnexion
Répondre au sujet Page 1 sur 1
delestage auto des backup plus anciens que 7 jours sur FTP
Auteur Message
Répondre en citant
Message delestage auto des backup plus anciens que 7 jours sur FTP 
bonjour a tous Wink

voila plusieurs jours que cherche une solution pour supprimer mes backups de mon serveur ftp plus anciens que x temps automatiquement.

mon serveur tourne avec un windows 2008r2,j'utilise un batch en tâches planifiée pour envoyer les sites et leurs BDD sur le serveur ftp.
mais le probléme est que lorsque l'éspace de stockage ftp est au maximum de ca capacité les backups nne se font plus.
si j'oublis de faire un nettoyage manuel sur le serveur ftp je me retrouve avec des backups trops anciens.

sur le principe de mon batch un dossier "sites_backups" est a la racine du serveur ftp ,dans ce dossier le batch crée un dossier renomé avec la date du jour "AA/DD/MM' qui contient une archive zip pour chaque site.

je voudrais donc en partant du dossier AA/DD/MM pouvoir comparer la date actuel à celles des dossiers et suprimmer automatiquement les dossiers plus anciens de 7 jours.

voici le fichiers batch dans son état actuel :
===============================================
Code:
@echo off

set Annee=%DATE:~6,4%
set Mois=%DATE:~3,2%
set Jour=%DATE:~0,2%

set today=%Annee%-%Mois%-%Jour%
for /f "tokens=1" %%i in ('date /t') do set thedate=%%i

set mm=%thedate:~3,2%
set dd=%thedate:~0,2%
set yyyy=%thedate:~6,4%

if %dd%==08 (
set dd=8 ) else (
if %dd%==09 (
set dd=9 ) )

if %mm%==08 (
set mm=8 ) else (
if %mm%==09 (
set mm=9 ) )

set /A dd=%dd% - 20
set /A mm=%mm% + 0

if /I %dd% GTR 0 goto DONE
set /A mm=%mm% - 1
if /I %mm% GTR 0 goto ADJUSTDAY
set /A mm=12
set /A yyyy=%yyyy% - 1

:ADJUSTDAY
if %mm%==1 goto SET31
if %mm%==2 goto LEAPCHK
if %mm%==3 goto SET31
if %mm%==4 goto SET30
if %mm%==5 goto SET31
if %mm%==6 goto SET30
if %mm%==7 goto SET31
if %mm%==8 goto SET31
if %mm%==9 goto SET30
if %mm%==10 goto SET31
if %mm%==11 goto SET30
if %mm%==12 goto SET31

goto ERROR

:SET31
set /A dd=31 + %dd%
goto DONE

:SET30
set /A dd=30 + %dd%
goto DONE

:LEAPCHK
set /A tt=%yyyy% %% 4
if not %tt%==0 goto SET28
set /A tt=%yyyy% %% 100
if not %tt%==0 goto SET29
set /A tt=%yyyy% %% 400
if %tt%==0 goto SET29

:SET28
set /A dd=28 + %dd%
goto DONE

:SET29
set /A dd=29 + %dd%

:DONE
if /i %dd% LSS 10 set dd=0%dd%
if /I %mm% LSS 10 set mm=0%mm%
set past=%yyyy%-%mm%-%dd%

set db_host=localhost
set db_user=
set db_pass=
set SCRIPT_NAME="c:\ftp_script.ftp"
set ftp_host=machin.net
set ftp_user=toto
set ftp_pass=mon mot de passe
set ftp_dir=le dossier racine du FTP

set db_name=site1 sourcebans
"c:\mysqldump.exe" -h %db_host% -u %db_user% -p%db_pass% --complete-insert --create-options --add-drop-table %db_name% > "C:\chemin \temp\site1.sql"
"c:\7z.exe" a -tzip c:\site1.zip -r C:\chemin racine\site1\*.*
@del "C:\chemin \temp\site1.sql"

set db_name=site2
"c:\mysqldump.exe" -h %db_host% -u %db_user% -p%db_pass% --complete-insert --create-options --add-drop-table %db_name% > "C:\C:\chemin \temp\site2.sql"
"c:\7z.exe" a -tzip c:\site1.zip -r C:\chemin racine\site2\*.*
@del "C:\chemin \temp\site2.sql"

::ETC ETC


set db_name=mysql
"c:\mysqldump.exe" -h %db_host% -u %db_user% -p%db_pass% --complete-insert --create-options --add-drop-table %db_name% > "c:\mysql_structure.sql"
"c:\7z.exe" a -tzip c:\mysql_structure.zip c:\mysql_structure.sql
@del "c:\mysql_structure.sql"

echo open %ftp_host%>> %SCRIPT_NAME%
echo %ftp_user%>> %SCRIPT_NAME%
echo %ftp_pass%>> %SCRIPT_NAME%
echo binary>> %SCRIPT_NAME%
echo cd %ftp_dir%>> %SCRIPT_NAME%
echo prompt>> %SCRIPT_NAME%
echo mdel %past%/*.*>> %SCRIPT_NAME%
echo rmdir %past%>> %SCRIPT_NAME%
echo mkdir %today%>> %SCRIPT_NAME%
echo cd %today%>> %SCRIPT_NAME%
echo mput c:\*.zip>> %SCRIPT_NAME%
echo disconnect>> %SCRIPT_NAME%
echo bye>> %SCRIPT_NAME%
ftp -s:%SCRIPT_NAME%
::SUPPRESSION DES ZIP TEMP SUR LE SERVEUR
@del "c:\site1.zip"
@del "c:\site2.zip"
::ETCETC
@del %SCRIPT_NAME% /q

=====================================================================
je précise que je suis un newbies en batch ^^
y aurait il une âme charitable qui pourrais me sortir de cette impasse en vous remerciant à l'avance.Wink



Visiter le site web du posteur
Message Publicité 
PublicitéSupprimer les publicités ?


Répondre en citant
Message delestage auto des backup plus anciens que 7 jours sur FTP 
Hello !

1er indice:

Code:

@echo off

for %%§ in ("TON_FICHIER") do echo %%~t§

pause





______________________________________________________


L'ignorance est un fléau qui engendre la haine et la mort
La connaissance est une arme qui surpasse toutes les autres
Partagez votre savoir, sinon il sera perdu à jamais
Répondre en citant
Message delestage auto des backup plus anciens que 7 jours sur FTP 
oups desolé je n'ai pas reçu la notification de réponse Smile
merci pour ta réponse mais pourrais tu m'aiguiller un peu plus je n'y connais vraiment rien en batch j'ai tenter de faire ceci dans un nouveau batch mais cela ne fonctionne pas Sad

Code:
@echo off

set Annee=%DATE:~6,4%
set Mois=%DATE:~3,2%
set Jour=%DATE:~0,2%

set today=%Annee%-%Mois%-%Jour%
for /f "tokens=1" %%i in ('date /t') do set thedate=%%i

set mm=%thedate:~3,2%
set dd=%thedate:~0,2%
set yyyy=%thedate:~6,4%

if %dd%==08 (
set dd=8 ) else (
if %dd%==09 (
set dd=9 ) )

if %mm%==08 (
set mm=8 ) else (
if %mm%==09 (
set mm=9 ) )

set /A dd=%dd% - 20
set /A mm=%mm% + 0

if /I %dd% GTR 0 goto DONE
set /A mm=%mm% - 1
if /I %mm% GTR 0 goto ADJUSTDAY
set /A mm=12
set /A yyyy=%yyyy% - 1

:ADJUSTDAY
if %mm%==1 goto SET31
if %mm%==2 goto LEAPCHK
if %mm%==3 goto SET31
if %mm%==4 goto SET30
if %mm%==5 goto SET31
if %mm%==6 goto SET30
if %mm%==7 goto SET31
if %mm%==8 goto SET31
if %mm%==9 goto SET30
if %mm%==10 goto SET31
if %mm%==11 goto SET30
if %mm%==12 goto SET31

goto ERROR

:SET31
set /A dd=31 + %dd%
goto DONE

:SET30
set /A dd=30 + %dd%
goto DONE

:LEAPCHK
set /A tt=%yyyy% %% 4
if not %tt%==0 goto SET28
set /A tt=%yyyy% %% 100
if not %tt%==0 goto SET29
set /A tt=%yyyy% %% 400
if %tt%==0 goto SET29

:SET28
set /A dd=28 + %dd%
goto DONE

:SET29
set /A dd=29 + %dd%

:DONE
if /i %dd% LSS 10 set dd=0%dd%
if /I %mm% LSS 10 set mm=0%mm%
set past=%yyyy%-%mm%-%dd%
set ftp_host=macihn .net
set ftp_user=toto
set ftp_pass=mon passe
set ftp_dir=sites_backups
echo open %ftp_host%>> %SCRIPT_NAME%
echo %ftp_user%>> %SCRIPT_NAME%
echo %ftp_pass%>> %SCRIPT_NAME%
echo binary>> %SCRIPT_NAME%
echo cd %ftp_dir%>> %SCRIPT_NAME%
 for /f "tokens=6,7,8,*" %%a in (ftp_dir) do (
    echo %%d
 )
echo %%c %%a %%b - %%d
call :month %%a
call :days %%c %month% %%b
IF !days! LEQ 4 echo DEL %%d >>ftpdel*/.zip
echo disconnect>> %SCRIPT_NAME%
echo bye>> %SCRIPT_NAME%
ftp -s:%SCRIPT_NAME%




Visiter le site web du posteur
Répondre en citant
Message delestage auto des backup plus anciens que 7 jours sur FTP 
Salut,

supprimer sur le FTP, sous Windows, je ne crois pas que cela soit possible, j'ai déjà cherché et rien trouvé (essayé avec une boucle, forfiles) et commande non reconnu à chaque fois...

Supprimer les archives de plus de 7 jours sur le PC, oui aucun problème...


 
Code:
 forfiles -pchemin_du_dossier -s -m*.zip -d-nbr_jrs -c"cmd /c del @FILE"

Il te faudra télécharger forfiles.



Répondre en citant
Message delestage auto des backup plus anciens que 7 jours sur FTP 
Bonjour
avec forefiles il semblerait possible de supprimer à partir d'un ftp

Code:

FORFILES -pc:\FTP -s -m*.zip -d-7 -c"CMD /C DEL /Q @FILE" -v


Lu ici




______________________________________________________
Faites paraitre votre batch sur BatchClipboard
Visiter le site web du posteur
Répondre en citant
Message delestage auto des backup plus anciens que 7 jours sur FTP 
merci a vous deux pour les réponses je me penche sur forfiles ce w-e (boulot de la semaine oblige ^^) et je redis si c'est ok Wink



Visiter le site web du posteur
Répondre en citant
Message delestage auto des backup plus anciens que 7 jours sur FTP 
Si tu y arrive, j'aimerais bien que tu partage car personnellement, impossible de le faire via ftp... sur le disque du pc, oui mais autrement non...



Message delestage auto des backup plus anciens que 7 jours sur FTP 


Montrer les messages depuis:
Répondre au sujet Page 1 sur 1
  



Index | créer un forum | Forum gratuit d’entraide | Annuaire des forums gratuits | Signaler une violation | Conditions générales d'utilisation
Copyright 2008 - 2016 // Batch