"Eric Galais" a écrit dans le message de
news:
| Bonjour,
Bonjour,
| Je suis une super quiche en dev et je cherche à faire un script de
| test pour lancer une copie, je m'explique:
| je dois sauvegarder des données sur des portables qui peuvent
| changer de site dans une meme société. Genre portable de X qui bosse
| sur Paris vas aller sur le site de la société qui est à lorient.
| je veux lancer ma synchro que lorsqu'il est sur le site principal pour
| éviter de bouffer la bande passante entre Lorient et Paris.
| J'ai commancé à bidouiller un script en batch mais je n'abouti a rien
| de concret.
|
| Le site de Paris a une classe d'adresse spécifique et celui de Lorient
| aussi, genre 170.1.10.X et 180.1.100.X
|
| Mon souhait serait de faire ce script en VBS mais mes connaissances
| sont super limitées.
| Auriez vous des bribes de codes qui pourraient m'intéresser ou un
| exemple dont je pourrais m'inspirer?
|
| Merci d'avance.
|
| Eric
L'idée consiste à extraire les octets de l'adresse IP du poste puis de
comparer l'identificateur de réseau avec celui du site principal.
L'identificateur de réseau du site principal est contenu dans la
variable d'environnement 'mainSiteNetId'. Le pré requis consiste donc à
définir au préalable la variable d'environnement 'mainSiteNetId' avec
comme valeur 170 pour le site de Paris et 180 pour le site de Lorient.
Si le poste est connecté sur son site principal alors la synchronisation
pourra par exemple être réalisée avec l'outil du Resource Kit Microsoft
robocopy téléchargeable en suivant le lien ci-dessous :
http://www.microsoft.com/downloads/details.aspx?familyid467a69-57ff-4ae7-96ee-b18c4790cffd&displaylang=en
Ci dessous le script batch sync.cmd permettant de déclencher la
synchronisation uniquement si le poste est connecté sur son site
principal (testé avec XP SP1/SP2 FR) :
-- Couper ici : sync.cmd --
@echo off
:: Extraction des octets (j,k,l,m) de l'adresse IP de la
:: première interface réseau configurée
for /f "tokens" %%i in ('ipconfig ^| find /i "Adresse IP"') do (
for /f "delims=. tokens=1-4" %%j in ('echo %%i') do (
echo Adresse IP : %%j %%k %%l %%m
set netId=%%j
goto :_sync
)
)
:: synchronisation des données uniquement si le poste est connecté
:: sur son site principal. L'appartenance au site principal est
:: déterminée à l'aide de la variable d'environnement 'mainSiteNetId'
:_sync
if "%mainSiteNetId%" NEQ "%netId%" goto :eof
:: le poste est connecté sur son site principal
:: la synchronisation peut être lancée
echo synchronisation en cours ...
-- Couper ici : sync.cmd --
Bonne mise en oeuvre :-)
--
Gilles LAURENT
Me contacter : http://cerbermail.com/?zoTY7ZkLcD
"Eric Galais" <eric.galais@apaveno.com> a écrit dans le message de
news:OaVjEMqwGHA.5024@TK2MSFTNGP04.phx.gbl
| Bonjour,
Bonjour,
| Je suis une super quiche en dev et je cherche à faire un script de
| test pour lancer une copie, je m'explique:
| je dois sauvegarder des données sur des portables qui peuvent
| changer de site dans une meme société. Genre portable de X qui bosse
| sur Paris vas aller sur le site de la société qui est à lorient.
| je veux lancer ma synchro que lorsqu'il est sur le site principal pour
| éviter de bouffer la bande passante entre Lorient et Paris.
| J'ai commancé à bidouiller un script en batch mais je n'abouti a rien
| de concret.
|
| Le site de Paris a une classe d'adresse spécifique et celui de Lorient
| aussi, genre 170.1.10.X et 180.1.100.X
|
| Mon souhait serait de faire ce script en VBS mais mes connaissances
| sont super limitées.
| Auriez vous des bribes de codes qui pourraient m'intéresser ou un
| exemple dont je pourrais m'inspirer?
|
| Merci d'avance.
|
| Eric
L'idée consiste à extraire les octets de l'adresse IP du poste puis de
comparer l'identificateur de réseau avec celui du site principal.
L'identificateur de réseau du site principal est contenu dans la
variable d'environnement 'mainSiteNetId'. Le pré requis consiste donc à
définir au préalable la variable d'environnement 'mainSiteNetId' avec
comme valeur 170 pour le site de Paris et 180 pour le site de Lorient.
Si le poste est connecté sur son site principal alors la synchronisation
pourra par exemple être réalisée avec l'outil du Resource Kit Microsoft
robocopy téléchargeable en suivant le lien ci-dessous :
http://www.microsoft.com/downloads/details.aspx?familyid467a69-57ff-4ae7-96ee-b18c4790cffd&displaylang=en
Ci dessous le script batch sync.cmd permettant de déclencher la
synchronisation uniquement si le poste est connecté sur son site
principal (testé avec XP SP1/SP2 FR) :
-- Couper ici : sync.cmd --
@echo off
:: Extraction des octets (j,k,l,m) de l'adresse IP de la
:: première interface réseau configurée
for /f "tokens" %%i in ('ipconfig ^| find /i "Adresse IP"') do (
for /f "delims=. tokens=1-4" %%j in ('echo %%i') do (
echo Adresse IP : %%j %%k %%l %%m
set netId=%%j
goto :_sync
)
)
:: synchronisation des données uniquement si le poste est connecté
:: sur son site principal. L'appartenance au site principal est
:: déterminée à l'aide de la variable d'environnement 'mainSiteNetId'
:_sync
if "%mainSiteNetId%" NEQ "%netId%" goto :eof
:: le poste est connecté sur son site principal
:: la synchronisation peut être lancée
echo synchronisation en cours ...
-- Couper ici : sync.cmd --
Bonne mise en oeuvre :-)
--
Gilles LAURENT
Me contacter : http://cerbermail.com/?zoTY7ZkLcD
"Eric Galais" a écrit dans le message de
news:
| Bonjour,
Bonjour,
| Je suis une super quiche en dev et je cherche à faire un script de
| test pour lancer une copie, je m'explique:
| je dois sauvegarder des données sur des portables qui peuvent
| changer de site dans une meme société. Genre portable de X qui bosse
| sur Paris vas aller sur le site de la société qui est à lorient.
| je veux lancer ma synchro que lorsqu'il est sur le site principal pour
| éviter de bouffer la bande passante entre Lorient et Paris.
| J'ai commancé à bidouiller un script en batch mais je n'abouti a rien
| de concret.
|
| Le site de Paris a une classe d'adresse spécifique et celui de Lorient
| aussi, genre 170.1.10.X et 180.1.100.X
|
| Mon souhait serait de faire ce script en VBS mais mes connaissances
| sont super limitées.
| Auriez vous des bribes de codes qui pourraient m'intéresser ou un
| exemple dont je pourrais m'inspirer?
|
| Merci d'avance.
|
| Eric
L'idée consiste à extraire les octets de l'adresse IP du poste puis de
comparer l'identificateur de réseau avec celui du site principal.
L'identificateur de réseau du site principal est contenu dans la
variable d'environnement 'mainSiteNetId'. Le pré requis consiste donc à
définir au préalable la variable d'environnement 'mainSiteNetId' avec
comme valeur 170 pour le site de Paris et 180 pour le site de Lorient.
Si le poste est connecté sur son site principal alors la synchronisation
pourra par exemple être réalisée avec l'outil du Resource Kit Microsoft
robocopy téléchargeable en suivant le lien ci-dessous :
http://www.microsoft.com/downloads/details.aspx?familyid467a69-57ff-4ae7-96ee-b18c4790cffd&displaylang=en
Ci dessous le script batch sync.cmd permettant de déclencher la
synchronisation uniquement si le poste est connecté sur son site
principal (testé avec XP SP1/SP2 FR) :
-- Couper ici : sync.cmd --
@echo off
:: Extraction des octets (j,k,l,m) de l'adresse IP de la
:: première interface réseau configurée
for /f "tokens" %%i in ('ipconfig ^| find /i "Adresse IP"') do (
for /f "delims=. tokens=1-4" %%j in ('echo %%i') do (
echo Adresse IP : %%j %%k %%l %%m
set netId=%%j
goto :_sync
)
)
:: synchronisation des données uniquement si le poste est connecté
:: sur son site principal. L'appartenance au site principal est
:: déterminée à l'aide de la variable d'environnement 'mainSiteNetId'
:_sync
if "%mainSiteNetId%" NEQ "%netId%" goto :eof
:: le poste est connecté sur son site principal
:: la synchronisation peut être lancée
echo synchronisation en cours ...
-- Couper ici : sync.cmd --
Bonne mise en oeuvre :-)
--
Gilles LAURENT
Me contacter : http://cerbermail.com/?zoTY7ZkLcD
Un grand merci, je vais tester ca de suite :)
"Gilles LAURENT" a écrit dans le message de news:"Eric Galais" a écrit dans le message de
news:
| Bonjour,
Bonjour,
| Je suis une super quiche en dev et je cherche à faire un script de
| test pour lancer une copie, je m'explique:
| je dois sauvegarder des données sur des portables qui peuvent
| changer de site dans une meme société. Genre portable de X qui bosse
| sur Paris vas aller sur le site de la société qui est à lorient.
| je veux lancer ma synchro que lorsqu'il est sur le site principal pour
| éviter de bouffer la bande passante entre Lorient et Paris.
| J'ai commancé à bidouiller un script en batch mais je n'abouti a rien
| de concret.
|
| Le site de Paris a une classe d'adresse spécifique et celui de Lorient
| aussi, genre 170.1.10.X et 180.1.100.X
|
| Mon souhait serait de faire ce script en VBS mais mes connaissances
| sont super limitées.
| Auriez vous des bribes de codes qui pourraient m'intéresser ou un
| exemple dont je pourrais m'inspirer?
|
| Merci d'avance.
|
| Eric
L'idée consiste à extraire les octets de l'adresse IP du poste puis de
comparer l'identificateur de réseau avec celui du site principal.
L'identificateur de réseau du site principal est contenu dans la
variable d'environnement 'mainSiteNetId'. Le pré requis consiste donc à
définir au préalable la variable d'environnement 'mainSiteNetId' avec
comme valeur 170 pour le site de Paris et 180 pour le site de Lorient.
Si le poste est connecté sur son site principal alors la synchronisation
pourra par exemple être réalisée avec l'outil du Resource Kit Microsoft
robocopy téléchargeable en suivant le lien ci-dessous :
http://www.microsoft.com/downloads/details.aspx?familyid467a69-57ff-4ae7-96ee-b18c4790cffd&displaylang=en
Ci dessous le script batch sync.cmd permettant de déclencher la
synchronisation uniquement si le poste est connecté sur son site
principal (testé avec XP SP1/SP2 FR) :
-- Couper ici : sync.cmd --
@echo off
:: Extraction des octets (j,k,l,m) de l'adresse IP de la
:: première interface réseau configurée
for /f "tokens" %%i in ('ipconfig ^| find /i "Adresse IP"') do (
for /f "delims=. tokens=1-4" %%j in ('echo %%i') do (
echo Adresse IP : %%j %%k %%l %%m
set netId=%%j
goto :_sync
)
)
:: synchronisation des données uniquement si le poste est connecté
:: sur son site principal. L'appartenance au site principal est
:: déterminée à l'aide de la variable d'environnement 'mainSiteNetId'
:_sync
if "%mainSiteNetId%" NEQ "%netId%" goto :eof
:: le poste est connecté sur son site principal
:: la synchronisation peut être lancée
echo synchronisation en cours ...
-- Couper ici : sync.cmd --
Bonne mise en oeuvre :-)
--
Gilles LAURENT
Me contacter : http://cerbermail.com/?zoTY7ZkLcD
Un grand merci, je vais tester ca de suite :)
"Gilles LAURENT" <glsft@free.fr> a écrit dans le message de news:
eimrJ2qwGHA.2400@TK2MSFTNGP06.phx.gbl...
"Eric Galais" <eric.galais@apaveno.com> a écrit dans le message de
news:OaVjEMqwGHA.5024@TK2MSFTNGP04.phx.gbl
| Bonjour,
Bonjour,
| Je suis une super quiche en dev et je cherche à faire un script de
| test pour lancer une copie, je m'explique:
| je dois sauvegarder des données sur des portables qui peuvent
| changer de site dans une meme société. Genre portable de X qui bosse
| sur Paris vas aller sur le site de la société qui est à lorient.
| je veux lancer ma synchro que lorsqu'il est sur le site principal pour
| éviter de bouffer la bande passante entre Lorient et Paris.
| J'ai commancé à bidouiller un script en batch mais je n'abouti a rien
| de concret.
|
| Le site de Paris a une classe d'adresse spécifique et celui de Lorient
| aussi, genre 170.1.10.X et 180.1.100.X
|
| Mon souhait serait de faire ce script en VBS mais mes connaissances
| sont super limitées.
| Auriez vous des bribes de codes qui pourraient m'intéresser ou un
| exemple dont je pourrais m'inspirer?
|
| Merci d'avance.
|
| Eric
L'idée consiste à extraire les octets de l'adresse IP du poste puis de
comparer l'identificateur de réseau avec celui du site principal.
L'identificateur de réseau du site principal est contenu dans la
variable d'environnement 'mainSiteNetId'. Le pré requis consiste donc à
définir au préalable la variable d'environnement 'mainSiteNetId' avec
comme valeur 170 pour le site de Paris et 180 pour le site de Lorient.
Si le poste est connecté sur son site principal alors la synchronisation
pourra par exemple être réalisée avec l'outil du Resource Kit Microsoft
robocopy téléchargeable en suivant le lien ci-dessous :
http://www.microsoft.com/downloads/details.aspx?familyid467a69-57ff-4ae7-96ee-b18c4790cffd&displaylang=en
Ci dessous le script batch sync.cmd permettant de déclencher la
synchronisation uniquement si le poste est connecté sur son site
principal (testé avec XP SP1/SP2 FR) :
-- Couper ici : sync.cmd --
@echo off
:: Extraction des octets (j,k,l,m) de l'adresse IP de la
:: première interface réseau configurée
for /f "tokens" %%i in ('ipconfig ^| find /i "Adresse IP"') do (
for /f "delims=. tokens=1-4" %%j in ('echo %%i') do (
echo Adresse IP : %%j %%k %%l %%m
set netId=%%j
goto :_sync
)
)
:: synchronisation des données uniquement si le poste est connecté
:: sur son site principal. L'appartenance au site principal est
:: déterminée à l'aide de la variable d'environnement 'mainSiteNetId'
:_sync
if "%mainSiteNetId%" NEQ "%netId%" goto :eof
:: le poste est connecté sur son site principal
:: la synchronisation peut être lancée
echo synchronisation en cours ...
-- Couper ici : sync.cmd --
Bonne mise en oeuvre :-)
--
Gilles LAURENT
Me contacter : http://cerbermail.com/?zoTY7ZkLcD
Un grand merci, je vais tester ca de suite :)
"Gilles LAURENT" a écrit dans le message de news:"Eric Galais" a écrit dans le message de
news:
| Bonjour,
Bonjour,
| Je suis une super quiche en dev et je cherche à faire un script de
| test pour lancer une copie, je m'explique:
| je dois sauvegarder des données sur des portables qui peuvent
| changer de site dans une meme société. Genre portable de X qui bosse
| sur Paris vas aller sur le site de la société qui est à lorient.
| je veux lancer ma synchro que lorsqu'il est sur le site principal pour
| éviter de bouffer la bande passante entre Lorient et Paris.
| J'ai commancé à bidouiller un script en batch mais je n'abouti a rien
| de concret.
|
| Le site de Paris a une classe d'adresse spécifique et celui de Lorient
| aussi, genre 170.1.10.X et 180.1.100.X
|
| Mon souhait serait de faire ce script en VBS mais mes connaissances
| sont super limitées.
| Auriez vous des bribes de codes qui pourraient m'intéresser ou un
| exemple dont je pourrais m'inspirer?
|
| Merci d'avance.
|
| Eric
L'idée consiste à extraire les octets de l'adresse IP du poste puis de
comparer l'identificateur de réseau avec celui du site principal.
L'identificateur de réseau du site principal est contenu dans la
variable d'environnement 'mainSiteNetId'. Le pré requis consiste donc à
définir au préalable la variable d'environnement 'mainSiteNetId' avec
comme valeur 170 pour le site de Paris et 180 pour le site de Lorient.
Si le poste est connecté sur son site principal alors la synchronisation
pourra par exemple être réalisée avec l'outil du Resource Kit Microsoft
robocopy téléchargeable en suivant le lien ci-dessous :
http://www.microsoft.com/downloads/details.aspx?familyid467a69-57ff-4ae7-96ee-b18c4790cffd&displaylang=en
Ci dessous le script batch sync.cmd permettant de déclencher la
synchronisation uniquement si le poste est connecté sur son site
principal (testé avec XP SP1/SP2 FR) :
-- Couper ici : sync.cmd --
@echo off
:: Extraction des octets (j,k,l,m) de l'adresse IP de la
:: première interface réseau configurée
for /f "tokens" %%i in ('ipconfig ^| find /i "Adresse IP"') do (
for /f "delims=. tokens=1-4" %%j in ('echo %%i') do (
echo Adresse IP : %%j %%k %%l %%m
set netId=%%j
goto :_sync
)
)
:: synchronisation des données uniquement si le poste est connecté
:: sur son site principal. L'appartenance au site principal est
:: déterminée à l'aide de la variable d'environnement 'mainSiteNetId'
:_sync
if "%mainSiteNetId%" NEQ "%netId%" goto :eof
:: le poste est connecté sur son site principal
:: la synchronisation peut être lancée
echo synchronisation en cours ...
-- Couper ici : sync.cmd --
Bonne mise en oeuvre :-)
--
Gilles LAURENT
Me contacter : http://cerbermail.com/?zoTY7ZkLcD
"Eric Galais" a écrit dans le message de
news:
| C'est exactement la démarche que je recherchais à une chose près; je
| lance le batch sur le serveur donc pas un ipconfig mais un ping pour
| le test. Il faut donc que je revois presque entièrement le batch
| parce que les critères de récupération sont plus bon avec un Ping.
|
| En tout cas je ne navigue plus dans le noir, merci :)
Bonjour,
Ci dessous le script batch sync.cmd permettant de déclencher la
synchronisation uniquement si le poste est connecté sur son site
principal (testé avec XP SP1/SP2 FR). Cette fois-ci, le script s'exécute
coté serveur :
-- Couper ici : sync.cmd --
@echo off
:: Initialisation
set netId >
:: Extraction des octets (j,k,l,m) de l'adresse IP du poste client
:: L'adresse IP est retournée via un Ping en utilisant le nom de hôte
:: spécifié comme premier argument
for /f "tokens=3" %%i in ('ping /n 1 %1 ^| find /i "ponse de"') do (
for /f "delims=.: tokens=1-4" %%j in ('echo %%i') do (
echo Adresse IP : %%j %%k %%l %%m
set netId=%%j
)
)
:: synchronisation des données uniquement si le poste est connecté
:: sur son site principal. L'appartenance au site principal est
:: déterminée à l'aide de l'identificateur de réseau spécifié comme
:: second argument
:_sync
if "%2" NEQ "%netId%" goto :eof
:: le poste est connecté sur son site principal
:: la synchronisation peut être lancée
echo synchronisation en cours ...
-- Couper ici : sync.cmd --
Ce script supporte deux arguments. Le premier est la nom de hôte
(netbios ou DNS) du poste client et le deuxième est l'identificateur de
réseau du site principal. Par exemple, pour déclencher la
synchronisation des données du poste PC001 si et seulement si celui-ci
se situe sur le site de Paris :
>sync.cmd PC001 170
--
Gilles LAURENT
Me contacter : http://cerbermail.com/?zoTY7ZkLcD
"Eric Galais" <eric.galais@apaveno.com> a écrit dans le message de
news:ePXFN9OxGHA.324@TK2MSFTNGP06.phx.gbl
| C'est exactement la démarche que je recherchais à une chose près; je
| lance le batch sur le serveur donc pas un ipconfig mais un ping pour
| le test. Il faut donc que je revois presque entièrement le batch
| parce que les critères de récupération sont plus bon avec un Ping.
|
| En tout cas je ne navigue plus dans le noir, merci :)
Bonjour,
Ci dessous le script batch sync.cmd permettant de déclencher la
synchronisation uniquement si le poste est connecté sur son site
principal (testé avec XP SP1/SP2 FR). Cette fois-ci, le script s'exécute
coté serveur :
-- Couper ici : sync.cmd --
@echo off
:: Initialisation
set netId >
:: Extraction des octets (j,k,l,m) de l'adresse IP du poste client
:: L'adresse IP est retournée via un Ping en utilisant le nom de hôte
:: spécifié comme premier argument
for /f "tokens=3" %%i in ('ping /n 1 %1 ^| find /i "ponse de"') do (
for /f "delims=.: tokens=1-4" %%j in ('echo %%i') do (
echo Adresse IP : %%j %%k %%l %%m
set netId=%%j
)
)
:: synchronisation des données uniquement si le poste est connecté
:: sur son site principal. L'appartenance au site principal est
:: déterminée à l'aide de l'identificateur de réseau spécifié comme
:: second argument
:_sync
if "%2" NEQ "%netId%" goto :eof
:: le poste est connecté sur son site principal
:: la synchronisation peut être lancée
echo synchronisation en cours ...
-- Couper ici : sync.cmd --
Ce script supporte deux arguments. Le premier est la nom de hôte
(netbios ou DNS) du poste client et le deuxième est l'identificateur de
réseau du site principal. Par exemple, pour déclencher la
synchronisation des données du poste PC001 si et seulement si celui-ci
se situe sur le site de Paris :
>sync.cmd PC001 170
--
Gilles LAURENT
Me contacter : http://cerbermail.com/?zoTY7ZkLcD
"Eric Galais" a écrit dans le message de
news:
| C'est exactement la démarche que je recherchais à une chose près; je
| lance le batch sur le serveur donc pas un ipconfig mais un ping pour
| le test. Il faut donc que je revois presque entièrement le batch
| parce que les critères de récupération sont plus bon avec un Ping.
|
| En tout cas je ne navigue plus dans le noir, merci :)
Bonjour,
Ci dessous le script batch sync.cmd permettant de déclencher la
synchronisation uniquement si le poste est connecté sur son site
principal (testé avec XP SP1/SP2 FR). Cette fois-ci, le script s'exécute
coté serveur :
-- Couper ici : sync.cmd --
@echo off
:: Initialisation
set netId >
:: Extraction des octets (j,k,l,m) de l'adresse IP du poste client
:: L'adresse IP est retournée via un Ping en utilisant le nom de hôte
:: spécifié comme premier argument
for /f "tokens=3" %%i in ('ping /n 1 %1 ^| find /i "ponse de"') do (
for /f "delims=.: tokens=1-4" %%j in ('echo %%i') do (
echo Adresse IP : %%j %%k %%l %%m
set netId=%%j
)
)
:: synchronisation des données uniquement si le poste est connecté
:: sur son site principal. L'appartenance au site principal est
:: déterminée à l'aide de l'identificateur de réseau spécifié comme
:: second argument
:_sync
if "%2" NEQ "%netId%" goto :eof
:: le poste est connecté sur son site principal
:: la synchronisation peut être lancée
echo synchronisation en cours ...
-- Couper ici : sync.cmd --
Ce script supporte deux arguments. Le premier est la nom de hôte
(netbios ou DNS) du poste client et le deuxième est l'identificateur de
réseau du site principal. Par exemple, pour déclencher la
synchronisation des données du poste PC001 si et seulement si celui-ci
se situe sur le site de Paris :
>sync.cmd PC001 170
--
Gilles LAURENT
Me contacter : http://cerbermail.com/?zoTY7ZkLcD
"Eric Galais" a écrit dans le message de
news:
| C'est exactement la démarche que je recherchais à une chose près; je
| lance le batch sur le serveur donc pas un ipconfig mais un ping pour
| le test. Il faut donc que je revois presque entièrement le batch
| parce que les critères de récupération sont plus bon avec un Ping.
|
| En tout cas je ne navigue plus dans le noir, merci :)
Bonjour,
Ci dessous le script batch sync.cmd permettant de déclencher la
synchronisation uniquement si le poste est connecté sur son site
principal (testé avec XP SP1/SP2 FR). Cette fois-ci, le script s'exécute
coté serveur :
-- Couper ici : sync.cmd --
@echo off
:: Initialisation
set netId >
:: Extraction des octets (j,k,l,m) de l'adresse IP du poste client
:: L'adresse IP est retournée via un Ping en utilisant le nom de hôte
:: spécifié comme premier argument
for /f "tokens=3" %%i in ('ping /n 1 %1 ^| find /i "ponse de"') do (
for /f "delims=.: tokens=1-4" %%j in ('echo %%i') do (
echo Adresse IP : %%j %%k %%l %%m
set netId=%%j
)
)
:: synchronisation des données uniquement si le poste est connecté
:: sur son site principal. L'appartenance au site principal est
:: déterminée à l'aide de l'identificateur de réseau spécifié comme
:: second argument
:_sync
if "%2" NEQ "%netId%" goto :eof
:: le poste est connecté sur son site principal
:: la synchronisation peut être lancée
echo synchronisation en cours ...
-- Couper ici : sync.cmd --
Ce script supporte deux arguments. Le premier est la nom de hôte
(netbios ou DNS) du poste client et le deuxième est l'identificateur de
réseau du site principal. Par exemple, pour déclencher la
synchronisation des données du poste PC001 si et seulement si celui-ci
se situe sur le site de Paris :
>sync.cmd PC001 170
--
Gilles LAURENT
Me contacter : http://cerbermail.com/?zoTY7ZkLcD
"Eric Galais" <eric.galais@apaveno.com> a écrit dans le message de
news:ePXFN9OxGHA.324@TK2MSFTNGP06.phx.gbl
| C'est exactement la démarche que je recherchais à une chose près; je
| lance le batch sur le serveur donc pas un ipconfig mais un ping pour
| le test. Il faut donc que je revois presque entièrement le batch
| parce que les critères de récupération sont plus bon avec un Ping.
|
| En tout cas je ne navigue plus dans le noir, merci :)
Bonjour,
Ci dessous le script batch sync.cmd permettant de déclencher la
synchronisation uniquement si le poste est connecté sur son site
principal (testé avec XP SP1/SP2 FR). Cette fois-ci, le script s'exécute
coté serveur :
-- Couper ici : sync.cmd --
@echo off
:: Initialisation
set netId >
:: Extraction des octets (j,k,l,m) de l'adresse IP du poste client
:: L'adresse IP est retournée via un Ping en utilisant le nom de hôte
:: spécifié comme premier argument
for /f "tokens=3" %%i in ('ping /n 1 %1 ^| find /i "ponse de"') do (
for /f "delims=.: tokens=1-4" %%j in ('echo %%i') do (
echo Adresse IP : %%j %%k %%l %%m
set netId=%%j
)
)
:: synchronisation des données uniquement si le poste est connecté
:: sur son site principal. L'appartenance au site principal est
:: déterminée à l'aide de l'identificateur de réseau spécifié comme
:: second argument
:_sync
if "%2" NEQ "%netId%" goto :eof
:: le poste est connecté sur son site principal
:: la synchronisation peut être lancée
echo synchronisation en cours ...
-- Couper ici : sync.cmd --
Ce script supporte deux arguments. Le premier est la nom de hôte
(netbios ou DNS) du poste client et le deuxième est l'identificateur de
réseau du site principal. Par exemple, pour déclencher la
synchronisation des données du poste PC001 si et seulement si celui-ci
se situe sur le site de Paris :
>sync.cmd PC001 170
--
Gilles LAURENT
Me contacter : http://cerbermail.com/?zoTY7ZkLcD
"Eric Galais" a écrit dans le message de
news:
| C'est exactement la démarche que je recherchais à une chose près; je
| lance le batch sur le serveur donc pas un ipconfig mais un ping pour
| le test. Il faut donc que je revois presque entièrement le batch
| parce que les critères de récupération sont plus bon avec un Ping.
|
| En tout cas je ne navigue plus dans le noir, merci :)
Bonjour,
Ci dessous le script batch sync.cmd permettant de déclencher la
synchronisation uniquement si le poste est connecté sur son site
principal (testé avec XP SP1/SP2 FR). Cette fois-ci, le script s'exécute
coté serveur :
-- Couper ici : sync.cmd --
@echo off
:: Initialisation
set netId >
:: Extraction des octets (j,k,l,m) de l'adresse IP du poste client
:: L'adresse IP est retournée via un Ping en utilisant le nom de hôte
:: spécifié comme premier argument
for /f "tokens=3" %%i in ('ping /n 1 %1 ^| find /i "ponse de"') do (
for /f "delims=.: tokens=1-4" %%j in ('echo %%i') do (
echo Adresse IP : %%j %%k %%l %%m
set netId=%%j
)
)
:: synchronisation des données uniquement si le poste est connecté
:: sur son site principal. L'appartenance au site principal est
:: déterminée à l'aide de l'identificateur de réseau spécifié comme
:: second argument
:_sync
if "%2" NEQ "%netId%" goto :eof
:: le poste est connecté sur son site principal
:: la synchronisation peut être lancée
echo synchronisation en cours ...
-- Couper ici : sync.cmd --
Ce script supporte deux arguments. Le premier est la nom de hôte
(netbios ou DNS) du poste client et le deuxième est l'identificateur de
réseau du site principal. Par exemple, pour déclencher la
synchronisation des données du poste PC001 si et seulement si celui-ci
se situe sur le site de Paris :
>sync.cmd PC001 170
--
Gilles LAURENT
Me contacter : http://cerbermail.com/?zoTY7ZkLcD
"Eric Galais" a écrit dans le message de
news:
[...]
| Si ma liste de machine est dans un fichier texte?
|
| En fait sur mon serveur je vais lancer une tache planifiée qui va
| lancer la synchro sur les postes présents dans le fichier texte. Le
| batch teste si la machine est sur le site et lance (ou non) la
| synchro puis passe au pc suivant dans la liste.
|
| Merci d'avance.
|
| Eric
Bonsoir,
Soit le fichier de configuration "clients.txt" au format suivant :
hôte identificateur_de_réseau_principal commentaire_facultatif
Avec comme séparateurs de champs des espaces, des tabulations ou une
virgule.
Par exemple :
PC001 170 (Paris)
PC002 180 (Lorient)
PC003 170 (Paris)
Le fait de disposer de l'identificateur de réseau principal dans le
fichier de configuration permet de déposer le script et le fichier de
configuration sur plusieurs sites (Paris et Lorient) sans nécessiter de
paramétrage spécifique lié au site. L'ensemble reste générique et simple
à administrer. Le poste de Lorient ne se synchronisera qu'avec le
serveur de Lorient et inversement. Il faudra bien sûr que la commande de
synchronisation ne fasse aucune référence à un serveur d'un site
quelconque.
Le script batch (testé avec XP SP1/SP2 FR) :
-- Couper ici : sync.cmd --
@echo off
:: Enumération des noms de hôte présents dans le fichier de
:: configuration clients.txt
for /f "tokens=1,2" %%i in (clients.txt) do call :_ping %%i %%j
:: fin de traitement
goto :eof
:: Procédure de synchronisation
:: Le nom de hôte et l'identificateur de réseau principal sont
:: transmis comme arguments
:_ping
echo.
echo Searching host [%1] on network [%2] ...
:: Initialisation de l'identificateur de réseau
set netId >
:: Extraction des octets (j,k,l,m) de l'adresse IP du poste client
:: L'adresse IP est retournée via un Ping en utilisant le nom de hôte
:: spécifié dans le fichier de configuration
for /f "tokens=3" %%i in ('ping /n 1 %1 ^| find /i "ponse de"') do (
for /f "delims=.: tokens=1-4" %%j in ('echo %%i') do (
echo - host %1 [ %%j.%%k.%%l.%%m] detected
set netId=%%j
)
)
:: Vérification de la détection du hôte
if "" == "%netId%" echo - host %1 is offline & goto :eof
:: Synchronisation des données uniquement si le poste est connecté
:: sur son site principal. L'appartenance au site principal est
:: déterminée à l'aide de l'identificateur de réseau spécifié dans le
:: fichier de configuration
if "%2" neq "%netId%" echo - not main network & goto :eof
:: Le poste est connecté sur son site principal
:: La synchronisation peut être lancée
echo - backup in progress ...
echo - started on %time%
:: insérer ici la commande de synchro (robocopy, ...)
echo - finished at %time%
-- Couper ici : sync.cmd --
Pour l'éxécuter :
>sync.cmd
Ou alors avec traces dans un fichier log :
>sync.cmd >> c:logsync.log
Note: Dans cette implémentation, le fichier de configuration
"clients.txt" doit se situer dans le même dossier que le script
"sync.cmd". Il faudra faire attention à cela lors de la planification de
la tâche en spécifiant correctement le répertoire de démarrage (i.e
"Démarrer dans").
Personnellement, je serai resté sur la première solution. A mon sens,
c'est le poste de travail qui doit être l'initiateur de la
synchronisation et non le serveur. D'une part, plusieurs postes clients
peuvent synchroniser leurs données en parallèle (ce qui n'est pas le cas
dans votre implémentation séquentielle) et d'autre part, l'utilisateur
(si présent) peut être informé qu'une synchronisation est en cours et
peut éventuellement suivre la progression du traitement ou l'interrompre
et la reporter s'il le souhaite. Bien entendu, je ne connais pas vos
contraintes ...
--
Gilles LAURENT
Me contacter : http://cerbermail.com/?zoTY7ZkLcD
"Eric Galais" <eric.galais@apaveno.com> a écrit dans le message de
news:ugODINTxGHA.4460@TK2MSFTNGP04.phx.gbl
[...]
| Si ma liste de machine est dans un fichier texte?
|
| En fait sur mon serveur je vais lancer une tache planifiée qui va
| lancer la synchro sur les postes présents dans le fichier texte. Le
| batch teste si la machine est sur le site et lance (ou non) la
| synchro puis passe au pc suivant dans la liste.
|
| Merci d'avance.
|
| Eric
Bonsoir,
Soit le fichier de configuration "clients.txt" au format suivant :
hôte identificateur_de_réseau_principal commentaire_facultatif
Avec comme séparateurs de champs des espaces, des tabulations ou une
virgule.
Par exemple :
PC001 170 (Paris)
PC002 180 (Lorient)
PC003 170 (Paris)
Le fait de disposer de l'identificateur de réseau principal dans le
fichier de configuration permet de déposer le script et le fichier de
configuration sur plusieurs sites (Paris et Lorient) sans nécessiter de
paramétrage spécifique lié au site. L'ensemble reste générique et simple
à administrer. Le poste de Lorient ne se synchronisera qu'avec le
serveur de Lorient et inversement. Il faudra bien sûr que la commande de
synchronisation ne fasse aucune référence à un serveur d'un site
quelconque.
Le script batch (testé avec XP SP1/SP2 FR) :
-- Couper ici : sync.cmd --
@echo off
:: Enumération des noms de hôte présents dans le fichier de
:: configuration clients.txt
for /f "tokens=1,2" %%i in (clients.txt) do call :_ping %%i %%j
:: fin de traitement
goto :eof
:: Procédure de synchronisation
:: Le nom de hôte et l'identificateur de réseau principal sont
:: transmis comme arguments
:_ping
echo.
echo Searching host [%1] on network [%2] ...
:: Initialisation de l'identificateur de réseau
set netId >
:: Extraction des octets (j,k,l,m) de l'adresse IP du poste client
:: L'adresse IP est retournée via un Ping en utilisant le nom de hôte
:: spécifié dans le fichier de configuration
for /f "tokens=3" %%i in ('ping /n 1 %1 ^| find /i "ponse de"') do (
for /f "delims=.: tokens=1-4" %%j in ('echo %%i') do (
echo - host %1 [ %%j.%%k.%%l.%%m] detected
set netId=%%j
)
)
:: Vérification de la détection du hôte
if "" == "%netId%" echo - host %1 is offline & goto :eof
:: Synchronisation des données uniquement si le poste est connecté
:: sur son site principal. L'appartenance au site principal est
:: déterminée à l'aide de l'identificateur de réseau spécifié dans le
:: fichier de configuration
if "%2" neq "%netId%" echo - not main network & goto :eof
:: Le poste est connecté sur son site principal
:: La synchronisation peut être lancée
echo - backup in progress ...
echo - started on %time%
:: insérer ici la commande de synchro (robocopy, ...)
echo - finished at %time%
-- Couper ici : sync.cmd --
Pour l'éxécuter :
>sync.cmd
Ou alors avec traces dans un fichier log :
>sync.cmd >> c:logsync.log
Note: Dans cette implémentation, le fichier de configuration
"clients.txt" doit se situer dans le même dossier que le script
"sync.cmd". Il faudra faire attention à cela lors de la planification de
la tâche en spécifiant correctement le répertoire de démarrage (i.e
"Démarrer dans").
Personnellement, je serai resté sur la première solution. A mon sens,
c'est le poste de travail qui doit être l'initiateur de la
synchronisation et non le serveur. D'une part, plusieurs postes clients
peuvent synchroniser leurs données en parallèle (ce qui n'est pas le cas
dans votre implémentation séquentielle) et d'autre part, l'utilisateur
(si présent) peut être informé qu'une synchronisation est en cours et
peut éventuellement suivre la progression du traitement ou l'interrompre
et la reporter s'il le souhaite. Bien entendu, je ne connais pas vos
contraintes ...
--
Gilles LAURENT
Me contacter : http://cerbermail.com/?zoTY7ZkLcD
"Eric Galais" a écrit dans le message de
news:
[...]
| Si ma liste de machine est dans un fichier texte?
|
| En fait sur mon serveur je vais lancer une tache planifiée qui va
| lancer la synchro sur les postes présents dans le fichier texte. Le
| batch teste si la machine est sur le site et lance (ou non) la
| synchro puis passe au pc suivant dans la liste.
|
| Merci d'avance.
|
| Eric
Bonsoir,
Soit le fichier de configuration "clients.txt" au format suivant :
hôte identificateur_de_réseau_principal commentaire_facultatif
Avec comme séparateurs de champs des espaces, des tabulations ou une
virgule.
Par exemple :
PC001 170 (Paris)
PC002 180 (Lorient)
PC003 170 (Paris)
Le fait de disposer de l'identificateur de réseau principal dans le
fichier de configuration permet de déposer le script et le fichier de
configuration sur plusieurs sites (Paris et Lorient) sans nécessiter de
paramétrage spécifique lié au site. L'ensemble reste générique et simple
à administrer. Le poste de Lorient ne se synchronisera qu'avec le
serveur de Lorient et inversement. Il faudra bien sûr que la commande de
synchronisation ne fasse aucune référence à un serveur d'un site
quelconque.
Le script batch (testé avec XP SP1/SP2 FR) :
-- Couper ici : sync.cmd --
@echo off
:: Enumération des noms de hôte présents dans le fichier de
:: configuration clients.txt
for /f "tokens=1,2" %%i in (clients.txt) do call :_ping %%i %%j
:: fin de traitement
goto :eof
:: Procédure de synchronisation
:: Le nom de hôte et l'identificateur de réseau principal sont
:: transmis comme arguments
:_ping
echo.
echo Searching host [%1] on network [%2] ...
:: Initialisation de l'identificateur de réseau
set netId >
:: Extraction des octets (j,k,l,m) de l'adresse IP du poste client
:: L'adresse IP est retournée via un Ping en utilisant le nom de hôte
:: spécifié dans le fichier de configuration
for /f "tokens=3" %%i in ('ping /n 1 %1 ^| find /i "ponse de"') do (
for /f "delims=.: tokens=1-4" %%j in ('echo %%i') do (
echo - host %1 [ %%j.%%k.%%l.%%m] detected
set netId=%%j
)
)
:: Vérification de la détection du hôte
if "" == "%netId%" echo - host %1 is offline & goto :eof
:: Synchronisation des données uniquement si le poste est connecté
:: sur son site principal. L'appartenance au site principal est
:: déterminée à l'aide de l'identificateur de réseau spécifié dans le
:: fichier de configuration
if "%2" neq "%netId%" echo - not main network & goto :eof
:: Le poste est connecté sur son site principal
:: La synchronisation peut être lancée
echo - backup in progress ...
echo - started on %time%
:: insérer ici la commande de synchro (robocopy, ...)
echo - finished at %time%
-- Couper ici : sync.cmd --
Pour l'éxécuter :
>sync.cmd
Ou alors avec traces dans un fichier log :
>sync.cmd >> c:logsync.log
Note: Dans cette implémentation, le fichier de configuration
"clients.txt" doit se situer dans le même dossier que le script
"sync.cmd". Il faudra faire attention à cela lors de la planification de
la tâche en spécifiant correctement le répertoire de démarrage (i.e
"Démarrer dans").
Personnellement, je serai resté sur la première solution. A mon sens,
c'est le poste de travail qui doit être l'initiateur de la
synchronisation et non le serveur. D'une part, plusieurs postes clients
peuvent synchroniser leurs données en parallèle (ce qui n'est pas le cas
dans votre implémentation séquentielle) et d'autre part, l'utilisateur
(si présent) peut être informé qu'une synchronisation est en cours et
peut éventuellement suivre la progression du traitement ou l'interrompre
et la reporter s'il le souhaite. Bien entendu, je ne connais pas vos
contraintes ...
--
Gilles LAURENT
Me contacter : http://cerbermail.com/?zoTY7ZkLcD
"Eric Galais" a écrit dans le message de
news:
[...]
| Si ma liste de machine est dans un fichier texte?
|
| En fait sur mon serveur je vais lancer une tache planifiée qui va
| lancer la synchro sur les postes présents dans le fichier texte. Le
| batch teste si la machine est sur le site et lance (ou non) la
| synchro puis passe au pc suivant dans la liste.
|
| Merci d'avance.
|
| Eric
Bonsoir,
Soit le fichier de configuration "clients.txt" au format suivant :
hôte identificateur_de_réseau_principal commentaire_facultatif
Avec comme séparateurs de champs des espaces, des tabulations ou une
virgule.
Par exemple :
PC001 170 (Paris)
PC002 180 (Lorient)
PC003 170 (Paris)
Le fait de disposer de l'identificateur de réseau principal dans le
fichier de configuration permet de déposer le script et le fichier de
configuration sur plusieurs sites (Paris et Lorient) sans nécessiter de
paramétrage spécifique lié au site. L'ensemble reste générique et simple
à administrer. Le poste de Lorient ne se synchronisera qu'avec le
serveur de Lorient et inversement. Il faudra bien sûr que la commande de
synchronisation ne fasse aucune référence à un serveur d'un site
quelconque.
Le script batch (testé avec XP SP1/SP2 FR) :
-- Couper ici : sync.cmd --
@echo off
:: Enumération des noms de hôte présents dans le fichier de
:: configuration clients.txt
for /f "tokens=1,2" %%i in (clients.txt) do call :_ping %%i %%j
:: fin de traitement
goto :eof
:: Procédure de synchronisation
:: Le nom de hôte et l'identificateur de réseau principal sont
:: transmis comme arguments
:_ping
echo.
echo Searching host [%1] on network [%2] ...
:: Initialisation de l'identificateur de réseau
set netId >
:: Extraction des octets (j,k,l,m) de l'adresse IP du poste client
:: L'adresse IP est retournée via un Ping en utilisant le nom de hôte
:: spécifié dans le fichier de configuration
for /f "tokens=3" %%i in ('ping /n 1 %1 ^| find /i "ponse de"') do (
for /f "delims=.: tokens=1-4" %%j in ('echo %%i') do (
echo - host %1 [ %%j.%%k.%%l.%%m] detected
set netId=%%j
)
)
:: Vérification de la détection du hôte
if "" == "%netId%" echo - host %1 is offline & goto :eof
:: Synchronisation des données uniquement si le poste est connecté
:: sur son site principal. L'appartenance au site principal est
:: déterminée à l'aide de l'identificateur de réseau spécifié dans le
:: fichier de configuration
if "%2" neq "%netId%" echo - not main network & goto :eof
:: Le poste est connecté sur son site principal
:: La synchronisation peut être lancée
echo - backup in progress ...
echo - started on %time%
:: insérer ici la commande de synchro (robocopy, ...)
echo - finished at %time%
-- Couper ici : sync.cmd --
Pour l'éxécuter :
>sync.cmd
Ou alors avec traces dans un fichier log :
>sync.cmd >> c:logsync.log
Note: Dans cette implémentation, le fichier de configuration
"clients.txt" doit se situer dans le même dossier que le script
"sync.cmd". Il faudra faire attention à cela lors de la planification de
la tâche en spécifiant correctement le répertoire de démarrage (i.e
"Démarrer dans").
Personnellement, je serai resté sur la première solution. A mon sens,
c'est le poste de travail qui doit être l'initiateur de la
synchronisation et non le serveur. D'une part, plusieurs postes clients
peuvent synchroniser leurs données en parallèle (ce qui n'est pas le cas
dans votre implémentation séquentielle) et d'autre part, l'utilisateur
(si présent) peut être informé qu'une synchronisation est en cours et
peut éventuellement suivre la progression du traitement ou l'interrompre
et la reporter s'il le souhaite. Bien entendu, je ne connais pas vos
contraintes ...
--
Gilles LAURENT
Me contacter : http://cerbermail.com/?zoTY7ZkLcD
"Eric Galais" <eric.galais@apaveno.com> a écrit dans le message de
news:ugODINTxGHA.4460@TK2MSFTNGP04.phx.gbl
[...]
| Si ma liste de machine est dans un fichier texte?
|
| En fait sur mon serveur je vais lancer une tache planifiée qui va
| lancer la synchro sur les postes présents dans le fichier texte. Le
| batch teste si la machine est sur le site et lance (ou non) la
| synchro puis passe au pc suivant dans la liste.
|
| Merci d'avance.
|
| Eric
Bonsoir,
Soit le fichier de configuration "clients.txt" au format suivant :
hôte identificateur_de_réseau_principal commentaire_facultatif
Avec comme séparateurs de champs des espaces, des tabulations ou une
virgule.
Par exemple :
PC001 170 (Paris)
PC002 180 (Lorient)
PC003 170 (Paris)
Le fait de disposer de l'identificateur de réseau principal dans le
fichier de configuration permet de déposer le script et le fichier de
configuration sur plusieurs sites (Paris et Lorient) sans nécessiter de
paramétrage spécifique lié au site. L'ensemble reste générique et simple
à administrer. Le poste de Lorient ne se synchronisera qu'avec le
serveur de Lorient et inversement. Il faudra bien sûr que la commande de
synchronisation ne fasse aucune référence à un serveur d'un site
quelconque.
Le script batch (testé avec XP SP1/SP2 FR) :
-- Couper ici : sync.cmd --
@echo off
:: Enumération des noms de hôte présents dans le fichier de
:: configuration clients.txt
for /f "tokens=1,2" %%i in (clients.txt) do call :_ping %%i %%j
:: fin de traitement
goto :eof
:: Procédure de synchronisation
:: Le nom de hôte et l'identificateur de réseau principal sont
:: transmis comme arguments
:_ping
echo.
echo Searching host [%1] on network [%2] ...
:: Initialisation de l'identificateur de réseau
set netId >
:: Extraction des octets (j,k,l,m) de l'adresse IP du poste client
:: L'adresse IP est retournée via un Ping en utilisant le nom de hôte
:: spécifié dans le fichier de configuration
for /f "tokens=3" %%i in ('ping /n 1 %1 ^| find /i "ponse de"') do (
for /f "delims=.: tokens=1-4" %%j in ('echo %%i') do (
echo - host %1 [ %%j.%%k.%%l.%%m] detected
set netId=%%j
)
)
:: Vérification de la détection du hôte
if "" == "%netId%" echo - host %1 is offline & goto :eof
:: Synchronisation des données uniquement si le poste est connecté
:: sur son site principal. L'appartenance au site principal est
:: déterminée à l'aide de l'identificateur de réseau spécifié dans le
:: fichier de configuration
if "%2" neq "%netId%" echo - not main network & goto :eof
:: Le poste est connecté sur son site principal
:: La synchronisation peut être lancée
echo - backup in progress ...
echo - started on %time%
:: insérer ici la commande de synchro (robocopy, ...)
echo - finished at %time%
-- Couper ici : sync.cmd --
Pour l'éxécuter :
>sync.cmd
Ou alors avec traces dans un fichier log :
>sync.cmd >> c:logsync.log
Note: Dans cette implémentation, le fichier de configuration
"clients.txt" doit se situer dans le même dossier que le script
"sync.cmd". Il faudra faire attention à cela lors de la planification de
la tâche en spécifiant correctement le répertoire de démarrage (i.e
"Démarrer dans").
Personnellement, je serai resté sur la première solution. A mon sens,
c'est le poste de travail qui doit être l'initiateur de la
synchronisation et non le serveur. D'une part, plusieurs postes clients
peuvent synchroniser leurs données en parallèle (ce qui n'est pas le cas
dans votre implémentation séquentielle) et d'autre part, l'utilisateur
(si présent) peut être informé qu'une synchronisation est en cours et
peut éventuellement suivre la progression du traitement ou l'interrompre
et la reporter s'il le souhaite. Bien entendu, je ne connais pas vos
contraintes ...
--
Gilles LAURENT
Me contacter : http://cerbermail.com/?zoTY7ZkLcD
"Eric Galais" a écrit dans le message de
news:
[...]
| Si ma liste de machine est dans un fichier texte?
|
| En fait sur mon serveur je vais lancer une tache planifiée qui va
| lancer la synchro sur les postes présents dans le fichier texte. Le
| batch teste si la machine est sur le site et lance (ou non) la
| synchro puis passe au pc suivant dans la liste.
|
| Merci d'avance.
|
| Eric
Bonsoir,
Soit le fichier de configuration "clients.txt" au format suivant :
hôte identificateur_de_réseau_principal commentaire_facultatif
Avec comme séparateurs de champs des espaces, des tabulations ou une
virgule.
Par exemple :
PC001 170 (Paris)
PC002 180 (Lorient)
PC003 170 (Paris)
Le fait de disposer de l'identificateur de réseau principal dans le
fichier de configuration permet de déposer le script et le fichier de
configuration sur plusieurs sites (Paris et Lorient) sans nécessiter de
paramétrage spécifique lié au site. L'ensemble reste générique et simple
à administrer. Le poste de Lorient ne se synchronisera qu'avec le
serveur de Lorient et inversement. Il faudra bien sûr que la commande de
synchronisation ne fasse aucune référence à un serveur d'un site
quelconque.
Le script batch (testé avec XP SP1/SP2 FR) :
-- Couper ici : sync.cmd --
@echo off
:: Enumération des noms de hôte présents dans le fichier de
:: configuration clients.txt
for /f "tokens=1,2" %%i in (clients.txt) do call :_ping %%i %%j
:: fin de traitement
goto :eof
:: Procédure de synchronisation
:: Le nom de hôte et l'identificateur de réseau principal sont
:: transmis comme arguments
:_ping
echo.
echo Searching host [%1] on network [%2] ...
:: Initialisation de l'identificateur de réseau
set netId >
:: Extraction des octets (j,k,l,m) de l'adresse IP du poste client
:: L'adresse IP est retournée via un Ping en utilisant le nom de hôte
:: spécifié dans le fichier de configuration
for /f "tokens=3" %%i in ('ping /n 1 %1 ^| find /i "ponse de"') do (
for /f "delims=.: tokens=1-4" %%j in ('echo %%i') do (
echo - host %1 [ %%j.%%k.%%l.%%m] detected
set netId=%%j
)
)
:: Vérification de la détection du hôte
if "" == "%netId%" echo - host %1 is offline & goto :eof
:: Synchronisation des données uniquement si le poste est connecté
:: sur son site principal. L'appartenance au site principal est
:: déterminée à l'aide de l'identificateur de réseau spécifié dans le
:: fichier de configuration
if "%2" neq "%netId%" echo - not main network & goto :eof
:: Le poste est connecté sur son site principal
:: La synchronisation peut être lancée
echo - backup in progress ...
echo - started on %time%
:: insérer ici la commande de synchro (robocopy, ...)
echo - finished at %time%
-- Couper ici : sync.cmd --
Pour l'éxécuter :
>sync.cmd
Ou alors avec traces dans un fichier log :
>sync.cmd >> c:logsync.log
Note: Dans cette implémentation, le fichier de configuration
"clients.txt" doit se situer dans le même dossier que le script
"sync.cmd". Il faudra faire attention à cela lors de la planification de
la tâche en spécifiant correctement le répertoire de démarrage (i.e
"Démarrer dans").
Personnellement, je serai resté sur la première solution. A mon sens,
c'est le poste de travail qui doit être l'initiateur de la
synchronisation et non le serveur. D'une part, plusieurs postes clients
peuvent synchroniser leurs données en parallèle (ce qui n'est pas le cas
dans votre implémentation séquentielle) et d'autre part, l'utilisateur
(si présent) peut être informé qu'une synchronisation est en cours et
peut éventuellement suivre la progression du traitement ou l'interrompre
et la reporter s'il le souhaite. Bien entendu, je ne connais pas vos
contraintes ...
--
Gilles LAURENT
Me contacter : http://cerbermail.com/?zoTY7ZkLcD