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 dirconfig
Create 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/directory
dirconfig 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 generate
To initiate dirconfig and begin the monitoring process, use the following command:
dirconfig start
This 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 stop
This 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 file
For 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 set
dirconfig is licensed under the MIT License. See the LICENSE
file for more details.