Scope of the project is to create a backup and restore script for servers running Froxlor Server Management Panel (open source, see details on [login to view URL]).
A running demo is available on http://demo.froxlor.org.
Needed features are inspired from Plesk backup/restore utility (see details on [login to view URL])
Current servers are running Debian Lenny or Squeeze, but the script should run on any supported distro (see [login to view URL]).
Preferable, should be a single bash script that will do backup and restore, depending on supplied parameters.
The script will be called manually or from cron, and will always run with elevated privileges.
As I see now, types of objects needed to store and retrieve are:
- system settings: control panel database and a list of configurable files (eg /etc/apache2, /etc/postfix, etc)
- client's data: website files, website logs, databases and email accounts
- domain's data: same as client data, but for a single domain (a client could have several domains in his account)
The script should be able to backup and restore:
- a complete backup (system settings + all clients)
- system settings
- all clients
- all domains
- a single client (all domains)
- a single domain (files, databases, logs, emails)
- a single database
- a single email account
Backup's should be compress with tar or zip (configurable).
Backup's should be kept for a number of days (configurable).
Backup's should be stored (and/or read, on restore) in a default configurable path or in a give path.
Optional features (not required, but nice to have):
- Sync backups to FTP (man lftp)
- Sync backup to Amazon S3
Notes:
- A backup could be made on a server and restored to another.
a) The script should check if IP addresses are different and use default IP for the new server (see web interface Server -> Settings -> System settings -> Default IP/Port)
b) The script should check if same client id exists on target server and ask how to proceed: overwrite, overwrite-all, skip, skip-all
- If data already exists (client, domain, email account), the script should ask how to proceed: overwrite, overwrite-all, skip, skip-all
I will give specific info about:
- where are settings stored in the system
- what files needs to be included in each backup
Development and testing will be done on your own servers (at least 2, in order to test backup and restore on different servers).
I will require snapshots of the script in order to test it on staging servers.
Final testing will be made by me, on live servers.
Payment will be made after project is complete and all tests succeeded, error free.
Only bid if:
- You read all the above info
- You understand above requirements
- You speak good or fluent English and/or Romanian
- You are comfortable with bash scripts
- You are comfortable with command line system administration
- You are ready to work fast and error free
- You are able to communicate by email [optionally by Skype, not required]
- You do not place a bid asking money in advance
Please use Public Clarification Board or PM if you need more info.
Hi,
I am a Linux Professional, not active on freelancer but very active on my work. I am expert in shell scripting and Linux commands. I want to tell that try my services, you will come back to me again.
Thanks,
LinuxBuzz
Hi
I have 10+ years of experience in Linux administration and I often automate existing backup procedure using shell scripts. Please check my profile for details.
Samuel
Considering just a scripting solution the final implementation maybe reconfigured based on the final needs.
Scripts will be able to create
1) initial full backup
2) daily update incremental backup
3) full incremental backup.
When backup is completed and the target device/directory exist a script will automatically sync the collected archives into that device/directory. A target device may not available at the time of backup.
A separate sync script may be used to synchronize changes when device is available by the administrator.
Additional ability to set a specific markers to avoid backing up some folders that shouldn't be a part of a backup.
A backup is fully "file-based" i.e. it does backup only for directories.
Database backup should be done separately by running a script before a backup has actually started and the backup is placed into one of the folders.
Restoring could be done into separate location using a
1) full restore
2) restore last N incremental updates (this is needed when the entire system has restored from an image and to save time when the only most recent updates are needed).
3) partial restore till predefined archive number.
All configuration for the backup is completed locally according to provided instructions.
This is scripting only solution, no GUI or Web access to run backup jobs. Backup script(s) should be added to system cron.
what i under stand in this project that i will create scripts for handling the backup and handling restore on these servers , it will take 1 day to under stand more details ,1 day to check the servers that i will run the scripts on and 4 days for creating the scripts , 2 days for testing the scripts and 2 days for any more things need to be done and 2 days for the new requirements