Installation on hosts without SSH access

August 23rd, 2007

I’ve been hearing good things about HSphere as a platform for a reseller account - clustered services, fully integrated billing and ticketing and the ability to resell both Windows and Linux hosting (not that I really want to offer Windows but it could be useful at some stage). But there’s a catch: I’ve yet to find a HSphere provider who’s willing to offer SSH access. This is rarely a problem for CPanel or DirectAdmin - most hosts using these panels seem to offer it on request, presumably having accepted that some users have a legitimate need for it and that any additional security risks are minimal (above the risks associated with allowing users to run PHP, perl and shell scripts via CGI or cron). But perhaps the situation is different for HSphere - I read somewhere that SSH is used for internal communications within the cluster and allowing user SSH could compromise this. In any event, the reality seems to be, if you want SSH access don’t choose an HSphere reseller account.

Now I’ve always considered SSH access a prerequisite for ClonePanel. The backup server uses an SSH connection to transfer files using rsync. But could it be done any other way? I thought this could be an interesting challenge (masochist that I am) so I signed up for a reseller account with a popular HSphere host and set out to discover what was possible.

Of course there are always other ways to do backup and restore. Most common is to tar and zip all files into a single backup, transfer that using ftp and unzip and untar at the other end. But I really want to avoid this if I can - rsync is just so much more efficient and I don’t want these regular backups to cause any perceptible load on the servers. So I started looking at how to use rsync without being able to make an SSH connection to the hosting server. If I can’t connect in, what about having the server connect out? I can run shell scripts through cron, the system gives me access to the usual linux / bash commands including ssh and rsync, so what’s to stop me connecting from the hosting server to my backup VPS?

Well, as it turns out the first thing stopping me is a firewall! They have it sewn up pretty tight, including outgoing connections on several high-numbered ports that I tried - it makes sense from the security point of view (don’t open up anything unless you have to) but it makes things tricky for me. But it turns out that there are at least two ports open, 80 and 443, allowing scripts on the server to connect to external web sites - this seems like a requirement for any hosting server where the clients may need to fetch information from the web or communicate with a payment gateway.

So if I set up the VPS to run sshd on one of these ports, the hosting server can connect to it. Of course this means that it’s not possible to run a regular webserver on the VPS (on the standard ports) but I don’t want it to be web-accessible anyway. So I set up the ssh private key and known_hosts file on the hosting server (normally ssh will update known_hosts with the other server’s RSA key on the first interactive connection, after prompting to ask whether you want to connect, but in this case it must be done manually - there is no interactive connection!) and after a few attempts managed a simple ‘ls’ command on the backup server.

So it is possible: an outbound SSH connection from a hosting server where inbound SSH isn’t allowed. The use of a non-standard port is a little inconvenient but not a major problem. However we are talking about passwordless remote access to the backup server from a web-server… This is something I’ve always tried to avoid - the webserver is relatively insecure (ie. accessible to anyone who wants to connect to it, and running scripts which, even if kept updated, just might contain a zero-day exploit). This is a tough call - something I’d prefer not to do but against that I really would like to extend the functionality of ClonePanel to hosting servers without SSH access.

My compromise is this: a separate install of ClonePanel under a different user, with the new install used only for accounts connecting to this hosting server. Still not ideal perhaps but at least all other accounts are kept totally separate by file permissions on each user’s home directory. In the worst-case scenario where the hosting server gets hacked the attacker could use this connection to the backup VPS to read anything from the user’s filesystem, but this is mostly what’s already available to him in the web-directories of the compromised server, and the open-source ClonePanel system itself. There is one potential issue: the private keys allowing access to the corresponding accounts on other servers, but since these keys are restricted to use from the ClonePanel system’s IP address even that doesn’t allow the attack to go any further.

So that’s how it works. All that remains is to set up a simple rsync transfer script on the hosting server similar to the sync script on the ClonePanel system and run it at intervals with a cron job. Here’s what I ended up with:

#!/bin/sh
# This program is intended to sync a slave server to the backup
# where SSH connections to the slave are not allowed.
# The program runs on the slave server (via cron)
# and connects from the slave to the backup server to sync the files.

# After syncing the databases are restored.

# Several constant values need to be filled in below.
# ClonePanel - Manages duplicate accounts on two or more webservers,
# including snapshot backups, monitoring and failover dns.
# Copyright (C)2006 Chris Cheers, Internet Lynx.
# Contact chris[at]clonepanel[dot]com.
# Internet Lynx, PO Box 7117, Mannering Park, NSW 2259, Australia
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
# of the License, or (at your option) any later version.

# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.

exec 2>&1
# Display errors

set -u
# Be strict about variable declaration

unset PATH
#avoid use of $PATH - limit script to system commands we choose

#start of constant definitions
RSYNC=/usr/bin/rsync
SSH=/usr/bin/ssh
MYSQL=/usr/bin/mysql
#most likely won't need to change these

REMOTEUSER=username
REMOTEHOST=backup.clonepanel.example.com
REMOTEPORT=443
REMOTEWEB=path/to/public_html
REMOTEDB=path/to/cp0.30_db
#details for backup server - change as required

AUTH=/hsphere/local/home/username/.ssh/private.key
#private key file giving access for REMOTEUSER to REMOTEHOST

HOMEDB=/hsphere/local/home/username/cp_db
HOMEWEB=/hsphere/local/home/username/example.com
#directories for local server - change as required

EXCLUDES=excludes.txt
#name of file containing filenames to exclude - one per line
#filenames of all files modified to suit this server

NUM_DATABASES=2
DATABASES=(username_db1 username_db2)
DATABASE_USERS=(username_dbuser1 username_dbuser2)
DATABASE_PASSWORDS=(secret1 secret2)
DATABASE_HOSTS=(dbhost1 dbhost2)
DATABASE_FILES=(username_db1 username_db2)

#end of constant definitions (stop editing here!)

#sync from backups

$RSYNC -avz --delete --exclude-from="$EXCLUDES" -e "$SSH -p $REMOTEPORT -i $AUTH" $REMOTEUSER@$REMOTEHOST:$REMOTEWEB/* $HOMEWEB/

#sync web files

$RSYNC -avz -e "$SSH -p $REMOTEPORT -i $AUTH" $REMOTEUSER@$REMOTEHOST:$REMOTEDB/* $HOMEDB/

#sync database dump files

#restore databases
for (( i = 0 ; i < $NUM_DATABASES ; i++ ))
do
  db=${DATABASES[$i]}
  db_user=${DATABASE_USERS[$i]}
  db_pass=${DATABASE_PASSWORDS[$i]}
  db_host=${DATABASE_HOSTS[$i]}
  db_file=${DATABASE_FILES[$i]}
  $MYSQL -u$db_user -h$db_host -p$db_pass $db <$HOMEDB/$db_file.sql
done

Conclusion: It seems to be possible, with some minor compromises. With more development the process could be better integrated into ClonePanel - perhaps using a similar technique to transfer a directory of special scripts which could then be run by the ClonePanel system as cgi.

More to follow as I find the time…

Monitor demo

October 8th, 2006

A quick demo of the monitor display. This is live data for real servers (names have been changed to protect the innocent!).

Update - 01 November 2006

Added a javascript style-switcher and summary information (this month’s percentage availability and number of days uptime).

Notes

Measurements are taken at 5 minute intervals, represented here by one pixel - a total of 12 hours range on the graphs shown. Javascript keeps the graphs updated (reloading the latest data file every 5 minutes) as long as you stay on the page.

Initial view is server load average. Use the “LTMFSD” buttons or the style changer in your browser (eg. View -> Page Style) for other parameters: page load time, free memory, swap memory, MySQL connection and disk space.

The coloured display is indicative only, based on roughly a log scale, so that small variations are visible. For example on the load average display there is a visible difference between a load of 0 and 0.2, yet the full scale covers up to 100.

To view actual measurements click anywhere on the graph (you need to be quite precise).

Normally the monitor would be inserted into any page just by adding the stylesheet links in the head and a javascript tag in the body. In this case I’ve used an iframe to avoid permission problems in Firefox and other Mozilla-based browsers. (The javascript loads data files from another domain).


ClonePanel on MS Windows XP

August 14th, 2006

I just installed the latest version of Cygwin and tried it out. The developers have done a truly great job with that because to my surprise it worked!

There was one small glitch - the IP address used on the remote server had some strange characters added, which initially killed the automated remote login. It turned out that I had an escape code entered in front of the IP address of the local server. On further experiment, when entering data at a prompt on the Cygwin terminal, using the cursor keys (up, down, left, right arrows) enters an escape sequence which is invisible but is read by the script. (The same thing happens using PuTTY connecting to a Linux server except that the characters are visible, so are easily deleted.)

So the fix is not to use the arrow keys when prompted for input (backspace seems ok). If you do have problems then check the config file carefully for extra characters - edit the file (eg. clonepanel/hosts/HOSTNAME/config) don’t just print it out, since these characters don’t display!

I’ve now successfully tested backup and sync, get and set dns zone on Cygwin. I’ll take this further when I get the time, unless anyone else would like to continue…?

If you’re interested in using Cygwin for ClonePanel you will need rsync, OpenSSH, openssl, openssl-devel and cron installed in addition to the defaults - just select these from the list during setup. rsync and OpenSSH are under “Net”, cron is under “Admin”, openssl and openssl-devel under “Libs”. Nano / pico fans and anyone wanting a simple easy-to-use editor should also select nano from the “Editors” section.

Edit 1: Added openssl and openssl-devel to list of required modules after testing get_dns and set_dns scripts (these are libraries required by the Net::DNS perl modules).

Edit 2: Changed glitch explanation in the light of further investigation (original below).

I’ll try to work out a fix for this but in the meantime the work-around is to set up the new account with ./account add as in the standard instructions. It will set up the remote key, attempt to test it and fail. Then go into the account on the host server and edit the .ssh/authorized_keys file. On the last line you should see something like:

from=”172.31.255.0″,command=”/home/username/cp0.30/scripts/sync_r” ssh-dss AAA…

Where the IP address and username would be whatever you just entered. This is followed by a long string of characters that make up the key.

If you see other characters between the from=” and your IP address, delete them and save the file.

Then back on the cygwin computer, type:

./sync_remote -u username -H HOSTNAME

to complete the setting up of the remote system (interrupted earlier by the error). If you get no errors this time you should be good to go!

CPAN modules to load

August 13th, 2006

Based on a standard Centos 4.3 distribution, the backup and sync functions of ClonePanel work immediately. However for manipulation of zone files and connecting to hosts to update nameservers using the WHM remote access key the following perl modules also need to be installed:

  • Net::DNS
  • Net::DNS::ZoneFile::Fast
  • HTML::TreeBuilder

The best way to do this, ensuring that all dependencies are satisfied, is to use CPAN - as root, type cpan and follow the prompts. Once cpan itself is installed and you have the cpan> prompt, the command “install modulename” will take care of everything!

Edit: This also applies to a Cygwin install, although in this case I had some tests fail that required a “force install Net::DNS::SEC” (a dependency of Net::DNS::ZoneFile::Fast).

0. Prerequisites

July 28th, 2006

Main system

ClonePanel is written for *nix systems, and uses several of their standard features (most notably rsync and hard links). I use Centos 4 but other linux distributions should run with little or no modification; some tweaking may be required for *bsd systems. In principle it should also run on MS Windows using Cygwin (untested so far, but I think rsync should work and apparently hard links are supported on NTFS file systems). If you find changes are needed please let me know what you do so I can improve the program for everyone.

Edit: With some small reservations it does seem to work on Windows using Cygwin (more details).

The main installation to run backups, monitoring and dns control requires a low-powered computer on a DSL connection with a static IP address*. If you prefer to run this system in a datacenter then a small VPS would be suitable. I suggest having disk space available at least 2 x that which you want to back-up.

For security I recommend NOT running any other services on the same system (web server, mail server, ftp server etc.). Access keys stored on the ClonePanel system would allow anyone with access to it to also access all connected systems.

As an example, a P3-500 with 128Mb memory on a 512/128k ADSL connection works without any problems and runs at very low load. So dig out that old PC, download the latest Centos distribution, choose a minimal install and you’re ready to go!

Web Hosts

ClonePanel backup and monitoring works with hosting ranging from dedicated server down to shared hosting plans - really the only requirement is that the host permits user-level SSH (secure shell) access. Many hosts will do this on request, even if they don’t advertise it, particularly if you explain that it is for taking backups using rsync. CPanel hosts usually use “jailshell” - a slightly limited version of the standard bash shell - this works just as well.

I’m listing some hosts I’ve used with brief reviews in the hosting category.

If you want to use ClonePanel to control DNS records (edit zone files) then you will need WHM access to a CPanel server (a reseller account) or a VPS / dedicated server that allows you to change the nameserver setup.

* Strictly speaking a static IP address is required only because it’s used as an additional security feature in the remote-access setup (the key will only work from a single IP address). If you really want to run on a dynamic IP then a small change to setup_remote_key will permit this for you.

1. Download and extract

July 28th, 2006

The latest version of the program will be found at clonepanel.com/latest/

Download using wget (or by any other method) and extract the files:

[tester@ACER ~]$ wget http://clonepanel.com/latest
–15:04:25– http://clonepanel.com/latest
=> `latest’
Resolving clonepanel.com… 205.134.251.130
Connecting to clonepanel.com|205.134.251.130|:80… connected.
HTTP request sent, awaiting response… 302 Found
Location: http://www.clonepanel.com/downloads/clonepanel_0.30.tar.gz [following]
–15:04:26– http://www.clonepanel.com/downloads/clonepanel_0.30.tar.gz
=> `clonepanel_0.30.tar.gz’
Resolving www.clonepanel.com… 205.134.251.130
Connecting to www.clonepanel.com|205.134.251.130|:80… connected.
HTTP request sent, awaiting response… 200 OK
Length: 47,295 (46K) [application/x-tar]100%[====================================>] 47,295 45.29K/s15:04:27 (45.20 KB/s) - `clonepanel_0.30.tar.gz’ saved [47295/47295]
[tester@ACER ~]$ tar -xvzf clonepanel_0.30.tar.gz
cp0.30/
cp0.30/scripts/
cp0.30/scripts/commands
cp0.30/scripts/restore
cp0.30/scripts/monitor

[snipped]

cp0.30/hosts/
cp0.30/LICENSE.txt
cp0.30/accounts/
cp0.30/temp/
[tester@ACER ~]$

2. Run install script

July 28th, 2006

By default the archive unpacks into a directory “cp0.30″ (for the 0.30 version). You may want to rename this or create a symbolic link to it - I use a symlink called “cp”.

Change to the scripts directory and run the “install” script.

[tester@ACER ~]$ ln -s cp0.30 cp
[tester@ACER ~]$ cd cp
[tester@ACER cp]$ ls
accounts Cpanel hosts LICENSE.txt local remote scripts system
[tester@ACER cp]$ cd scripts
[tester@ACER scripts]$ ls
account database get_dns.sh mod_dns.pl rollover setup
colours dns_utils.pl host monitor setcron setup_remote_key
commands error_codes includes monitor.pl set_dns sync
config get_dns install restore set_dns.pl sync_remote
cronjob get_dns.pl mod_dns restoreclean set_status zone

[tester@ACER scripts]$ ./install

ClonePanel version 0.30, Copyright (C)2006 Chris Cheers
ClonePanel comes with ABSOLUTELY NO WARRANTY.
This is free software, and you are welcome to redistribute
it under certain conditions; read LICENSE.txt for details.

Enter a name to use for this host [ACER]
Enter a directory name for scripts and config on remote hosts [cp0.30] cp0.30
Enter a directory name for database dump files on remote hosts [cp0.30_db]
Writing settings to ./../system/config

ClonePanel version 0.30, Copyright (C)2006 Chris Cheers
ClonePanel comes with ABSOLUTELY NO WARRANTY.
This is free software, and you are welcome to redistribute
it under certain conditions; read LICENSE.txt for details.

Enter server numeric IP address: 172.31.255.0
Enter server A record [172.31.255.0]: 192.168.1.7
Enter nameserver IP address (default blank):
Enter template for home directory on this host [/home/_USERNAME_]:
Monitor this host (y/n): n
Upload monitor data to this host (y/n): n
Creating /home/tester/cp0.30/hosts/ACER/config
SERVER=’172.31.255.0′
NS=”
A=’192.168.1.7′
DNSUPDATE=’NONE’
MONITOR_IP=’NONE’
MONITOR_PATH=’cgi-bin/up.cgi’
MONITOR_HOST=”
PRIORITY=0
LOCATION=’USA’
MONITOR_RESULT_USER=”
MONITOR_RESULT_DIR=’public_html/monitor’

REMOTEHOST_HOME=’/home/_USERNAME_’

Done!
Install complete.
[tester@ACER scripts]$

The install script prompts for some basic information (on initial install you can probably accept the defaults) and writes them to a config file. Then it runs another script (”./host add”) to store information about the machine it’s running on. You need to enter accurate information at these prompts:

Server numeric IP address - On a dsl connection, this should be the static IP given to your connection (if you don’t know this, visit whatismyip.com) . On a VPS or dedicated server this should be the main IP assigned to your server - the one used by the server when it connects to others.

Server A record - The IP address you use to access this computer. On a dsl connection this will be the address on the local network, on a VPS or dedicated server again the main server IP.

Nameserver IP address - Normally this will be blank, but if you are running a nameserver on this computer then enter its assigned IP address here.

Template for home directory - Most linux servers use the form /home/username for user directories. Unless you have a very unusual system just hit Enter to accept the default.
Monitor this host - Since this is the backup system, and will be monitoring other hosts, you normally don’t want it to be monitored itself - press n

Upload monitor data to this host - Since this is the backup system, and will be monitoring other hosts, it will have the monitoring data already - press n

3. Set up hosts

July 28th, 2006

The ClonePanel system is now set up, but before it can do anything useful you need to enter information about the host systems it will connect to and the accounts on them.

This is done by entering the commands "./server add" and "./account add", and following the prompts.

[tester@ACER scripts]$ ./server add

ClonePanel version 0.30, Copyright (C)2006 Chris Cheers
ClonePanel comes with ABSOLUTELY NO WARRANTY.
This is free software, and you are welcome to redistribute
it under certain conditions; read LICENSE.txt for details.

Enter a name to use for this server: KATE
Enter server numeric IP address: 172.31.255.3
Enter server A record [172.31.255.3]:
Enter nameserver IP address (default blank): 172.31.255.3
Enter dns update method [NONE]: WHM
Enter template for home directory on this host [/home/_USERNAME_]:
Monitor this host (y/n): y
Enter monitor IP address [172.31.255.3]:
Enter monitor path [cgi-bin/up.cgi]:
Enter monitor domain name [172.31.255.3]: internetlynx.com.au
Enter monitor priority [1]:
Enter server location [USA]: AUS
Upload monitor data to this host (y/n): y
Enter username for account to hold results files: cheers
Enter path to results file directory [public_html/monitor]:
Creating /home/tester/cp0.30/hosts/KATE/config
SERVER=’172.31.255.3′
NS=’172.31.255.3′
A=’172.31.255.3′
DNSUPDATE=’WHM’
MONITOR_IP=’172.31.255.3′
MONITOR_PATH=’cgi-bin/up.cgi’
MONITOR_HOST=’internetlynx.com.au’
PRIORITY=1
LOCATION=’AUS’
MONITOR_RESULT_USER=’cheers’
MONITOR_RESULT_DIR=’public_html/monitor’

REMOTEHOST_HOME=’/home/_USERNAME_’

Done!
[tester@ACER scripts]$

Here we’ve specified a host server (it may be a shared or reseller account, VPS or dedicated server). Since we answered "y" to the monitoring question there was some more information needed - the IP, domain name and path to the monitor program. More about monitoring later.

At this point if you have other hosts (for example, if you want to mirror a web site onto a second server) you can define them in the same way. Or if you prefer this can be done later.

4. Set up accounts

July 28th, 2006

Next we set up an account for backup / mirroring. The account must be hosted on one of the hosts already defined.

Important warning: This setup creates a remote-access key for each account, allowing login without password. If anyone were to get access to your ClonePanel account they would also be able to read and write to all the remote accounts set up.

So, if you still want to go ahead (!) enter "./account add" and follow the prompts:

[tester@ACER scripts]$ ./account add

ClonePanel version 0.30, Copyright (C)2006 Chris Cheers
ClonePanel comes with ABSOLUTELY NO WARRANTY.
This is free software, and you are welcome to redistribute
it under certain conditions; read LICENSE.txt for details.

Enter host name (nickname): KATE
Enter account username: clonepan
Enter extra config options now (<Return> to finish).
Examples: REMOTEHOST_USERNAME=fred or MIRROR_DIR_WEB=public_html
(usually only needed on non-CPanel hosts or where username differs from one host to another):
Creating directory ./../accounts/clonepan
Role defaults to MASTER for new account

ClonePanel version 0.30, Copyright (C)2006 Chris Cheers
ClonePanel comes with ABSOLUTELY NO WARRANTY.
This is free software, and you are welcome to redistribute
it under certain conditions; read LICENSE.txt for details.

Generating public/private dsa key pair.
Your identification has been saved in /home/tester/cp0.30/scripts/../temp/cpc_dsa.
Your public key has been saved in /home/tester/cp0.30/scripts/../temp/cpc_dsa.pub.
The key fingerprint is:
5c:d2:32:6a:9e:1b:53:c5:54:54:21:07:92:49:90:22 tester@ACER
Keys created.
Now connecting to remote server at 172.31.255.3.
You should be prompted for a password to the clonepan account.
The authenticity of host ‘172.31.255.3 (172.31.255.3)’ can’t be established.
RSA key fingerprint is ed:c1:8f:dd:1b:77:34:53:c2:4f:e6:19:d3:a4:ab:68.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added ‘172.31.255.3′ (RSA) to the list of known hosts.
clonepan@172.31.255.3’s password: ***********
stdin: is not a tty
Remote setup done!
Now to test the remote access key…
stdin: is not a tty
Remote access tested OK

ClonePanel version 0.30, Copyright (C)2006 Chris Cheers
ClonePanel comes with ABSOLUTELY NO WARRANTY.
This is free software, and you are welcome to redistribute
it under certain conditions; read LICENSE.txt for details.

stdin: is not a tty
building file list … done
colours
databases/
error_codes
rconfig
roles
scripts/
scripts/includes
scripts/moveallmail.pl
scripts/post_process
scripts/pre_process
zones/

sent 8078 bytes received 148 bytes 3290.40 bytes/sec
total size is 16850 speedup is 2.05
Sync complete for clonepan (clonepan) on KATE
Account setup complete
[tester@ACER scripts]$

If all goes as it should (indicated by the messages in green above) the account will be set up and ready to take backups. If not, first check that you have SSH access to the server you’re setting up and that you’re using the correct username and password. Then check the error code against the list in scripts/error_codes. If you have problems please post them here so that others can also see the answers.

5. Set up databases

July 28th, 2006

If your web sites are all static HTML then you can skip this section, but modern sites often have at least some database-driven content and many are totally dynamic. For such sites backing up the files would be futile - most of the important data is in a database.

Here we set up ClonePanel with the information needed to backup all databases.

Important - ClonePanel stores a username and password able to access each database. CPanel permits you to use the main account username and password, or even the reseller password to access databases - YOU MUST NOT USE THESE HERE. ALWAYS CREATE A DATABASE USER TO ACCESS THE DATABASE(S) AND ENTER THAT INFORMATION HERE.

This is because the information collected here will be stored on the remote account, because that’s where the database will be dumped or restored. As such the way the database login is stored is no more of a risk than using any application’s standard config file - which also must never contain the account password for the same reason. A future version of ClonePanel could perhaps use remote access to MySQL via a secure tunnel.

If you’re following this in sequence then it will come as no surprise that the command to add a database is "./database add".

[tester@ACER scripts]$ ./database add

ClonePanel version 0.30, Copyright (C)2006 Chris Cheers
ClonePanel comes with ABSOLUTELY NO WARRANTY.
This is free software, and you are welcome to redistribute
it under certain conditions; read LICENSE.txt for details.

Enter CPanel account username: clonepan
Enter full database name: clonepan_wp
Enter database username [clonepan_wp]:
Enter database password: secret
Enter database tables (default blank):
Enter database hostname (default blank):
Creating ./../accounts/clonepan/databases/1
Changes made must be synchronised with remote host(s)
Run sync program now? (y/n): y

ClonePanel version 0.30, Copyright (C)2006 Chris Cheers
ClonePanel comes with ABSOLUTELY NO WARRANTY.
This is free software, and you are welcome to redistribute
it under certain conditions; read LICENSE.txt for details.

stdin: is not a tty
building file list … done
colours
databases/
databases/1
error_codes
rconfig
roles
scripts/
scripts/includes
scripts/moveallmail.pl
scripts/post_process
scripts/pre_process
zones/

sent 663 bytes received 332 bytes 663.33 bytes/sec
total size is 16942 speedup is 17.03
Sync complete for clonepan (clonepan) on KATE
Add database done!
[tester@ACER scripts]$ ./sync -u clonepan

After adding a database you must sync the ClonePanel data with the remote account(s). This can be done manually with "./sync_remote" or by answering "y" when prompted. If you want to add more than one database then you only need to sync data after defining the last one.

At this point (finally!) the basic setup is done and we’re ready to back-up the web site.