Question
Probleme code retour
- stagepowershell
- Auteur du sujet
- Hors Ligne
- Membre junior
-
Réduire
Plus d'informations
- Messages : 21
- Remerciements reçus 0
il y a 17 ans 7 mois #2648
par stagepowershell
Probleme code retour a été créé par stagepowershell
wouaw a peine arrivé que j'envahi le forum avec mes questions.(blague mise a part)
Mon petit soucis concerne ntbackup ^^
Je fait un script qui lance ntbackup, puis renvoie un code retour si le code est mauvais un je dis probleme et je sort du script.Sinon je continue et j'analyse le log.
Seul gros soucis a l'horizon c'est que le code retour est analysé avant meme que NTBACKUP ait fini la sauvegarde. Du coup errorlevel en erreur du coup fermeture du script et pendant ce temps NTBACKUP tourne toujours^^.
Vous me direz essaye un sleep. Mais rien y fait Si je met un sleep le ntbackup decroche et tourne dans le vide^^
Auriez vous une idée ou même la solution a mes problèmes?
voici le code:
[code:1]
$VLST_PATH2 = \"c:\Documents and Settings\Admsup\Local Settings\Application Data\Microsoft\Windows NT\NTBackup\data\\"
$VLST_ARGUS = $Args
$BACKUPCOMPLET = \"sauvegarde terminé\"
$ERROR = \"Erreur\"
NTBACKUP.EXE backup systemstate c: d: /J \"Sauvegarde Journaliere\" /v:no /R:no /L:«»s /M normal /RS:yes /HC:on /P \"LTO Ultrium\" /UM
#Verification du statut
$VLDR_STATU = $lastexitcode
echo $VLDR_STATU |out-file \"$VLST_PATH1\MF501-ex16\" -Append
if ($VLDR_STATU -ne '0'){\"traitement interrompu erreur sur ntbackup\" |out-file \"$VLST_PATH1\MF501-ex16\" -Append
break
}else{ \"ntbackup terminee\" |out-file \"$VLST_PATH1\MF501-ex16\" -Append
}
#Recherche du fichier backup dans le dossier data
$VLOB_FRECH = Get-ChildItem -Path \"$VLST_PATH2\" | where {$_.name -like \"backup*.*\"}
if($VLOB_FRECH -eq $null){echo \"Fichier backup non trouvé\" |out-file \"$VLST_PATH1\MF501-ex16\" -Append
break
}else{ echo \"Fichier du jour $VLOB_FRECH\" |out-file \"$VLST_PATH1\jrnexbt16.txt\" }
# Compte le nombre de ligne d'erreur dans le fichier log
$VLOB_BACKUP = (Get-Content $VLOB_FRECH | Select-String -SimpleMatch \"$BACKUPCOMPLET\" | Measure-Object -Line).Lines
$VLOB_RECHER = (Get-Content $VLOB_FRECH | Select-String -SimpleMatch \"$ERROR\" | Measure-Object -Line).Lines
echo \"nombre de ligne backup complet $VLOB_BACKUP\" |out-file \"$VLST_PATH1\MF501-ex16\" -Append
if ($VLOB_RECHER -gt 0) { echo \"Erreur dans l'execution du ntbackup.\"|out-file \"$VLST_PATH1\MF501-ex16\" -Append
break
}else{\"ntbackup terminee avec succes\" |out-file \"$VLST_PATH1\MF501-ex16\" -Append
}
[/code:1]
Merci d'avance pour vos réponses(si il y en a^^)
Mon petit soucis concerne ntbackup ^^
Je fait un script qui lance ntbackup, puis renvoie un code retour si le code est mauvais un je dis probleme et je sort du script.Sinon je continue et j'analyse le log.
Seul gros soucis a l'horizon c'est que le code retour est analysé avant meme que NTBACKUP ait fini la sauvegarde. Du coup errorlevel en erreur du coup fermeture du script et pendant ce temps NTBACKUP tourne toujours^^.
Vous me direz essaye un sleep. Mais rien y fait Si je met un sleep le ntbackup decroche et tourne dans le vide^^
Auriez vous une idée ou même la solution a mes problèmes?
voici le code:
[code:1]
$VLST_PATH2 = \"c:\Documents and Settings\Admsup\Local Settings\Application Data\Microsoft\Windows NT\NTBackup\data\\"
$VLST_ARGUS = $Args
$BACKUPCOMPLET = \"sauvegarde terminé\"
$ERROR = \"Erreur\"
NTBACKUP.EXE backup systemstate c: d: /J \"Sauvegarde Journaliere\" /v:no /R:no /L:«»s /M normal /RS:yes /HC:on /P \"LTO Ultrium\" /UM
#Verification du statut
$VLDR_STATU = $lastexitcode
echo $VLDR_STATU |out-file \"$VLST_PATH1\MF501-ex16\" -Append
if ($VLDR_STATU -ne '0'){\"traitement interrompu erreur sur ntbackup\" |out-file \"$VLST_PATH1\MF501-ex16\" -Append
break
}else{ \"ntbackup terminee\" |out-file \"$VLST_PATH1\MF501-ex16\" -Append
}
#Recherche du fichier backup dans le dossier data
$VLOB_FRECH = Get-ChildItem -Path \"$VLST_PATH2\" | where {$_.name -like \"backup*.*\"}
if($VLOB_FRECH -eq $null){echo \"Fichier backup non trouvé\" |out-file \"$VLST_PATH1\MF501-ex16\" -Append
break
}else{ echo \"Fichier du jour $VLOB_FRECH\" |out-file \"$VLST_PATH1\jrnexbt16.txt\" }
# Compte le nombre de ligne d'erreur dans le fichier log
$VLOB_BACKUP = (Get-Content $VLOB_FRECH | Select-String -SimpleMatch \"$BACKUPCOMPLET\" | Measure-Object -Line).Lines
$VLOB_RECHER = (Get-Content $VLOB_FRECH | Select-String -SimpleMatch \"$ERROR\" | Measure-Object -Line).Lines
echo \"nombre de ligne backup complet $VLOB_BACKUP\" |out-file \"$VLST_PATH1\MF501-ex16\" -Append
if ($VLOB_RECHER -gt 0) { echo \"Erreur dans l'execution du ntbackup.\"|out-file \"$VLST_PATH1\MF501-ex16\" -Append
break
}else{\"ntbackup terminee avec succes\" |out-file \"$VLST_PATH1\MF501-ex16\" -Append
}
[/code:1]
Merci d'avance pour vos réponses(si il y en a^^)
Connexion ou Créer un compte pour participer à la conversation.
- daniel soares
- Hors Ligne
- Membre premium
-
Réduire
Plus d'informations
- Messages : 133
- Remerciements reçus 0
il y a 17 ans 7 mois #2659
par daniel soares
Réponse de daniel soares sur le sujet Re:Probleme code retour
je n'ai pas testé ce que je vais te proposer mais je pense que ca peux fonctionner
on utilise system.diagnostics.process
qui te permet de creer un process et donc qui te permet aussi de recuperer pleins de proprietes interessantes sur ce process
[code:1]
$psi = new-object system.diagnostics.processStartInfo
$psi.fileName = \"c:\windows\system32\ntbackup.exe\"
$psi.arguments= \"backup systemstate c: d: /J \"Sauvegarde Journaliere\" /v:no /R:no\"
$psi.loadUserProfile = $false
$psi.useShellExecute = $false
$proc = [system.diagnostics.process]:: start($psi)
[/code:1]
en tapant ensuite $proc | get-member tu trouvera peut etre une propriete qui te donnera l'etat de ton process
on utilise system.diagnostics.process
qui te permet de creer un process et donc qui te permet aussi de recuperer pleins de proprietes interessantes sur ce process
[code:1]
$psi = new-object system.diagnostics.processStartInfo
$psi.fileName = \"c:\windows\system32\ntbackup.exe\"
$psi.arguments= \"backup systemstate c: d: /J \"Sauvegarde Journaliere\" /v:no /R:no\"
$psi.loadUserProfile = $false
$psi.useShellExecute = $false
$proc = [system.diagnostics.process]:: start($psi)
[/code:1]
en tapant ensuite $proc | get-member tu trouvera peut etre une propriete qui te donnera l'etat de ton process
Connexion ou Créer un compte pour participer à la conversation.
- stagepowershell
- Auteur du sujet
- Hors Ligne
- Membre junior
-
Réduire
Plus d'informations
- Messages : 21
- Remerciements reçus 0
il y a 17 ans 7 mois #2666
par stagepowershell
Réponse de stagepowershell sur le sujet Re:Probleme code retour
Encore toi a mon secours 
Merci je test de suite.
Walou j'ai testé mais test non concluant je n'ai pas réussi a obtenir la valeur recherché.
J'ai donc décidé de passer par un autre procéder. Deux scripts différés.
Le premier scripts execute mon NTBACKUP
Le second verifiera le contenu avec le nombre d'erreur etc...
Merci tout de même pour ton aide.<br><br>Message édité par: sagara, à: 13/08/08 13:03
Merci je test de suite.
Walou j'ai testé mais test non concluant je n'ai pas réussi a obtenir la valeur recherché.
J'ai donc décidé de passer par un autre procéder. Deux scripts différés.
Le premier scripts execute mon NTBACKUP
Le second verifiera le contenu avec le nombre d'erreur etc...
Merci tout de même pour ton aide.<br><br>Message édité par: sagara, à: 13/08/08 13:03
Connexion ou Créer un compte pour participer à la conversation.
Temps de génération de la page : 0.074 secondes
- Vous êtes ici :
-
Accueil
-
forum
-
PowerShell
-
Entraide pour les débutants
- Probleme code retour