List items are not in a prioritised order.
List item marks designate some intent.
These items are low-priority. It is recognised that they have merit and they have been given some thought but are, at present, not considered sufficiently important to invest the needed time. If a paying client wished one of them the priority would change but until that happens or the author's requirements change they are shelved.
This would probably a config parameter where you could either specify a file name or a syslog "facility" such as daemon or local3.
This would allow dirvish to schedule jobs that don't involve rsync but belong under the same process management as the main backups. Having to maintain multiple backup systems and schedulers can be a pain.
The date specifier of an expire rule would contain a designator set elsewhere in the config file. The value of the designator (expire action) would be a list of date-specs and actions to be done.
For example:
expire-rule wd { sun } md { 1-7 } expire-monthly expire-monthly +1 month clean-tree clean_list +6 months delete-tree +1 year delete-image
The actual format will probably differ and the image manager (dirvish-expire) will need to know what to do with the actions and record completion in the summary file to prevent repeats.
Probable actions would be:
delete-image | delete whole image including metadata. |
delete-tree | delete image tree leaving metadata. |
compress-tree | create a compressed archive of the tree (tree.cpio.gz) and delete the tree. |
clean-tree | lean the image tree by deleting files that match patterns in a file. |
run | run an executable/script. |
If reference == image don't delete tree and don't use --link-dest.
If reference != image and --replace, delete image before reuse because the delta from the reference image is most likely less than the reused image But if --inplace specified don't delete even if reference != image. Inplace is especially useful if the backup is incomplete and you wish to re-run it manually.
Most of the functionality is already documented in dirvish.conf(5) as comments not visible to man.
The scheduler would generate a priority ordered run queue of jobs that can be run and launch as many would be permitted by the Max-jobs and Max-load limits. When a job completes recalculate whether any jobs still on the queue can run (window and limits) and launch them. If the queue is empty rescan for jobs that may now be runnable. Exit when there are no running or runnable jobs.
The scheduler would use a /var/run/dirvish.pid file to prevent multiple dirvish-sched processes from running at once. The scheduler could be launched by cron at intervals.