Backup Personal Files
Create a compressed archive for each personal files for all users.
![](https://pydio.com/sites/default/files/git-importer/docs_cells_flows/images/1_preset_flows/capture-backup-personal-files.png)
This flow can be useful for automatic backups, by pointing the final archive generation to e.g. an external S3 encrypted datasource.
How It Works
- Combine various criteria to list all "internal" users logins
- Compute their personal folder
Pass this location as input to the "Compress" action.
Last action is parametrized to select the archive format, and its target location.
Parameters
Name | Type | Default | Mandatory | Description |
---|---|---|---|---|
ArchivePrefix | text | daily- | false | Used to build archive name. |
ArchivePath | text | /pydiods1/backups | true | Path where to store all archives. |
Format | select, possible values: Zip (zip), Tar.gz (tar.gz) | zip | true | Archive format |
Trigger Type
Scheduled
JSON Representation
{
"Label": "Backup Personal Files",
"Owner": "pydio.system.user",
"Metadata": {
"Description": "Create a compressed archive for each personal files for all users",
"Icon": "mdi mdi-archive",
"TplCategory": "maintenance",
"Usage": "This flow can be useful for automatic backups, by pointing the final archive generation to e.g. an external S3 encrypted datasource.\n\n### How It Works\n\n * Combine various criteria to list all \"internal\" users logins\n * Compute their personal folder\n * Pass this location as input to the \"Compress\" action. \n \n Last action is parametrized to select the archive format, and its target location. "
},
"Schedule": {
"Iso8601Schedule": "R/2012-01-01T00:00:00.828696-09:00/PT24H"
},
"Actions": [
{
"ID": "actions.scheduler.log-input",
"Label": "User Personal",
"IdmSelector": {
"Query": {
"SubQueries": [
{
"type_url": "type.googleapis.com/service.Query",
"value": "Ci0KJ3R5cGUuZ29vZ2xlYXBpcy5jb20vaWRtLlVzZXJTaW5nbGVRdWVyeRICSAEQAQ=="
},
{
"type_url": "type.googleapis.com/service.Query",
"value": "CkYKJ3R5cGUuZ29vZ2xlYXBpcy5jb20vaWRtLlVzZXJTaW5nbGVRdWVyeRIbCg9weWRpby5hbm9uLnVzZXJQAWoGc2hhcmVkEAE="
}
],
"Operation": 1
},
"Label": "List all internal users"
},
"Parameters": {
"internalLogger": "false",
"message": "User {{.User.Login}}",
"taskLogger": "true"
},
"ChainedActions": [
{
"ID": "actions.archive.compress",
"Label": "Zip user data",
"Description": "Create an archive for user data",
"NodesSelector": {
"Query": {
"SubQueries": [
{
"type_url": "type.googleapis.com/tree.Query",
"value": "ahhwZXJzb25hbC97ey5Vc2VyLkxvZ2lufX0="
}
],
"Operation": 1
},
"Collect": true,
"Label": "Find personal folder"
},
"Parameters": {
"format": "{{.JobParameters.Format}}",
"target": "{{.JobParameters.ArchivePath}}/{{.JobParameters.ArchivePrefix}}{{.User.Login}}-{{now | date \"2006-01-02\"}}.{{.JobParameters.Format}}"
}
}
]
}
],
"MaxConcurrency": 10,
"Parameters": [
{
"Name": "ArchivePrefix",
"Description": "Used to build archive name.",
"Value": "daily-",
"Type": "text"
},
{
"Name": "ArchivePath",
"Description": "Path where to store all archives.",
"Value": "/pydiods1/backups",
"Mandatory": true,
"Type": "text"
},
{
"Name": "Format",
"Description": "Archive format",
"Value": "zip",
"Mandatory": true,
"Type": "select",
"JsonChoices": "{\"zip\":\"Zip\",\"tar.gz\":\"Tar.gz\"}"
}
]
}
Back to top