STOREBACKUP(1)

โœจ STOREBACKUP(1) โœจ

the User Contributed Perl Documentation girlies know ๐Ÿซถ

okay so bestie, gather round, because we are about to talk about a script that is genuinely iconic and I need you to be seated for it ๐Ÿ’…


๐ŸŽ€ NAME ๐ŸŽ€

storeBackup.pl โ€” it's literally a fancy compressing, managing, checksumming, hard-linking, deduplicating cp -ua โœจ no cap, that's the whole vibe.


๐ŸŒธ DESCRIPTION ๐ŸŒธ

okay so here's the tea. This program copies trees to another location. Every single file it copies is potentially compressed (peep --exceptSuffix for the deets ๐Ÿ‘€).

The backups after the first backup will compare the files with an md5 checksum against the last stored version. If they're equal, it literally just makes a hard link to it. That's it. That's the whole flex. ๐Ÿ”ฅ

It will also check mtime, ctime and size to recognize identical files in older backups very fast โ€” like, speedrun fast, no thoughts head empty fast ๐Ÿ’€

And get this: it can also backup big image files fast and efficiently on a per block basis (that's data deduplication, bestie, iykyk ๐Ÿ‘‘).

Also you can overwrite options in the configuration file on the command line. Main character energy honestly.


โœจ SYNOPSIS โœจ

        storeBackup.pl --help
or
        storeBackup.pl -g configFile
or
        storeBackup.pl [-f configFile] [-s sourceDir]
              [-b backupDirectory] [-S series] [--checkCompr] [--print]
              [-T tmpdir] [-L lockFile] [--unlockBeforeDel]
              [--exceptDirs dir1] [--contExceptDirsErr]
              [--includeDirs dir1]
              [--exceptRule rule] [--includeRule rule]
              [--exceptTypes types]
              [--specialTypeArchiver archiver [--archiveTypes types]]
              [--cpIsGnu] [--linkSymlinks]
              [--precommand job] [--postcommand job]
              [--followLinks depth] [--stayInFileSystem] [--highLatency]
              [--ignorePerms] [--lateLinks [--lateCompress]] [--autorepair]
              [--checkBlocksSuffix suffix] [--checkBlocksMinSize size]
              [--checkBlocksBS] [--checkBlocksCompr check|yes|no]
              [--checkBlocksParallel] [--queueBlock]
              [--checkBlocksRule0 rule [--checkBlocksBS0 size]
               [--checkBlocksCompr0 key] [--checkBlocksRead0 filter]
               [--checkBlocksParallel0]]
              [--checkBlocksRule1 rule [--checkBlocksBS1 size]
               [--checkBlocksCompr1 key] [--checkBlocksRead1 filter]
               [--checkBlocksParallel1]]
              [--checkBlocksRule2 rule [--checkBlocksBS2 size]
               [--checkBlocksCompr2 kdey] [--checkBlocksRead2 filter]
               [--checkBlocksParallel2]]
              [--checkBlocksRule3 rule [--checkBlocksBS3 size]
               [--checkBlocksCompr3 key] [--checkBlocksRead3 filter]
               [--checkBlocksParallel3]]
              [--checkBlocksRule4 rule [--checkBlocksBS4 size]
               [--checkBlocksCompr4 key] [--checkBlocksRead4 filter]
               [--checkBlocksParallel4]]
              [--checkDevices0 list [--checkDevicesDir0]
               [--checkDevicesBS0] [checkDevicesCompr0 key]
               [--checkDevicesParallel0]]
              [--checkDevices1 list [--checkDevicesDir1]
               [--checkDevicesBS1] [checkDevicesCompr1 key]
               [--checkDevicesParallel1]]
              [--checkDevices2 list [--checkDevicesDir2]
               [--checkDevicesBS2] [checkDevicesCompr2 key]
               [--checkDevicesParallel2]]
              [--checkDevices3 list [--checkDevicesDir3]
               [--checkDevicesBS3] [checkDevicesCompr3 key]
               [--checkDevicesParallel3]]
              [--checkDevices4 list [--checkDevicesDir4]
               [--checkDevicesBS4] [checkDevicesCompr4 key]
               [--checkDevicesParallel1]]
              [--saveRAM] [-c compress] [-u uncompress] [-p postfix]
              [--noCompress number] [--queueCompress number]
              [--noCopy number] [--queueCopy number]
              [--withUserGroupStat] [--userGroupStatFile filename]
              [--exceptSuffix suffixes] [--addExceptSuffix suffixes]
              [--compressSuffix] [--minCompressSize size] [--comprRule]
              [--doNotCompressMD5File] [--chmodMD5File] [-v]
              [-d level] [--progressReport number[,timeframe]]
              [--ignoreReadError] [--suppressInfo]
              [--suppressWarning key] [--linkToRecent name]
              [--doNotDelete] [--deleteNotFinishedDirs] [--maxHardLinks]
              [--resetAtime] [--keepAll timePeriod] [--keepWeekday entry]
              [[--keepFirstOfYear] [--keepLastOfYear]
               [--keepFirstOfMonth] [--keepLastOfMonth]
               [--firstDayOfWeek day] [--keepFirstOfWeek]
               [--keepLastOfWeek] [--keepDuplicate] [--keepMinNumber]
               [--keepMaxNumber]
                | [--keepRelative] ]
              [-l logFile
               [--plusLogStdout] [--suppressTime] [-m maxFilelen]
               [[-n noOfOldFiles] | [--saveLogs]]
               [--compressWith compressprog]]
              [--logInBackupDir [--compressLogInBackupDir]
               [--logInBackupDirFileName logFile]]
              [otherBackupSeries ...]

(and yes bestie, I know that kdey in there looks like a typo. I am reporting, not fixing. It's not my job. She stays. ๐Ÿ’€)


๐Ÿ’– OPTIONS ๐Ÿ’–

okay this is the long part, grab a snack ๐Ÿ“

  • --help โ€” show this help ๐Ÿซถ
  • --generate, -g โ€” generate a template of the configuration file โœจ like, auto-magic setup, we love her
  • --checkCompr, -C โ€” check compression for all files bigger than 1k to check if it makes sense to compress them ๐ŸŒˆ overwrites options:
    • exceptSuffix
    • addExceptSuffix
    • minCompressSize
    • comprRule
  • --print โ€” print configuration read from configuration file or command line, and then stop ๐Ÿ›‘ she said that's enough
  • --file, -f โ€” configuration file (instead of, or additionally to, options on the command line)
  • --sourceDir, -s โ€” source directory (must exist ๐Ÿ’€ no imaginary dirs on her watch)
  • --backupDir, -b โ€” top level directory of all backups (also must exist, she does not create it for you bestie)
  • --series, -S โ€” series directory, default is 'default' โœจ it's a relative path from backupDir btw
  • --tmpdir, -T โ€” directory for temporary files, default is </tmp> ๐Ÿงš
  • --lockFile, -L โ€” lock file. if it exists, new instances will finish if an old one is already running. default is $lockFile ๐Ÿ”’
heads up bestie: this type of lock file does not work across multiple servers, and it is not designed to separate storeBackup.pl and storeBackupUpdateBackup.pl or any other storeBackup process in a separate PID space. like, she is doing her best but she is not doing that.

Default lock file for root is in /var/lock, for others in \$HOME ๐Ÿ 

  • --unlockBeforeDel โ€” remove the lock file before deleting old backups ๐Ÿ”“ default is to delete the lock file after removing old backups
  • --exceptDirs, -e โ€” directories to except from backing up (relative path). wildcards are possible and should be quoted to avoid replacements by the shell ๐Ÿš use this parameter multiple times for multiple directories
  • --contExceptDirsErr โ€” continue if one or more of the exceptional directories do not exist (default is to stop processing ๐Ÿ›‘)
  • --includeDirs, -i โ€” directories to include in the backup (relative path). wildcards are possible and have to be quoted ๐ŸŒธ use this parameter multiple times for multiple directories
  • --exceptRule โ€” Files to exclude from backing up ๐Ÿ“ see README: 'including / excluding files and directories'
  • --includeRule โ€” Files to include in the backug up โ€” like exceptRule (yes bestie, "backug". she said what she said, and what she said stays ๐Ÿ’…) see README: 'including / excluding files and directories'
  • --writeExcludeLog โ€” write a file name .storeBackup.notSaved.bz2 with the names of all skipped files ๐Ÿ“„ byeee to those files, hello to receipts
  • --exceptTypes โ€” do not save the specified type of files, allowed: Sbcfpl ๐Ÿ‘€
    • S โ€” file is a socket
    • b โ€” file is a block special file
    • c โ€” file is a character special file
    • f โ€” file is a plain file
    • p โ€” file is a named pipe
    • l โ€” file is a symbolic link
    • Sbc can only be saved when using option [cpIsGnu] ๐Ÿ˜ค
  • --archiveTypes โ€” save the specified type of files in an archive instead saving them directly in the file system ๐Ÿ—„๏ธ use this if you want to backup those file types but your target file or transport (eg. sshfs or non gnu-cp) system does not support those types of files
    • S โ€” file is a socket
    • b โ€” file is a block special file
    • c โ€” file is a character special file
    • p โ€” file is a named pipe you also have to set --specialTypeArchiver when using this option โš ๏ธ
  • --specialTypeArchiver โ€” possible values are 'cpio' or 'tar'. default is 'cpio' ๐ŸŽ€ tar is not able to archive sockets ๐Ÿ’€ cpio is not part of the actual posix standard any more ๐Ÿ˜ญ
  • --cpIsGnu โ€” Activate this option if your system's cp is a full-featured GNU version. In this case you will be able to also backup several special file types like sockets ๐Ÿ”ฅ
  • --linkSymlinks โ€” hard link identical symlinks ๐Ÿ”—
  • --precommand โ€” exec job before starting the backup, checks lockFile (-L) before starting (e.g. can be used for rsync) โฎ๏ธ stops execution if job returns exit status != 0 ๐Ÿ›‘ This parameter is parsed like a line in the configuration file and normally has to be quoted โœ๏ธ
  • --postcommand โ€” exec job after finishing the backup, but before erasing of old backups โญ๏ธ reports if job returns exit status != 0 ๐Ÿ“ข This parameter is parsed like a line in the configuration file and normally has to be quoted โœ๏ธ
  • --followLinks โ€” follow symbolic links like directories up to depth ๐Ÿ‡ default = 0 โ†’ do not follow links
  • --stayInFileSystem โ€” only store the contents of file systems named by --sourceDir and symlinked via --followLinks ๐Ÿก stay home bestie, no wandering
  • --highLatency โ€” use this for a very high latency line (eg. vpn over the internet) for better parallelization ๐ŸŒ yes queen, optimize that sad connection
  • --ignorePerms โ€” If this option is selected, files will not necessarily have the same permissions and owner as the originals โš ๏ธ This speeds up backups on network drives a lot ๐Ÿš€ Recovery with storeBackupRecover.pl will restore them correctly โœ… so it's fine, it's slay, don't panic
  • --lateLinks โ€” do not write hard links to existing files in the backup during the backup ๐Ÿ˜ณ you have to call the program storeBackupWriteLateLink.pl later on your server if you set this flag to 'yes' ๐Ÿ“ž she will be waiting you have to run storeBackupUpdateBackup.pl later โ€” see description for that program ๐Ÿ“–
  • --lateCompress โ€” only does anything when you also pass --lateLinks, bestie. With this on, compressing files that are >= minCompressSize gets pushed to later, and the file is (temporarily) copied into the backup in the meantime. โœจ
  • --autorepair, -a โ€” fixes simple inconsistencies (the ones that come from lateLinks) all by itself, no "hey bestie can I do this?" prompt. it's giving self-sufficient queen ๐Ÿ’…
  • --checkBlocksSuffix โ€” files with this suffix get an md5 check on blocks of that file from storeBackup. This one runs after --checkBlocksRule(n). you can repeat this option as many times as you want ๐ŸŽ€
  • --checkBlocksMinSize โ€” only bother checking the files named in --checkBlocksSuffix if their file size is at least this value. default is 100M. ๐Ÿซถ
  • --checkBlocksBS โ€” block size for the files you named with --checkBlocksSuffix. default is $checkBlocksBSdefault (that's 1 megabyte). ๐ŸŒธ
  • --checkBlocksCompr โ€” if you set it, the blocks made because of checkBlocksSuffix get compressed. default is 'no'. set it to 'check' and it tries to estimate whether compression actually helps. lowkey smart ๐Ÿง 
  • --checkBlocksParallel โ€” reads the files you named here in parallel to the "normal" ones. heads up: this only makes sense if they live on a different disk. default value is 'no'. ๐Ÿ’€
  • --queueBlock โ€” how long the queue is for storing files before block checking. default = $queueBlock. ๐Ÿ‘‘
  • --checkBlocksRule0 โ€” the files that storeBackup will do an md5 check on, decided based on blocks of that file. ๐ŸŒˆ
  • --checkBlocksBS0 โ€” block size for the checkBlocksRule option. default is $checkBlocksBSdefault (that's 1 megabyte). โญ
  • --checkBlocksCompr0 โ€” if you set it, the blocks made because of this rule get compressed. ๐ŸŽ€
  • --checkBlocksRead0 โ€” a filter for reading the file so it's treated as a blocked file. example: 'gzip -d' if the file is compressed. default is no read filter. this parameter gets parsed just like a line in the configuration file, so normally you gotta quote it, e.g. 'gzip -9'. โœจ
  • --checkBlocksParallel0 โ€” reads the files you specified here in parallel to the "normal" ones. again: only makes sense on a different disk. default value is 'no'. ๐Ÿฆ‹
  • --checkBlocksRule1, --checkBlocksBS1, --checkBlocksCompr1, --checkBlocksRead1, --checkBlocksParallel1 โ€” literally the exact same set as the 0 versions above, just for rule 1. ๐Ÿ’–
  • --checkBlocksRule2, --checkBlocksBS2, --checkBlocksCompr2, --checkBlocksRead2, --checkBlocksParallel2 โ€” same deal, rule 2. ๐ŸŒธ
  • --checkBlocksRule3, --checkBlocksBS3, --checkBlocksCompr3, --checkBlocksRead3, --checkBlocksParallel3 โ€” same deal, rule 3. ๐ŸŽ€
  • --checkBlocksRule4, --checkBlocksBS4, --checkBlocksCompr4, --checkBlocksRead4, --checkBlocksParallel4 โ€” same deal, rule 4. that's the whole set, no cap ๐Ÿซถ

  • --checkDevices0 โ€” a list of devices to md5 check, based on blocks of those devices (think eg. /dev/sdb or eg. /dev/sdb1). ๐Ÿ‘‘
  • --checkDevicesDir0 โ€” the directory where the backup of the device gets stored. ๐ŸŒˆ
  • --checkDevicesBS0 โ€” block size for the checkDevices0 option. default is 1M (1 megabyte). โญ
  • --checkDevicesCompr0 โ€” compress the blocks that come out of the checkDevices0 option. possible values are 'check', 'yes' or 'no', default is 'no'. ๐Ÿ’…
  • --checkDevicesParallel0 โ€” read the devices you named in parallel to the rest of the backup. once more: only makes sense if they're on a different disk. default value is 'no'. ๐Ÿ’€
  • --checkDevices1, --checkDevicesDir1, --checkDevicesBS1, --checkDevicesCompr1, --checkDevicesParallel1 โ€” the 0 crew again, but wearing a 1 bracelet. ๐Ÿฆ‹
  • --checkDevices2, --checkDevicesDir2, --checkDevicesBS2, --checkDevicesCompr2, --checkDevicesParallel2 โ€” same, number 2. ๐ŸŽ€
  • --checkDevices3, --checkDevicesDir3, --checkDevicesBS3, --checkDevicesCompr3, --checkDevicesParallel3 โ€” same, number 3. โœจ
  • --checkDevices4, --checkDevicesDir4, --checkDevicesBS4, --checkDevicesCompr4, --checkDevicesParallel4 โ€” same, number 4. and that's all five slots bestie ๐ŸŒธ

  • --saveRAM โ€” writes the temporary dbm files into --tmpdir instead. use this when you do not have enough RAM, like a true survivor ๐Ÿ˜ญ
  • --compress, -c โ€” the compress command (with its options). default is <bzip2>. this parameter gets parsed just like a line in the configuration file, so normally you have to quote it, e.g. 'gzip -9'. ๐Ÿ”ฅ
  • --uncompress, -u โ€” the uncompress command (with its options). default is <bzip2 -d>. same as above: parsed like a config file line, normally needs quotes, eg. 'gzip -d'. ๐Ÿ’œ
  • --postfix, -p โ€” the postfix to slap on after compression. default is <.bz2>. ๐ŸŽ€
  • --exceptSuffix โ€” do not compress files with the following suffix (uppercase included, periodt): '\.zip', '\.bz2', '\.gz', '\.tgz', '\.jpg', '\.gif', '\.tiff?', '\.mpeg', '\.mpe?g', '\.mpe?[34]', '\.ogg', '\.gpg', '\.png', '\.lzma', '\.xz', '\.mov'. you can repeat this option multiple times. and if you do not want any compression at all, set this option to '.*'. ๐Ÿฆ‹
  • --addExceptSuffix โ€” like --exceptSuffix, but it does not replace the defaults, it adds to them. ๐Ÿซถ
  • --compressSuffix โ€” like --exceptSuffix, except the files you mention here will be compressed. and heads up: if you pick this option, then files that aren't touched by exceptSuffix, addExceptSuffix or these suffixes get rated by the rule function COMPRESSION_CHECK to decide whether to compress or not. ๐Ÿ‘€
  • --minCompressSize โ€” files smaller than this size will never be compressed, just copied. no notes โญ
  • --comprRule โ€” an alternative to --exceptSuffix, compressSuffix and minCompressSize: you define a rule for which files will be compressed. ๐ŸŒˆ
  • --noCompress โ€” the maximal number of parallel compress operations. default = chosen automatically. ๐Ÿ’…
  • --queueCompress โ€” length of the queue where files hang out before compression. default = 1000. ๐ŸŽ€
  • --noCopy โ€” the maximal number of parallel copy operations. default = 1. ๐ŸŒธ
  • --queueCopy โ€” length of the queue where files hang out before being copied. default = 1000. โœจ
  • --withUserGroupStat โ€” writes statistics about used space into the log file. ๐Ÿ‘‘
  • --userGroupStatFile โ€” writes statistics about used space into a name file โ€” and yes, it will be overridden each time. ๐Ÿ™ˆ
  • --doNotCompressMD5File โ€” don't compress .md5CheckSumFile. ๐Ÿ’œ
  • --chmodMD5File โ€” the permissions of .md5CheckSumFile and the corresponding .storeBackupLinks directory. default is 0600. ๐Ÿ”ฅ

  • --verbose, -v โ€” verbose messages. she's chatty, we love her ๐Ÿ—ฃ๏ธ
  • --debug, -d โ€” generates debug messages. levels are 0 (none, default), 1 (some), 2 (many) messages, especially in --exceptRule and --includeRule. ๐Ÿ›
  • --resetAtime โ€” resets the access time in the source directory โ€” but plot twist, this will change ctime (time of last modification of file status information). ๐Ÿซข
  • --doNotDelete โ€” check only, do not delete any backup. ๐Ÿ›‘
  • --deleteNotFinishedDirs โ€” deletes old backups which have not been finished. heads up: this will only happen if doNotDelete is set. ๐Ÿ’€
  • --maxHardLinks โ€” maximum number of hard links to use. zero (default) means the limit depends on the file system used only. โญ
  • --keepAll โ€” keeps backups which are not older than the specified amount of time. think of it like a default value for all days in --keepWeekday. deleting begins at the end of the script. the time range has to be specified in format 'dhms', e.g.
10d4h

means 10 days and 4 hours. default = 20d. ๐Ÿ’–

  • --keepWeekday โ€” keeps backups for the specified days for the specified amount of time. overwrites the default values chosen in --keepAll. 'Mon,Wed:40d Sat:60d10m' means:
    • keep backups from Mon and Wed 40days + 5mins
    • keep backups from Sat 60days + 10mins
    • keep backups from the rest of the days like specified in --keepAll (default $keepAll)

and if you also use the 'archive flag' it means to not delete the affected directories via --keepMaxNumber:

  • a10d4h means 10 days and 4 hours and 'archive flag'

e.g. 'Mon,Wed:a40d5m Sat:60d10m' means:

  • keep backups from Mon and Wed 40days + 5mins + 'archive'
  • keep backups from Sat 60days + 10mins
  • keep backups from the rest of the days like specified in --keepAll (default 30d) ๐Ÿ—“๏ธ
  • --keepFirstOfYear โ€” do not delete the first backup of a year. format is timePeriod with possible 'archive flag'. ๐ŸŽŠ
  • --keepLastOfYear โ€” do not delete the last backup of a year. format is timePeriod with possible 'archive flag'. ๐ŸŽ†
  • --keepFirstOfMonth โ€” do not delete the first backup of a month. format is timePeriod with possible 'archive flag'. ๐ŸŒ™
  • --keepLastOfMonth โ€” do not delete the last backup of a month. format is timePeriod with possible 'archive flag'. โญ
  • --firstDayOfWeek โ€” default: 'Sun'. this value is used for calculating --keepFirstOfWeek and --keepLastOfWeek. ๐Ÿ“…
  • --keepFirstOfWeek โ€” do not delete the first backup of a week. format is timePeriod with possible 'archive flag'. ๐ŸŒ…
  • --keepLastOfWeek โ€” do not delete the last backup of a week. format is timePeriod with possible 'archive flag'. ๐ŸŒ‡
  • --keepDuplicate โ€” keep multiple backups of one day up to timePeriod. format is timePeriod, and nope, 'archive flag' is not possible here. default = 7d. ๐Ÿ‘ฏ
  • --keepMinNumber โ€” keep that minimum of backups. multiple backups of one day are counted as one backup. default is 10. ๐Ÿงฎ
  • --keepMaxNumber โ€” try to keep only that maximum of backups. if you have more backups than that, this is the sequence of deleting that happens:
    • delete all duplicates of a day, beginning with the old ones, except the last of every day
    • if this is not enough, delete the rest of the backups beginning with the oldest, but *never* a backup with the 'archive flag' or the last backup ๐Ÿ’…
  • --keepRelative, -R โ€” the alternative deletion scheme, bestie. The second you turn this on, every other keep option is โœจignoredโœจ, fr fr, no exceptions. This one preserves your backups by their relative age. Watch:
-R '1d 7d 61d 92d'

...will (try to) make sure there's always:

  • one backup that's between 1 day and 7 days old
  • one backup that's between 5 days and ~2 months old
  • one backup that's between ~2 months and ~3 months old

And if there's no backup for one of those timespans โ€” like the last backup happened more than 2 weeks ago โ€” then the next older backup gets used for that timespan instead. ๐Ÿซถ

  • --progressReport, -P โ€” prints a progress report after each number of files. You can also slap a time frame on there so a message gets printed after that much time too. So if you want a report every 1000 files and after one minute and 10 seconds, you go: -P 1000,1m10s โฑ๏ธ
  • --printDepth, -D โ€” prints the depth of the directory it's actually reading right now during the backup. yes it's as nosy as it sounds
  • --ignoreReadError โ€” ignores read errors in the source directory, so directories that you can't read won't make storeBackup.pl stop doing its thing. ๐Ÿ˜Œ
  • --suppressWarning โ€” suppresses the (unwanted) warnings in the log files. The keys you can use for this are:
    • excDir โ€” suppresses the warning that excluded directories do not exist
    • fileChange โ€” suppresses the warning that a file has changed during the backup
    • crSeries โ€” suppresses the warning that storeBackup had to create the default series
    • hashCollision โ€” suppresses the warning if a possible hash collision is detected
    • fileNameWithLineFeed โ€” suppresses the warning if a filename contains a line feed
    • use_DB_File โ€” suppresses the warning that you should install perl module DB_File for better performance
    • use_MLDBM โ€” suppresses the warning that you should install perl module MLDBM if you want to use the rule functions MARK_DIR or MARK_DIR_REC together with option saveRAM
    • use_IOCompressBzip2 โ€” suppresses the warning that you should install perl module IO::Compress::Bzip2 for better performance
    • noBackupForPeriod โ€” suppresses the warning that there are no backups for certain periods when using option keepRelative

psst: you can repeat this option multiple times on the command line.

  • --suppressInfo โ€” suppresses the (unwanted) infos in the log files. The keys for this one:
    • readCheckSums โ€” suppresses the information that checksums of blocked files are read

Also repeatable multiple times on the command line, ๐Ÿ’… same energy.

  • --linkToRecent โ€” after a successful backup, sets a symbolic link pointing to that backup, and deletes any existing older links with the same name. fresh link, who dis ๐Ÿ”—
  • --logFile, -l โ€” the log file (default is STDOUT).
  • --plusLogStdout โ€” if you gave a log file with --logFile, this flag also prints the output to STDOUT on top of that. Best of both worlds, honestly.
  • --suppressTime โ€” suppresses the output of time in the logfile. ๐Ÿ•ฐ๏ธ bye bye timestamps
  • --maxFilelen, -m โ€” the maximal length of the log file, default 1e6.
  • --noOfOldFiles, -n โ€” how many old log files stick around, default 5.
  • --saveLogs โ€” saves log files with a date and time instead of deleting the old ones (the ones handled by [-noOfOldFiles]).
  • --compressWith โ€” compresses the saved log files (like, say, with gzip -9). Default is bzip2. Heads up: this parameter gets parsed exactly like a line in the configuration file, so normally you have to quote it. quote it or perish ๐Ÿ™ˆ
  • --logInBackupDir โ€” writes the log file (also) into the backup directory.
โš ๏ธ Be aware that this log does not contain all the error messages that the one you specified with --logFile has!
  • --compressLogInBackupDir โ€” compresses that log file in the backup directory. ๐Ÿ—œ๏ธ
  • --logInBackupDirFileName โ€” the filename to use when writing that log file from up above, default is .storeBackup.log.
  • otherBackupSeries โ€” a list of other backup series to consider for hard linking. The path is relative to backupDir! The format looks like this (examples):
backupSeries/2002.08.29_08.25.28 -> consider this backup

or

0:backupSeries ->last (youngest) in <backupDir>/backupSeries
1:backupSeries ->one before last in <backupDir>/backupSeries
n:backupSeries ->
  n'th before last in <backupDir>/backupSeries
3-5:backupSeries ->
  3rd, 4th and 5th in <backupDir>/backupSeries
all:backupSeries -> all in <backupDir>/backupSeries

You can also throw wildcards into series names ๐ŸŒˆ โ€” check the documentation, section 'Using Wildcards for Replication', for the deets. Default is to link to the last backup in every series.


Copyright (c) 2000-2022 by Heinz-Josef Claes (see README). Published under the GNU General Public License, either version 3 of the License, or (at your option) any later version. respect the license, bestie ๐Ÿ“œ


and that's a wrap on the whole page!! ๐ŸŽ€ This one's riding with perl v5.40.1 and dated 2026-05-23. go forth and back up literally everything, you've got this ๐Ÿ’–โœจ๐Ÿฆ‹

๐Ÿ“ฆ where this page comes from