Cron Deployment

Run Mnemosyne consolidation and maintenance as scheduled batch processes.

Use Cases

  • Daily consolidation jobs
  • Periodic backups via disaster recovery module
  • Database maintenance

Crontab Example

# Edit crontab
crontab -e

# Daily consolidation at 3 AM via Hermes
0 3 * * * cd /path/to/project && hermes mnemosyne sleep >> /var/log/mnemosyne/consolidate.log 2>&1

# Daily backup at 4 AM via Python script
0 4 * * * /usr/local/bin/mnemosyne-backup --db /data/mnemosyne.db --dest /backups >> /var/log/mnemosyne/backup.log 2>&1

Consolidation via Hermes

Consolidation runs through the Hermes plugin command:

# Run consolidation manually
hermes mnemosyne sleep

# Or programmatically in Python
from mnemosyne import Memory

mem = Memory(db_path="/data/mnemosyne.db")
mem.sleep()  # Run consolidation
No Standalone Consolidate Command

There is no mnemosyne-consolidate CLI tool. Consolidation is only available via hermes mnemosyne sleep or by calling mem.sleep() programmatically.

Backup Script

#!/usr/bin/env python3
# /usr/local/bin/mnemosyne-backup

import argparse
from mnemosyne.dr.recovery import create_backup

def main():
  parser = argparse.ArgumentParser()
  parser.add_argument("--db", required=True)
  parser.add_argument("--dest", required=True)
  args = parser.parse_args()

  backup_path = create_backup(args.db, args.dest)
  print(f"Backup created: {backup_path}")

if __name__ == "__main__":
  main()

Monitoring Cron Jobs

# Add to crontab
MAILTO=admin@example.com

# Log to file
0 3 * * * cd /path/to/project && hermes mnemosyne sleep >> /var/log/mnemosyne/consolidate.log 2>&1
Cron Best Practice

Use absolute paths for all commands and files. Cron runs with a minimal PATH. Test scripts manually before adding to crontab.