Meilleur auteur de réponses
Sauvegarde Batterie / Sites / Collection Sharepoint

Question
-
Bonjour,
Pouvez-vous m'indiquer je vous prie comment je dois modifier mes scripts en PowerShell afin de créer un fichier de sauvegarde nommé avec la date du jour ?
- Contenu du Script pour sauvegarder une Batterie :
stsadm.exe -o backup -directory '\\Sharepoint\Batterie' -backupmethod full –overwrite
- Contenu du Script pour sauvegarder un Site :
stsadm.exe -o export -url http://Sharepoint\Sites\Info.bak' -overwrite
- Contenu du Script pour sauvegarder une Collection :
stsadm.exe -o backup -url http://Sharepoint\Collection de sites\Save.bak' -overwrite
Merci
- Modifié Tony-21 mardi 8 janvier 2013 15:49
Réponses
-
Bonjour,
J'ai le même système chez mon client en place. Un backup avec le jj.mm.aaaa.. Je te colle mon script en entier, et tu peux en utiliser comme bon tu le souhaite:
#Add SharePoint assemblies Add-PSSnapin Microsoft.SharePoint.PowerShell #Define Variables $file = "c:\backup\list.txt" $filetemp = "c:\backup\templist.txt" $backupDestination = "c:\backup\Sites\" $oldbackups = "c:\backup\Sites\old\" $d = (Get-date -format 'dd_MM_yyyy_HH_mm_ss').Trim() $logfile = $backupDestination + $d + "backuplog.txt" $matchA = $backupDestination + $d + "matchA.txt" $matchB = $backupDestination + $d + "matchB.txt" #Move old backups cd $backupDestination mv *.* $oldbackups #Prepare content for new backup Get-SPSite| Out-file $file Get-Content $file | select -Skip 3 | set-content "$filetemp" Get-Content $filetemp | where {$_ -ne ""} > $file $list = Get-Content $file #Prepare Logging Write "-------------------------------------" >> $logfile Write "Backup created $d" >> $logfile Write "-------------------------------------" >> $logfile Write "----------------" >> $logFile Write "Existing sites :" >> $logfile Write "----------------" >> $logfile #Creating file to compare after backup foreach($entry in $list) { $URL=$entry.Trim() Write "$URL" >> $logfile Write "$URL" >> $matchA } #Loop over the list and backup and fill logfile Write "-----------------" >> $logFile Write "Backup Progress :" >> $logfile Write "-----------------" >> $logfile foreach($line in $list) { #Modelling Data $line=$line.Trim() $_bckfile = $line.Replace("http://","") $bckfile = $_bckfile.Replace("/","_") write-host $bckfile " Being backed UP ........." #Take the backup .... Backup-SPSite $line -Path $backupdestination$d"_"$bckfile -Force write $line >> $matchB write "$line backed up Successfully ..........." >> $logfile } Write "--------------------------------------------------------" >> $logFile Write "Backup Operations complete..." >> $logfile Write "--------------------------------------------------------" >> $logfile #Checking number of files against number of sites $result = Compare-Object -referenceobject $(Get-Content $matchA) -differenceobject $(Get-Content $matchB) -includeequal Write-host $result #Building more logging Write " " >> $logFile Write "------------------------------------------------------------" >> $logFile Write "--------- BACKUP VERIFICATION ------------------------------" >> $logFile Write "If the sideindicator reports == then backups are successfull" >> $logFile Write "------------------------------------------------------------" >> $logFile Write $result >> $logfile # ----------------- EOF ------------------------
J'espère que cela t'aidera..
G.
My New Technical Blog: WWW.GKNZCFC.NET
SharePoint Community Expert- Marqué comme réponse Florin Ciuca lundi 14 janvier 2013 15:07
Toutes les réponses
-
Bonjour,
Je vous propose d'inclure un appel à la commande WMIC à l'intérieur de votre script en batch afin de garantir le bon format de la date et de l'heure. Exemple:
set X=
for /f "skip=1 delims=" %%x in ('wmic os get localdatetime') do if not defined X set X=%%x
echo.%X%set DATE.YEAR=%X:~0,4%
set DATE.MONTH=%X:~4,2%
set DATE.DAY=%X:~6,2%
set DATE.HOUR=%X:~8,2%
set DATE.MINUTE=%X:~10,2%
set DATE.SECOND=%X:~12,2%
set DATE.FRACTIONS=%X:~15,6%
set DATE.OFFSET=%X:~21,4%Ensuite, vous pouvez réutiliser ces variables pour nommer vos fichiers de backup: %DATE.YEAR%-%DATE.MONTH%-%DATE.DAY%.bak
Marc Lognoul [Infrastructure Expert]
My Site/Mon Site | MyBlog [EN] | Mon Blog [FR] | Twitter | LinkedIn
-
En fait mon besoin est le suivant : je souhaite avoir un fichier nommé avec une date au format jj.mm.aaaa pour la Collection de sites et un dossier nommé avec une date format jj.mm.aaaa pour la sauvegarde des Sites (un par un).
Avec les commandes en place, chaque jour je dois renommer le fichier sauvegardé pour la Collection de sites et créer un dossier pour la sauvegarde des Sites pour que le lendemain ils ne soient pas écrasés.
Merci
- Modifié Tony-21 mardi 8 janvier 2013 16:14
-
Bonjour,
J'ai le même système chez mon client en place. Un backup avec le jj.mm.aaaa.. Je te colle mon script en entier, et tu peux en utiliser comme bon tu le souhaite:
#Add SharePoint assemblies Add-PSSnapin Microsoft.SharePoint.PowerShell #Define Variables $file = "c:\backup\list.txt" $filetemp = "c:\backup\templist.txt" $backupDestination = "c:\backup\Sites\" $oldbackups = "c:\backup\Sites\old\" $d = (Get-date -format 'dd_MM_yyyy_HH_mm_ss').Trim() $logfile = $backupDestination + $d + "backuplog.txt" $matchA = $backupDestination + $d + "matchA.txt" $matchB = $backupDestination + $d + "matchB.txt" #Move old backups cd $backupDestination mv *.* $oldbackups #Prepare content for new backup Get-SPSite| Out-file $file Get-Content $file | select -Skip 3 | set-content "$filetemp" Get-Content $filetemp | where {$_ -ne ""} > $file $list = Get-Content $file #Prepare Logging Write "-------------------------------------" >> $logfile Write "Backup created $d" >> $logfile Write "-------------------------------------" >> $logfile Write "----------------" >> $logFile Write "Existing sites :" >> $logfile Write "----------------" >> $logfile #Creating file to compare after backup foreach($entry in $list) { $URL=$entry.Trim() Write "$URL" >> $logfile Write "$URL" >> $matchA } #Loop over the list and backup and fill logfile Write "-----------------" >> $logFile Write "Backup Progress :" >> $logfile Write "-----------------" >> $logfile foreach($line in $list) { #Modelling Data $line=$line.Trim() $_bckfile = $line.Replace("http://","") $bckfile = $_bckfile.Replace("/","_") write-host $bckfile " Being backed UP ........." #Take the backup .... Backup-SPSite $line -Path $backupdestination$d"_"$bckfile -Force write $line >> $matchB write "$line backed up Successfully ..........." >> $logfile } Write "--------------------------------------------------------" >> $logFile Write "Backup Operations complete..." >> $logfile Write "--------------------------------------------------------" >> $logfile #Checking number of files against number of sites $result = Compare-Object -referenceobject $(Get-Content $matchA) -differenceobject $(Get-Content $matchB) -includeequal Write-host $result #Building more logging Write " " >> $logFile Write "------------------------------------------------------------" >> $logFile Write "--------- BACKUP VERIFICATION ------------------------------" >> $logFile Write "If the sideindicator reports == then backups are successfull" >> $logFile Write "------------------------------------------------------------" >> $logFile Write $result >> $logfile # ----------------- EOF ------------------------
J'espère que cela t'aidera..
G.
My New Technical Blog: WWW.GKNZCFC.NET
SharePoint Community Expert- Marqué comme réponse Florin Ciuca lundi 14 janvier 2013 15:07
-
Bonjour Gokan,
Backup-SPSite il s'agit donc d'une sauvegarde d’une collection de sites ?
Je dois modifier le chemin d'accés dans Define Variables (ok) et l'url de mon site de la ligne ci-dessous ?
$_bckfile = $line.Replace("http://","")
Pour l'instant cela ne fonctionne pas, je n'obtiens pas de sauvegarde. Dans fichier list il n'y a rien et dans 09_01_2013_13_06_45backuplog.txt :
-------------------------------------
Backup created 09_01_2013_13_06_45
-------------------------------------
----------------
Existing sites :
----------------
-----------------
Backup Progress :
-----------------
--------------------------------------------------------
Backup Operations complete...
--------------------------------------------------------
------------------------------------------------------------
--------- BACKUP VERIFICATION ------------------------------
If the sideindicator reports == then backups are successfull
------------------------------------------------------------Je dois pouvoir l'adapter pour créer une sauvegarde d’une base de données individuelle, d’une application web ou de la batterie de serveurs entière avec la commande Backup-SPFarm ?
Je modifie les parties suivantes :
#Prepare content for new backup
Get-SPSite| Out-file $file=> Get-SPFarm | Out-file $file
#Take the backup ....
Backup-SPSite $line -Path $backupdestination$d"_"$bckfile -Force=> Backup-SPFarm -BackupMethod Full $line -Path $backupdestination$d"_"$bckfile -Force
C'est ça ? il y a d'autres lignes à modifier ?
Si tu peux jetter un coup d'oeil STP sur mes autres threads car je n'ai pas terminé.
Merci beaucoup
- Modifié Tony-21 mercredi 9 janvier 2013 12:15
-
Bonjour,
Pourqoui un backup-spfarm? Donc au moindre petit problème vous voulez restaurer toute la ferme?
Merci,
G.
My New Technical Blog: WWW.GKNZCFC.NET
SharePoint Community Expert -
-
Le mieux est d'utiliser mon script pour les collection de sites..
Et d'utiliser Data Protection Manager ( ou autre produit ) pour les sauvegardes de FERME ..
Bien à toi,
G.
My New Technical Blog: WWW.GKNZCFC.NET
SharePoint Community Expert -