none
Sauvegarde Batterie / Sites / Collection Sharepoint RRS feed

  • 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
    mardi 8 janvier 2013 13:43

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
    mardi 8 janvier 2013 16:43

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

    mardi 8 janvier 2013 15:29
    Modérateur
  • 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
    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
    mardi 8 janvier 2013 16:43
  • 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
    mercredi 9 janvier 2013 09:42
  • 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

    jeudi 10 janvier 2013 07:52
  • Bonjour Gokan,

    Non pas nécessairement, je souhaite sauvegarder selon les différentes possibilités pour pouvoir le cas échéant rétablir au mieux.

    Merci

    • Modifié Tony-21 dimanche 13 janvier 2013 15:57
    jeudi 10 janvier 2013 09:52
  • 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

    lundi 14 janvier 2013 10:43
  • Bonjour Gokan,

    Je ne sais pas utiliser le script pour l'instant même s'il est bien fait...

    Les solutions payantes ne sont pas envisagées.

    Mercie


    • Modifié Tony-21 lundi 14 janvier 2013 15:49
    lundi 14 janvier 2013 15:49