PHPBU is a php tool that creates and encrypts backups, syncs your backups to other servers or cloud services and assists you monitor your backup creation. The software requires PHP >= 7.2, but old version exists for older PHP, and released under an open source license. PHPBU could be easily integrated with Laravel framework via laravel-phpbu.
To use it simply create an xml config file like :
<?xml version="1.0" encoding="UTF-8"?> <phpbu xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://schema.phpbu.de/5.0/phpbu.xsd"> <backups> <backup name="MyDatabase"> <!-- source --> <source type="mysqldump"> <option name="databases" value="mydbname"/> <option name="user" value="user.name"/> <option name="password" value="topsecret"/> </source> <!-- where should the backup be stored --> <target dirname="backup/mysql" filename="mysqldump-%Y%m%d-%H%i.sql" compress="bzip2"/> <!-- check the created backup --> <check type="SizeMin" value="10M"/> <!-- cleanup the backup location --> <!-- as soon as all created backups exceed 500MB remove oldest backups --> <cleanup type="Capacity"> <option name="size" value="500M"/> </cleanup> </backup> </backups> </phpbu>
Then create a backup directory that holds all created backups and put the xml config file created in your working directory. Then run the phpbu.phar and you should get something like this :
phpbu 5.0.0 by Sebastian Feldmann and contributors Configuration read from /var/www/acme/phpbu.xml.dist Time: 44 ms, Memory: 1.00Mb backup mysql: OK | executed | skipped | failed | ----------+----------+---------+--------+ checks | 1 | | 0 | syncs | 0 | 0 | 0 | cleanups | 1 | 0 | 0 | ----------+----------+---------+--------+ OK (1 backup, 1 check, 0 syncs, 1 cleanup)
Some of the PHPBU features :
- Creating backups
- ArangoDB
- Directories
- Elasticsearch
- InfluxDB
- Ldap
- MongoDB
- MySQL
- Percona XtraBackup
- PostgreSQL
- Redis
- Compress backups
- bzip2
- gzip
- xz
- zip
- Validate backups
- Check min size
- Comparing with previous backups
- Encrypting backups
- mcrypt
- openssl
- Sync backups to other locations
- Amazon s3
- Azure Blob
- Dropbox
- FTP
- Google Drive
- OpenStack
- rsync
- SFTP
- Softlayer
- Yandex Disk
- Cleanup your local backup
- Delete backups older x
- Store only x MB of backups
- Keep only last x backups
- Keep less backups for more distant past
- Writing backup reports
- Text file
- Json file
- Prometheus
- Telegram
- Webhook
More information at https://phpbu.de/