• shadow copies con rsync

    From Piviul@21:1/5 to All on Thu Jun 30 17:20:01 2022
    Ciao a tutti, vorrei implementare le shadow copies di microsoft
    utilizzando snapshots fatti con rsync. Ho creato un server sambatest con
    la seguente share:

    [testshare]
       comment = Test share folder
       force group="DOMAINTEST\domain users"
       path = /home/samba/testshare
       write list = "@DOMAINTEST\domain users"
       create mask = 0660
       directory mask = 0770
       vfs objects = shadow_copy2
       shadow:snapdir = /home/samba/testshare/.snapshots
       shadow:sort = desc
       shadow:format = @GMT-%Y.%m.%d-%H.%M.%S
       shadow:localtime = yes

    poi ho eseguito il seguente script:

    #!/bin/bash

    # A script to perform incremental backups using rsync

    set -o errexit
    set -o nounset
    set -o pipefail

    readonly SOURCE_DIR="/home/samba/testshare"
    readonly DEST_MAINPATH="/home/samba/testshare/.snapshots"
    #readonly DEST_FOLDER="$(date '+%Y-%m-%d_%H%M%S')"
    readonly DEST_FOLDER="$(date +@GMT-%Y.%m.%d-%H.%M.%S)"
    readonly BACKUP_PATH="${DEST_MAINPATH}/${DEST_FOLDER}"
    readonly LATEST_LINK="latest"
    readonly BACKUP_LOG="${BACKUP_PATH}.log"

    [ -d "${DEST_MAINPATH}" ] || mkdir -p "${DEST_MAINPATH}"

    if [ -L "${DEST_MAINPATH}/${LATEST_LINK}" ]; then
        rsync -av --delete --stats --human-readable \
          --exclude "${DEST_MAINPATH}" \
          "${SOURCE_DIR}/" \
          --link-dest "${DEST_MAINPATH}/${LATEST_LINK}" \
          "${BACKUP_PATH}" | gzip -c > "${BACKUP_LOG}".gz

        rm "${DEST_MAINPATH}/${LATEST_LINK}"
    else
        rsync -av --delete --stats --human-readable \
          --exclude "${DEST_MAINPATH}" \
          "${SOURCE_DIR}/" \
          "${BACKUP_PATH}" | gzip -c > "${BACKUP_LOG}".gz
    fi

    cd "$DEST_MAINPATH" && ln -s "${DEST_FOLDER}" "${LATEST_LINK}"

    Quindi ho creato e modifiche un file nella share più volte e tra una
    modifica e l'altra ho lanciato lo script sopra. Quando vado a guardare
    da windows sul file modificato le versioni precedenti nelle proprietà
    del file mi dice che non ci sono versioni disponibili...

    Dove sbaglio?

    Piviul

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Giuseppe Sacco@21:1/5 to All on Sat Jul 2 21:40:01 2022
    Ciao Piviul,
    mi pare che la configurazione sia corretta, con l'unico punto strano dovuto al fatto che monti gli snapshot detro la directory stessa.


    Il giorno gio, 30/06/2022 alle 16.39 +0200, Piviul ha scritto:
    Ciao a tutti, vorrei implementare le shadow copies di microsoft
    utilizzando snapshots fatti con rsync. Ho creato un server sambatest con
    la seguente share:

    [testshare]
        comment = Test share folder
        force group="DOMAINTEST\domain users"
        path = /home/samba/testshare
        write list = "@DOMAINTEST\domain users"
        create mask = 0660
        directory mask = 0770
        vfs objects = shadow_copy2
        shadow:snapdir = /home/samba/testshare/.snapshots
        shadow:sort = desc
        shadow:format = @GMT-%Y.%m.%d-%H.%M.%S
        shadow:localtime = yes

    [...]

    Ma gli snapshot ci sono veramente? Hai le directory degli snapshot in /home/samba/testshare/.snapshots con i nomi corretti?

    Ciao,
    Giuseppe

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Piviul@21:1/5 to All on Mon Jul 4 07:10:01 2022
    This is a multi-part message in MIME format.
    Il 02/07/22 21:13, Giuseppe Sacco ha scritto:
    Ciao Piviul,
    mi pare che la configurazione sia corretta, con l'unico punto strano dovuto al
    fatto che monti gli snapshot detro la directory stessa.
    prima era fuori poi ho provato a metterla dentro ma non è cambiato
    nulla. Lo avevo fatto solo perché non ho capito i parametri
    shadow:mountpoint, shadow:basedir e  un esempio che ho trovato li
    montava nella share stessa... se credi posso rimettere il mount point
    fuori dalla share.

    Ma gli snapshot ci sono veramente? Hai le directory degli snapshot in /home/samba/testshare/.snapshots con i nomi corretti?
    ls -l /home/samba/testshare/.snapshots
    totale 16
    drwxrwsr-x 4 root DOMAINTEST\domain users 4096 giu 30 15:51 @GMT-2022.06.30-15.52.05
    -rw-r--r-- 1 root DOMAINTEST\domain users  481 giu 30 15:52 @GMT-2022.06.30-15.52.05.log.gz
    drwxrwsr-x 4 root DOMAINTEST\domain users 4096 giu 30 15:52 @GMT-2022.06.30-15.52.19
    -rw-r--r-- 1 root DOMAINTEST\domain users  547 giu 30 15:52 @GMT-2022.06.30-15.52.19.log.gz
    lrwxrwxrwx 1 root DOMAINTEST\domain users   24 giu 30 15:52 latest -> @GMT-2022.06.30-15.52.19

    invece lato client non bisogna fare nulla? Se non ricordo male proprio
    tu in passato avevi suggerito di usare le shadow copies con rsync e mi
    avevi invogliato ma non so proprio dove sbattere la testa!?!

    Grazie mille

    Piviul
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    </head>
    <body>
    <div class="moz-cite-prefix">Il 02/07/22 21:13, Giuseppe Sacco ha
    scritto:<br>
    </div>
    <blockquote type="cite"
    cite="mid:d8647be7ff1948129deb81732ee6a5ce36ffea62.camel@sguazz.it">
    <pre class="moz-quote-pre" wrap="">Ciao Piviul,
    mi pare che la configurazione sia corretta, con l'unico punto strano dovuto al fatto che monti gli snapshot detro la directory stessa.</pre>
    </blockquote>
    prima era fuori poi ho provato a metterla dentro ma non è cambiato
    nulla. Lo avevo fatto solo perché non ho capito i parametri
    shadow:mountpoint, shadow:basedir e  un esempio che ho trovato li
    montava nella share stessa... se credi posso rimettere il mount
    point fuori dalla share.<br>
    <br>
    <blockquote type="cite"
    cite="mid:d8647be7ff1948129deb81732ee6a5ce36ffea62.camel@sguazz.it">Ma
    gli snapshot ci sono veramente? Hai le directory degli snapshot in
    <pre class="moz-quote-pre" wrap="">/home/samba/testshare/.snapshots con i nomi corretti?</pre>
    </blockquote>
    <span style="font-family:monospace"><span
    style="color:#000000;background-color:#ffffff;">ls -l
    /home/samba/testshare/.snapshots
    </span><br>
    totale 16
    <br>
    drwxrwsr-x 4 root DOMAINTEST\domain users 4096 giu 30 15:51
    @GMT-2022.06.30-15.52.05
    <br>
    -rw-r--r-- 1 root </span><span style="font-family:monospace"><span
    style="font-family:monospace">DOMAINTEST</span>\domain users
     481 giu 30 15:52 @GMT-2022.06.30-15.52.05.log.gz
    <br>
    drwxrwsr-x 4 root </span><span style="font-family:monospace"><span
    style="font-family:monospace">DOMAINTEST</span>\domain users
    4096 giu 30 15:52 @GMT-2022.06.30-15.52.19
    <br>
    -rw-r--r-- 1 root </span><span style="font-family:monospace"><span
    style="font-family:monospace">DOMAINTEST</span>\domain users
     547 giu 30 15:52 @GMT-2022.06.30-15.52.19.log.gz
    <br>
    lrwxrwxrwx 1 root </span><span style="font-family:monospace"><span
    style="font-family:monospace">DOMAINTEST</span>\domain users
      24 giu 30 15:52 latest -&gt; @GMT-2022.06.30-15.52.19<br>
    <br>
    invece lato client non bisogna fare nulla? Se non ricordo male
    proprio tu in passato avevi suggerito di usare le shadow copies
    con rsync e mi avevi invogliato ma non so proprio dove sbattere la
    testa!?!<br>
    <br>
    Grazie mille<br>
    <br>
    Piviul<br>
    </span>
    </body>
    </html>

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Giuseppe Sacco@21:1/5 to All on Mon Jul 4 22:50:01 2022
    Ciao,

    Il giorno lun, 04/07/2022 alle 06.49 +0200, Piviul ha scritto:
    Il 02/07/22 21:13, Giuseppe Sacco ha scritto:

    Ciao Piviul,
    mi pare che la configurazione sia corretta, con l'unico punto strano
    dovuto al
    fatto che monti gli snapshot detro la directory stessa.
     prima era fuori poi ho provato a metterla dentro ma non è cambiato nulla. Lo avevo fatto solo perché non ho capito i parametri shadow:mountpoint, shadow:basedir e  un esempio che ho trovato li montava nella share stessa... se credi posso rimettere il mount point fuori dalla share.


    no, non è importante

    [...]
     invece lato client non bisogna fare nulla? Se non ricordo male proprio tu in passato avevi suggerito di usare le shadow copies con rsync e mi avevi invogliato ma non so proprio dove sbattere la testa!?!

    No, lato client non si deve fare nulla. Ti propongo due correzioni, per vedere che succede. La prima è allo script che fa gli snapshot: dovresti aggiungere TZ=GMT alle variabili d'ambiente di date, così:

    readonly DEST_FOLDER="$(TZ=GMT date '+@GMT-%Y.%m.%d-%H.%M.%S')"

    e, la seconda, togliere alcuni parametri che usano comunque il valore predefinito. Alla fine al share dovrebbe essere questa:

    [testshare]
    comment = Test share folder
    force group="DOMAINTEST\domain users"
    path = /home/samba/testshare
    write list = "@DOMAINTEST\domain users"
    create mask = 0660
    directory mask = 0770
    vfs objects = shadow_copy2
    shadow:snapdir = /home/samba/testshare/.snapshots
    shadow:fixinodes = yes

    Poi, una domanda: non ci sono errori nel log di smbd? Nella [global] potresti aggiungere o modificare questa riga?

    log level = shadow_copy:5 vfs:4

    Ciao,
    Giuseppe

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Piviul@21:1/5 to Giuseppe Sacco on Wed Jul 6 10:40:01 2022
    Ciao Giuseppe, anzitutto grazie e scusa per il delay...

    On 04/07/22 22:43, Giuseppe Sacco wrote:
    [...]
     invece lato client non bisogna fare nulla? Se non ricordo male proprio tu >> in passato avevi suggerito di usare le shadow copies con rsync e mi avevi
    invogliato ma non so proprio dove sbattere la testa!?!
    No, lato client non si deve fare nulla. Ti propongo due correzioni, per vedere
    che succede. La prima è allo script che fa gli snapshot: dovresti aggiungere TZ=GMT alle variabili d'ambiente di date, così:

    readonly DEST_FOLDER="$(TZ=GMT date '+@GMT-%Y.%m.%d-%H.%M.%S')"

    non l'ho capita ma ho fatto.


    e, la seconda, togliere alcuni parametri che usano comunque il valore predefinito. Alla fine al share dovrebbe essere questa:

    [testshare]
    comment = Test share folder
    force group="DOMAINTEST\domain users"
    path = /home/samba/testshare
    write list = "@DOMAINTEST\domain users"
    create mask = 0660
    directory mask = 0770
    vfs objects = shadow_copy2
    shadow:snapdir = /home/samba/testshare/.snapshots
    shadow:fixinodes = yes

    fatto.


    Poi, una domanda: non ci sono errori nel log di smbd?

    no, non c'è nulla


    Nella [global] potresti
    aggiungere o modificare questa riga?

    log level = shadow_copy:5 vfs:4

    fatto; quando faccio il restart di samba nei log vedo soltanto:

    [2022/07/06 10:16:08.692529,  0] ../../lib/util/debug.c:799(debug_lookup_classname)
      debug_lookup_classname(shadow_copy): Unknown class

    ho dimenticato qualche pacchetto?


    Comunque dopo avere effettuato queste modifiche, modificato un file
    nella share ed eseguito lo script dello snapshot nei log di smbd non
    viene loggato nulla e da windows nel tab delle versioni precedenti dice "Nessuna versione precedente disponibile"

    sono in altomare...

    Grazie mille

    Piviul

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Giuseppe Sacco@21:1/5 to All on Wed Jul 6 12:30:01 2022
    Il giorno mer, 06/07/2022 alle 10.32 +0200, Piviul ha scritto:
    Ciao Giuseppe, anzitutto grazie e scusa per il delay...

    [...]

      readonly DEST_FOLDER="$(TZ=GMT date '+@GMT-%Y.%m.%d-%H.%M.%S')"

    non l'ho capita ma ho fatto.

    il comando «date» stampa la data corrente secondo il fuso orario
    configurato a livello di sistema operativo. La variabile TZ (timezone)
    viene usata da «date» per la selezione del fuso orario indipendentemente da quello impostato a livello di sistema. In pratica chiedi a «date» di
    stampare l'orario di greenwich (GMT), che è quello che si aspetta samba.

    Per il resto, mi spiace, ma non ho altri suggerimenti. L'unica idea vaga
    che ho è che io l'ho sempre fatto con gli snapshot del file system XFS e
    non con rsync; l'unica differenza vera è che con gli snapshot samba va a cercare i mountpoint, mentre con rsync si tratta di directory. Non mi è
    chiaro se questo sia da configurare in qualche modo.

    Ciao,
    Giuseppe

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)