You can create a simple json logfile with PHPBU's json logger.
Example 10.1: json XML example
<!-- create a json logfile --> <log type="json" target="backup/log.json"/>
PHPBU uses SwiftMailer to send backup reports to one or more configured E-Mail-Addresses.
If you just want to get notified if something went wrong,
you can use the sendOnlyOnError
option to not send any E-Mail on a successful backup.
Table 10.1. Capacity-Options
Name | Value | Required | Default | Description |
---|---|---|---|---|
recipients | string | yes | - | List of emails separated by semicolon. |
sendOnlyOnError | string | no | false | Sending reports only if something goes wrong. |
subject | string | no | PHPBU Backup Report from $HOSTNAME | E-Mail subject of the backup report. |
transport | string | yes | - | SwiftMailer Transport that's used to send the E-Mail (mail, sendmail, smtp, null). |
sender.mail | string | phpbu@hostname | - | The sender E-Mail-Address |
sender.name | string | no | OS-User | The sender name. |
sender.name | string | no | OS-User | The sender name. |
sendmail options | ||||
sendmail.path | string | no | - | Path to local sendmail binary. |
sendmail.options | string | no | - | Sendmail options (e.g. -bs). |
SMTP options | ||||
smtp.port | string | no | 25 | Port to use to connect to SMTP server. |
smtp.host | string | no | - | SMTP hostname. |
smtp.username | string | no | - | The SMTP login. |
smtp.password | string | no | - | The SMTP password. |
smtp.encryption | string | no | - | Type of encryption (e.g. ssl). |
Example 10.3: mail XML example
<!-- use mail to keep up to date with you backup creation --> <log type="mail"> <option name="transport" value="mail"/> <option name="recipients" value="user.name@example.com"/> </log>
Example 10.4: mail JSON example
{ "type": "mail", "options": { "transport": "mail", "recipients": "user.name@example.com" } }
You can call a webhook and phpbu will send report data to the webhook.
Table 10.2. Webhook-Options
Name | Value | Required | Default | Description |
---|---|---|---|---|
uri | string | no | - | URI to call |
username | string | no | - | Basic auth user name. |
password | string | no | - | Basic auth password. |
method | string | no | get | HTTP request method (get, post). |
contentType | string | no | application/json | Post method request body content type. |
template | string | no | - | A template to use for the request body For example if you want to you xml over json. |
Example 10.5: webhook XML example
<!-- call webhook --> <log type="webhook"> <option name="uri" value="http://example.com/hook"/> </log>
Example 10.6: webhook JSON example
{ "type": "webhook", "options": { "transport": "uri", "recipients": "http://example.com/hook" } }
If you change the request method to post by default you will receive a request body in the following format.
Example 10.7: Default request body example
{ "status": 0, "timestamp": 12783781381, "duration": 234.3402, "backupCount": 1, "backupFailed": 0, "errorCount": 0, "errors": [], "backups": [ { "name": "status": "checks": { "executed": 1, "failed": 0, }, "crypt": { "executed": 1, "skipped": 0, "failed": 0, }, "syncs" => { "executed": 1, "skipped": 0, "failed": 0 }, "cleanup" => { "executed": 1, "skipped": 0, "failed": 0 } } ] }
If this format doesn't work for you, you can define your own request body with a template.
Example 10.8: Template example
<?xml version="1.0" encoding="UTF-8"?> <report> <status>%status%</status> <date>%timestamp%</date> <backups> %%backup%% <backup> <name>%name%</name> <status>%status%</status> </backup> %%backup%% </backups> <errors> %%error%% <error class="%class%" message="%message%" file="%file%" line="%line%" /> %%error%% </errors> </report>