Configure what files should be in what folders using an easy-to-read YAML config file.
- File Organization: Automatically move files based on their extension from one directory to another.
- Automated Backups: Set up scheduled backups for important directories using urbackup.
- Notification System: Get notified regarding specific events specified in the configuration file.
Install dirconfig using pip:
pip install dirconfigCreate a config.yml file in your working directory with your automation tasks. Here's an example configuration that organizes .jpg and .pdf files into separate directories:
tasks:
- name: Organize Downloads
type: file-organization
source: /path/to/your/source/directory
rules:
- extension: .jpg
destination: /path/to/your/destination/for/images
- extension: .pdf
destination: /path/to/your/destination/for/documents
backup:
- name: Backup Important Files
type: incremental-file # incremental-image, full-file, full-image
schedule: daily # weekly, monthly
retention: 7 # number of days to keep backups
connection:
server: http://your-backup-server:55414
username: foo
password: bar
directories:
- /path/to/your/important/directory
- /path/to/another/important/directorydirconfig is designed to run as a daemon, monitoring specified directories and automatically organizing files according to the configurations defined in your config.yml file.
You can generate a sample config.yml file using the following command:
dirconfig generateTo initiate dirconfig and begin the monitoring process, use the following command:
dirconfig startThis command starts dirconfig, which operates in the background. It will watch the source directories specified in your config.yml for any changes, organizing files according to your predefined rules.
Alternatively, to run dirconfig as a separate process, use the following command:
dirconfig start &To stop the dirconfig daemon, execute:
dirconfig stopThis command stops the background process of dirconfig, halting the monitoring and file organization tasks.
usage: dirconfig [-h] [--config CONFIG] [--log LOG] [--pid PID] {start,stop,generate}
dirconfig Daemon
positional arguments:
{start,stop,generate}
Dirconfig actions to perform
options:
-h, --help show this help message and exit
--config CONFIG Path to the configuration file
--log LOG Path to the log file
--pid PID Path to the PID fileFor long-term operation or deployment, integrating dirconfig with system services or process managers can offer more graceful management, including automatic restarts, logging, and simplified start/stop operations.
dirconfig welcomes enhancements and customization. If you're interested in adding new features or improving the tool, consider contributing to the source code. Your input and contributions are highly appreciated.
For more information on the Urbackup API, please refer to these resources:
*Important Note: For Windows the command-line tool is urbackupclient_cmd. Mac and Linux use urbackupclientctl.
Command Line Options for urbackupclientctl are as follows:
USAGE:
urbackupclientctl [--help] [--version] <command> [<args>]
Get specific command help with urbackupclientctl <command> --help
urbackupclientctl start
Start an incremental/full image/file backup
urbackupclientctl status
Get current backup status
urbackupclientctl browse
Browse backups and files/folders in backups
urbackupclientctl restore-start
Restore files/folders from backup
urbackupclientctl set-settings
Set backup settings
urbackupclientctl reset-keep
Reset keeping files during incremental backups
urbackupclientctl add-backupdir
Add new directory to backup set
urbackupclientctl list-backupdirs
List directories that are being backed up
urbackupclientctl remove-backupdir
Remove directory from backup setdirconfig is licensed under the MIT License. See the LICENSE file for more details.