Backup incrementiel dun seul dossier utilisateur

adgm1 Messages postés 255 Date d'inscription jeudi 4 octobre 2007 Statut Membre Dernière intervention 9 avril 2024 - 11 mars 2024 à 00:54
adgm1 Messages postés 255 Date d'inscription jeudi 4 octobre 2007 Statut Membre Dernière intervention 9 avril 2024 - 11 mars 2024 à 22:46

Bonjour,

je souhaite copier periodiquement un dossier unique (EXAM) présent dans chacun des profils utilisateur du serveur. comment avec une boucle for par exemple je peux faire cela et eviter de copier tous les autres dossier? voici mon batch de backup qui lancé a intervalles reguliers via tache planifiée permet davoir la copie de lensemble des dossier des profils utilisateurs

set today=%date:~6,4%-%date:~3,2%-%date:~,2%

robocopy "\\srv-dc1\d$\KoXoDATA\ELEVES\Tcap" "\\srv-dc1\d$\KoXoDATA\PARTAGES\exam\%today%" /MIR /FFT /R:1 /W:0 /Z /NP /NDL 



Windows / Firefox 123.0

A voir également:

3 réponses

brucine Messages postés 14349 Date d'inscription lundi 22 février 2021 Statut Membre Dernière intervention 29 avril 2024 1 820
11 mars 2024 à 09:54

Bonjour,

Je n'ai utilisé pour tester que /MIR et des chemins bidon, je ne connais pas ceux de tes dossiers à l'intérieur de tes profils.

Toujours la même histoire.

 

@echo off
CHCP 1252>NUL

FOR /F "tokens=1 skip=1 delims= " %%a in ('wmic UserAccount get Name') DO SET name=%%a & CALL :PROCESS
GOTO END

:PROCESS
SET name=%name:~0,-1%
IF EXIST C:\Users\%name%\test ROBOCOPY "C:\Users\%name%\test" "N:\%name%\test" /MIR
exit /b

:END
pause

à supposer que le profil Administrateur ou Invité contienne de tels dossiers que je veux pas voir archivés, j'ai plus vite fait de les enlever après:

IF EXIST "N:\Administrateur\test" RD /S /Q "N:\Administrateur\test"

0
adgm1 Messages postés 255 Date d'inscription jeudi 4 octobre 2007 Statut Membre Dernière intervention 9 avril 2024 10
11 mars 2024 à 12:16

Merci brucine 

Cette commande avec boucle for ne donne rien. 

Petite question la commande wmic useraccount get name va chercher des profils utilisateurs uniquement dans c:\users ? Dans mon cas ils ne sont pas dans ce lecteur mais dans d:\koxodata\classes

L'idée c'est de faire un robocopy du dossier d:\koxodata\...\cap qui contient tous les profils utilisateurs de la classe voulue, mais il faudrait récupérer uniquement le dossier nommé exam. 

Dans mon backup je n aurais donc que \\chemin-du-backup\cap\jean.dupond\exam et \\chemin-du-backup\cap\marie.durand\exam et ainsi de suite car je ne veux pas récupérer les autres dossiers du profils comme music vidéo documents...

0
brucine Messages postés 14349 Date d'inscription lundi 22 février 2021 Statut Membre Dernière intervention 29 avril 2024 1 820
11 mars 2024 à 13:13

wmic ne donne que les profils utilisateurs en local et à l'emplacement standard; s'ils sont aussi à l'emplacement standard mais sur un serveur (sur lequel on a des droits), il faut utiliser soit wmic avec le commutateur /NODE soit NET USER.

Si on utilise par exemple wmic /NODE et que le paramètre UserAccount décrit bien ton dossier personnalisé, on va être bon, sinon, on l'a dans le dos.
https://ss64.com/nt/wmic.html

Avant de chercher à boucler quoi que ce soit, on doit exécuter la commande hors boucle à l'invite de commande ou dans un batch pour vérifier si le résultat convoité y figure bien, si oui dans quelle colonne et à quel format.

Toujours dans l'hypothèse où la variable d'environnement est standard, on va pouvoir trouver la liste des utilisateurs par NET ACCOUNTS pour la traiter ensuite.
https://ss64.com/nt/net-useradmin.html

Si ce n'est pas le cas, il y a forcément sur ton système, que je ne connais pas, une variable d'environnement qui décrit les comptes utilisateurs.

Si pour une raison quelconque on n'y a pas accès, il faut s'intéresser à l'arborescence de ton dossier d:\koxodata\classes\Tartempion?...\cap: les dossiers prénom.nom se trouvent-ils à la racine du dossier cap lui accessible sans variable changeante?

Si oui ne s'y trouve-t-il que (les fichiers à la racine, on s'en moque, on peut les passer sous silence) ces dossiers prénom.nom, dans la négative les autres dossiers ont-ils un nom spécifique ou pas qui me permet de faire le tri, leur nom ne contient pas de point, ils sont en nombre limité et avec un nom fixe me permettant de les virer....?

Une fois localisés les dossiers en question, on n'a aucun problème avec ce que contient chaque dossier utilisateur pour n'en récupérer que le sous-dossier exam.

La question est donc soit de vérifier si localement sur le serveur (pas en réseau) le retour de wmic est correct (il faudra alors utiliser le commutateur /NODE sur le mode

WMIC /NODE:"nom de mon serveur" commande Wmic ou similaire via
NET ACCOUNTS.

Soit que tu nous éclaires sur l'arborescence de ton fameux dossier source, je comprends que tout ce qui va jusqu'à d:\koxodata\...\cap est constant, ce qui est intéressant pour la chasse à l'intrus est l'arborescence des sous-dossiers de \cap que tu peux retourner par exemple comme suit sur le chemin en question, ici l'arborescence de mon bureau, sous-dossiers seuls:

 



 




 

0
adgm1 Messages postés 255 Date d'inscription jeudi 4 octobre 2007 Statut Membre Dernière intervention 9 avril 2024 10
11 mars 2024 à 12:41

Oups j'ai encore parlé trop vite :)

J'avais fait une erreur de saisie dans le dossier de destination. Donc cela fonctionne j'ai bien les dossier exam pour chaque utilisateur dans mon répertoire de backup. Par contre j'ai un soucis au niveau de l incrémentiel. Si l'utilisateur supprime un fichier dans son espace il est aussi supprimé dans le backup, l'idée s'était plutôt de conserver tous les fichiers qui ont été au préalable créé même si l'utilisateur l'a effacé. Comment empêcher l'écrasement Total du dossier backup et ne rajouter que les nouveaux fichiers?

0
brucine Messages postés 14349 Date d'inscription lundi 22 février 2021 Statut Membre Dernière intervention 29 avril 2024 1 820
11 mars 2024 à 18:38

Désolé, je n'avais pas vu cette nouvelle réponse.

Dans ce cas, ROBOCOPY perd de son intérêt, XCOPY /D suffit.

Sans préciser la date de D, le comportement est de ne copier de source à destination que ce qui est plus récent dans la source.

1
adgm1 Messages postés 255 Date d'inscription jeudi 4 octobre 2007 Statut Membre Dernière intervention 9 avril 2024 10 > brucine Messages postés 14349 Date d'inscription lundi 22 février 2021 Statut Membre Dernière intervention 29 avril 2024
11 mars 2024 à 22:46

En effet cela fonctionne nickel avec cette commande. J'ai juste du rajouter /I car sinon j'avais une demande "Est-ce que (...) spécifie un nom de fichier
ou un nom de répertoire de la destination
" et donc la copy etait stoppé

0