PHP Classes

File: README.md

Recommend this page to a friend!
  Classes of Andi P. Trix   PHP Backup   README.md   Download  
File: README.md
Role: Documentation
Content type: text/plain
Description: Auxiliary data
Class: PHP Backup
Backup data using several methods
Author: By
Last change: Update of README.md
Date: 9 months ago
Size: 4,588 bytes
 

Contents

Class file image Download
PHP Backup ========== This set of scripts provide a framework for making backups using the PHP language. It was developed and tested in Ubuntu using PHP 5.5.9 but it might work with lower versions. Because it uses `pcntl_fork`, it does not run on Windows platforms. It supports out of the box 6 kind of backups: ftp using `wget`, mysql using `mysqldump`, filesystem and individual directories using `tar`, scp and postgresql. Requirements ------------ * PHP 5.5.9 on *nix platform (it might work with lower PHP versions) * the tar and bzip2 commands used by the directory and filesystem observers; * the wget command used by the ftp observer; * the mysqldump command used by the mysqldump observer; * the scp and sshpass commands used by the ssh observer; * the pg_dump command used by the psql observer; FTP and MySQL backup -------------------- * make the script executable: `chmod +x php-backup` * prepare the ini and the csv file * `cp ftp_and_mysql.ini.dist ftp_and_mysql.ini` * `touch ftp_and_mysql` * add the ftp and mysql login information in your ftp_and_mysql file * run the command: `./php-backup -i ftp_and_mysql.ini` Filesystem backup ----------------- This method iterates through a list of paths defined in a CSV file and it creates archives of each children directories (useful when you have all projects in the same directory). ### Usage * `cp filesystem.ini.dist filesystem.ini` and edit it to suit your needs * `cp filesystem.dist filesystem` * edit `filesystem` and add the parent directories, each on a new line * run the script: `./php-backup -i filesystem.ini` Directories and MySQL backup ---------------------------- This method reads a CSV file with records made out of a path to a project and the mysql info for that project. ### Usage * `cp directories_and_mysql.ini.dist directories_and_mysql.ini` and edit it to suit your needs * `cp directories_and_mysql.dist directories_and_mysql` * edit `directories_and_mysql` and add the project directory and the mysql info on the same line * run the script: `./php-backup -i directories_and_mysql.ini` Directories and PostgreSQL backup ---------------------------- This method reads a CSV file with records made out of a path to a project and the postgresql info for that project. ### Usage * `cp directories_and_postgresql.ini.dist directories_and_postgresql.ini` and edit it to suit your needs * `cp directories_and_postgresql.dist directories_and_postgresql` * edit `directories_and_postgresql` and add the project directory and the postgresql info on the same line * run the script: `./php-backup -i directories_and_postgresql.ini` SSH and MySQL backup ---------------------------- This method reads a CSV file with records made out of ssh login info and the project path on the server together with the mysql info for that project. ### Usage * `cp ssh_and_mysql.ini.dist ssh_and_mysql.ini` and edit it to suit your needs * `cp ssh_and_mysql.dist ssh_and_mysql` * edit `ssh_and_mysql` and add the ssh info and the mysql info on the same line * run the script: `./php-backup -i ssh_and_mysql.ini` **Note**: You can combine the observers in the ini file as you see fit. Extending --------- * create your namespace: `mkdir -p com/example/backup/observers` * `cd com/example/backup/observers` * `vi custom.class.php` * paste this code: ```php <?php namespace Com\Example\Backup\Observers; class Custom implements \SplObserver { protected $name = 'Custom Observer'; public function update(\SplSubject $subject) { //do your thing here } } ``` You might want to extend the `Common` class which already has implemented an `execute` method: ```php <?php namespace Com\Example\Backup\Observers; use Org\Impavidly\Backup\Observers\Common; class Custom extends Common { protected $name = 'Custom Observer'; public function update(\SplSubject $subject) { $command = "<some command>"; $status = $this->execute($subject, $command); return $status; } } ``` * add the observer class to the "observers" section of the ini file: `custom = Com\Example\Backup\Observers\Custom` * add your configuration in a new ini section, something like ``` [custom] name = value ``` accessible in the observer as `$subject->config['custom']['name']` * run the command: `./php-backup -i <some_ini_file>.ini` ### Companies using PHP-Backup * http://webkoenig.ch/ * http://agentur-am-see.ch/