[Samba] samba_backup script doesn't use tdbbackup for tdb files?

Rowland Penny rpenny at samba.org
Sat Dec 10 21:20:48 UTC 2016


On 10 Dec 2016 20:19:11 UTC
Don via samba <samba at lists.samba.org> wrote:

> Rowland Penny via samba <samba at lists.samba.org> wrote:
> > On 09 Dec 2016 21:52:39 UTC
> > Don via samba <samba at lists.samba.org> wrote:
> >
> >> Greetings,
> >>
> >> The backup and restore Samba AD DC section of SambaWiki [1] refers
> >> to ./source4/scripting/bin/samba_backup . Although my recent
> >> version of samba_backup uses tdbbackup on ldb files, it appears to
> >> tar tdb files "as is." [2]
> >>
> >> What gives? Isn't tdbbackup specifically designed to backup tdb
> >> files? Is it now possible to simply copy open tdb files into an
> >> archive?
> >>
> >> Note.
> >>
> >> 1.
> >> https://wiki.samba.org/index.php/Backup_and_restore_an_Samba_AD_DC
> >>
> >> 2. script snippet sans error handling
> >>
> >>      if [ "$d" = "private" ]; then
> >>        find $relativedirname -name "*.ldb.bak" -exec rm {} \;
> >>          for ldb in `find $relativedirname -name "*.ldb"`; do
> >>            tdbbackup $ldb
> >>          done
> >>          tar cjf ${WHERE}/samba4_${n}.${WHEN}.tar.bz2
> >> $relativedirname --exclude=*.ldb >/dev/null 2>&1
> >>
> >> Thank you,
> >>
> >
> > If you read the code snippet carefully, you will see that tdbbackup
> > backs up each .ldb file 'tdbbackup $ldb', this results in files
> > named *.ldb.bak.
> > The script then goes on to create a tarball of all the files EXCEPT
> > the original *.ldb files, this is done by this '--exclude=*.ldb'
> 
> My question pertains to *.tdb files (not *.ldb files). Allow me to
> unpack the samba_backup snippet.
> 
>     It first removes any *.ldb.bak files that it finds because they
> were created by an earlier invocation of samba_backup.
> 
>     It next uses tdbbackup to create *.ldb.bak files for this
> invocation of samba_backup.
>  
>     If finally uses tar to create an archive of all *.ldb.bak files,
>     all *.tdb files, and every other type of file, except *.ldb files.
>     Presumably samba_backup excludes *.ldb files because they are 
>     open and in an unbackupable state.
> 
> Given its name, tdbbackup seems to imply that at one point, you needed
> to use tdbbackup to backup *.tdb files that were open and therefore in
> an unbackupable state. Then something apparently changed, which
> allowed *.tdb files that were open to be backed up with tar.

As far as I am aware, nothing has changed, you still need to
backup .tdb files with tdbbackup and yes, it also backs up .ldb files

You will find a better backup script here:

https://github.com/thctlo/samba4/tree/master/backup-script

This one backs up .ldb & .tdb files before creating the tarball

Rowland




More information about the samba mailing list