Since we are using some extra linux based commands besides rsync, this destination must have a “Real” operation system at the other end (Redhat, Centos, Debian etc). So a “NAS Backup box” with rsync enabled will not be supported.
Supported features –
- Cpanel account backups – Copy the entires cPanel account (same as “/scripts/pkgacct”)
- Generic files / folders – Copy any files / folder on the server (not related to cPanel accounts).
- Incremental backups – Copy only files that have changed or are new since the last full incremental backup.
- “Point-In-Time” Space Consuming incremental backups – If you activated “backup rotation” – JBM will create a “point-in-time incremental backups”, in which will use as little space as possible (using hardlinks). So a 30 days backup rotation, of a 2GB cPanel account, will only consume 2GB + 30 Days of new / changed files (** At the moment, mysql is fully gzipped & dumpped, as it doesn’t support incremental backups).
Example configuration page for the destination –
A generic name for your internal ease of use, so it will be easier to recognize the backup destination roll, in case you have more then one.
Choose Backup Engine
JBM Will need to index and read files from this destination. Since each backup engine has it’s own file structure, we will need to know what we are looking for in the destination when we are indexing.
Backups this destination is going to contain
As continues to the backup engine, it will be easier if you can specify what file types are going to be stored there. If for example you are only going to store full account compressed tar.gz files, there is no need for JBM to look for extra backups, and incremental backups – so the indexing will run faster, with less IO.
Download onTheFly limit.
An end user can download his backups from the backup server to his computer. Since we will need to fetch the backups from the destination & prepare them for download, it can take some time, sometimes more then a reason “php session” time.
When disabled (set 0 or blank), a download request will be sent to the jobs queue and processed in the background. User is notified once the download is ready.
When enabled, a backup size is required. If for example we set it for 50mb, and the account backup is lower – download job will be processed immediately and not sent the the queue. Backups above 50mb, will be sent to the jobs queue and processed in the background.
This will be our starting point when accessing this destination through SSH. Usually the starting point is the remote user’s homedir, for example –
remote backup user homedir: /home/bkpuser
remote backup user: bkpuser
./ – will be: /home/bkpuser (starting point is the homedir)
./server01 – will be: /home/bkpuser/server01 (starting point is homedir + server01)
/root/backup – this will not work, since the remote user doesn’t have root priviliges, and trying to access a folder outside of his homedir.
./root/backup – will be /home/bkpuser/root/backup
Make sure to always start with “./” to make sure you are relative to the user’s homedir. If your remote user is root (not recommended), you don’t have to start with “./” as you have access to any folder on the server. You can use for example “/backup” if there is a seperate mount for backups on the remote server.
This option can be useful when several servers are using same destination & same user, so you can separate them with folders (server01, server02 etc)
A simple hostname or ip address to access the remote backup server
Your remote ssh port (default port is 22 – you must specify this even if it’s 22).
Remote account username
The remote user to login with. It is recommended to create a dedicated user for backups and not use root user.
Remote user password
Password for the provided ssh user. JBM will create all necessary keys for remote login on the remote server.
Since we are using rsync for backups, we will need to setup access keys between the servers, so we can login to the remote server without prompting for password.
You can find a guide for that here – https://docs.jetapps.com/linux-how-to-rsync-without-prompting-for-password
Timeout for the ssh/rsync connection. Default value is 30, you can increase this if the connection to the remote server is poor and you might face longer timeout issues.