Setting Backup Path & File name to include Domain & Date

SYSTEM INFORMATION
OS type and version Rocky 9.2
Webmin version 2.021
Virtualmin version 7.7

I’m looking to automate backups with two specific details for the path / file name:

  1. Each domain will be backed up into its own sub-folder on my FTP site, with the folder being the domain name.

  2. The file name format should be (domain)-(Date in ISO format)tar.gz

I found the older post: Backups: Add date/time to file name?

What it doesn’t specify is how to set the variables - what field / option is use for the destinaiton & file name.

There’s a link to Documentation – Virtualmin , but that link does not work any more.

I set my Path to be: $DOM/$DOM-%G

But this created a folder calles $DOM, and a sub-folder called $DOM-2023, and then put all of the (domain).tar.gz files into that folder.

Is there a way to achieve the following structure?

This would let me easily sort individual domains, and keep / restore multiple backups. I can handle deleting old backups via script on the FTP server.

Thank you for any advice and input!

the date can be constructed with strftime substitutions (see below). My thoughts on a solution would be: $DOM/%G-$DOM and check tar+gzip as compression format.

If this box is checked, codes like %d, %m, %Y and %u can be used in the backup destination filename. These will be replaced with the day, month, year and day of the week respectively when the backup is performed. This is useful if you want to save a different backup every day, so that you can roll a server back to a previous date.
Some of the other codes that can be used are :

 %a     The abbreviated weekday name according to the  cur
        rent locale.

 %A     The  full  weekday  name  according  to the current
        locale.

 %b     The abbreviated month name according to the current
        locale.

 %B     The  full  month  name  according  to  the  current
        locale.

 %c     The preferred date and time representation for  the
        current locale.

 %C     The century number (year/100) as a 2-digit integer.

 %d     The day of the month as a decimal number (range  01
        to 31).

 %e     Like  %d, the day of the month as a decimal number,
        but a leading zero is replaced by a space.

 %E     Modifier: use alternative format, see below.

 %G     The ISO 8601 year with century as a decimal number.
        The 4-digit year corresponding to the ISO week num
        ber (see %V).  This has the same format  and  value
        as  %y,  except that if the ISO week number belongs
        to the previous or next year,  that  year  is  used
        instead.

 %g     Like  %G, but without century, i.e., with a 2-digit
        year (00-99).

 %h     Equivalent to %b.

 %H     The hour as a decimal number using a 24-hour  clock
        (range 00 to 23).

 %I     The  hour as a decimal number using a 12-hour clock
        (range 01 to 12).

 %j     The day of the year as a decimal number (range  001
        to 366).

 %k     The hour (24-hour clock) as a decimal number (range
        0 to 23); single digits are preceded  by  a  blank.
        (See also %H.)

 %l     The hour (12-hour clock) as a decimal number (range
        1 to 12); single digits are preceded  by  a  blank.
        (See also %I.)

 %m     The month as a decimal number (range 01 to 12).

 %M     The minute as a decimal number (range 00 to 59).

 %n     A newline character.

 %O     Modifier: use alternative format, see below.

 %p     Either  'AM'  or  'PM'  according to the given time
        value, or the corresponding strings for the current
        locale.   Noon  is  treated as 'pm' and midnight as
        'am'.

 %P     Like %p but in lowercase: 'am' or 'pm' or a  corre
        sponding string for the current locale.

 %r     The  time  in  a.m. or p.m. notation.  In the POSIX
        locale this is equivalent to '%I:%M:%S %p'.

 %R     The time in 24-hour notation (%H:%M). For  a
        version including the seconds, see %T below.

 %s     The  number of seconds since the Epoch, i.e., since
        1970-01-01 00:00:00 UTC.

 %S     The second as a decimal number (range 00 to 61).

 %t     A tab character.

 %T     The time in 24-hour notation (%H:%M:%S).

 %u     The day of the week as a decimal,  range  1  to  7,
        Monday being 1.  See also %w.

 %U     The  week  number  of the current year as a decimal
        number, range 00 to 53,  starting  with  the  first
        Sunday as the first day of week 01. See also %V and
        %W.

 %V     The ISO 8601:1988 week number of the  current  year
        as  a  decimal number, range 01 to 53, where week 1
        is the first week that has at least 4 days  in  the
        current  year,  and with Monday as the first day of
        the week. See also %U and %W.

 %w     The day of the week as a decimal,  range  0  to  6,
        Sunday being 0.  See also %u.

 %W     The  week  number  of the current year as a decimal
        number, range 00 to 53,  starting  with  the  first
        Monday as the first day of week 01.

 %x     The  preferred  date representation for the current
        locale without the time.

 %X     The preferred time representation for  the  current
        locale without the date.

 %y     The  year  as  a  decimal  number without a century
        (range 00 to 99).

 %Y     The year as a decimal number including the century.

 %z     The time-zone as hour offset from GMT.  Required to
        emit RFC822-conformant dates (using "%a, %d  %b  %Y
        %H:%M:%S %z").

 %Z     The time zone or name or abbreviation.

 %%     A literal '%' character.

After looking at this, I realized the crux of the issue… where do I set the File Name? I don’t see that option in the UI anywhere. (I’m on GPL, if that matters.) I have the option checked off, but there’s no where to enter the variables.

File on server

1 Like

@Joe - When I do that, I get the following output:

Backup-2

I see. The $DOM does not convert to domain name. I do not think it is possible that way, in no way actually.

I discriminate on the date (%Y-%m-%d) on the ftp target. In that folder the various virtual-server will go.


Looking at the post I linked above, I see the following:

OP needs other info in the name. I assume template variables are also available in backup names.

Template Variable Listing – Virtualmin

It would seem that Template Variables are not available in backup names. I’ll see if I can file a request for this.

Just a thought
why not write a script that changes the directory & file names to what you want and use

Command to run after backup

like so


however this approach my rely on the files being on the local server then transferred afterwards

Hm, that is an option, although it’s an added layer of complication. I’d prefer if it was an integrated part of the system, if possible. I’ll open a Feature Request.

1 Like

This topic was automatically closed 60 days after the last reply. New replies are no longer allowed.