{"id":24813580,"url":"https://github.com/zebrajaeger/disk-watcher","last_synced_at":"2025-03-25T18:23:09.549Z","repository":{"id":274500389,"uuid":"923094967","full_name":"zebrajaeger/disk-watcher","owner":"zebrajaeger","description":null,"archived":false,"fork":false,"pushed_at":"2025-01-27T17:51:50.000Z","size":9,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-01-27T18:27:15.477Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/zebrajaeger.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2025-01-27T16:29:02.000Z","updated_at":"2025-01-27T17:51:54.000Z","dependencies_parsed_at":"2025-01-27T18:37:26.946Z","dependency_job_id":null,"html_url":"https://github.com/zebrajaeger/disk-watcher","commit_stats":null,"previous_names":["zebrajaeger/disk-watcher"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zebrajaeger%2Fdisk-watcher","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zebrajaeger%2Fdisk-watcher/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zebrajaeger%2Fdisk-watcher/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zebrajaeger%2Fdisk-watcher/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/zebrajaeger","download_url":"https://codeload.github.com/zebrajaeger/disk-watcher/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245517424,"owners_count":20628342,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-01-30T15:50:45.264Z","updated_at":"2025-03-25T18:23:09.529Z","avatar_url":"https://github.com/zebrajaeger.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Disk Monitor\n\n## Beschreibung\n\nDisk Monitor ist ein Node.js-basiertes Tool, um die Füllgrade von Laufwerken auf einem Linux-Server zu überwachen. Es prüft periodisch den Speicherverbrauch und sendet bei Grenzwertüberschreitungen Warnmeldungen per E-Mail.\n\n## Features\n\n- Konfigurierbare Laufwerksüberwachung (Pfad, maximale Füllung, minimaler freier Speicherplatz).\n- Flexible Prüfintervalle per Cron-Ausdruck.\n- E-Mail-Warnungen bei Grenzwertüberschreitungen.\n- Zeitstempel und Priorität im Logging.\n- Anpassbare Konfigurations- und Logdateien per Kommandozeilenparameter.\n\n---\n\n## Installation\n\n1. **Voraussetzungen:**\n\n   - Node.js (mindestens v14).\n   - Ein Linux-System mit `df`-Befehl.\n\n2. **Installation:**\n\n   ```bash\n   npm install -g .\n   ```\n\n   Das Tool ist danach global verfügbar und kann über den Befehl `disk-monitor` aufgerufen werden.\n\n---\n\n## Benutzung\n\n### Kommandozeilenparameter\n\n- ``** / **``**:** Pfad zur Konfigurationsdatei. Standard: `config.json` im Arbeitsverzeichnis.\n- ``** / **``**:** Pfad zur Logdatei. Standard: `disk-monitor.log` im Arbeitsverzeichnis.\n\nBeispiel:\n\n```bash\n   disk-monitor --config /pfad/zur/config.json --logfile /pfad/zur/logdatei.log\n```\n\n---\n\n## Konfigurationsdatei\n\nDie Konfigurationsdatei (z. B. `config.json`) enthält Einstellungen im JSON-Format.\n\n### Beispiel `config.json`\n\n```json\n{\n  \"laufwerke\": [\n    {\n      \"laufwerkspfad\": \"/\",\n      \"maxFuellgrad\": 80,\n      \"minFreierSpeicher\": \"2GB\",\n      \"cronIntervall\": \"0 * * * *\",  \n      \"alarmIntervall\": \"1h\"\n    }\n  ],\n  \"mail\": {\n    \"host\": \"localhost\",\n    \"port\": 25,\n    \"security\": false,\n    \"username\": \"\",\n    \"password\": \"\",\n    \"from\": \"monitor@example.com\",\n    \"to\": \"admin@example.com\"\n  }\n}\n```\n\n### Beschreibung der Felder\n\n- ``**:**\n\n  - `laufwerkspfad`: Pfad des zu überwachenden Laufwerks.\n  - `maxFuellgrad`: Maximal erlaubter Füllstand in Prozent.\n  - `minFreierSpeicher`: Minimal erforderlicher freier Speicherplatz (z. B. `500MB`, `10GB`).\n  - `cronIntervall`: Prüfintervall als Cron-Ausdruck.\n  - `alarmIntervall`: Mindestzeit zwischen zwei E-Mail-Warnungen (z. B. `1h`, `30m`).\n\n- ``**:**\n\n  - `host`: SMTP-Host (Standard: `localhost`).\n  - `port`: SMTP-Port (Standard: `25`).\n  - `security`: SMTP-Verbindungssicherheit (true/false, Standard: `false`).\n  - `username`: Benutzername (Standard: leer).\n  - `password`: Passwort (Standard: leer).\n  - `from`: Absender-Adresse der E-Mail.\n  - `to`: Empf�nger-Adresse der E-Mail.\n\n---\n\n## Logdatei\n\nDas Tool schreibt Logs mit Zeitstempel und Priorität in die angegebene Logdatei.\n\n### Beispiel Log-Einträge:\n\n```plaintext\n[2025-01-27 15:30:00] [INFO] Starting disk monitoring...\n[2025-01-27 15:31:00] [INFO] Alert sent: Disk Alert: /\n[2025-01-27 15:32:00] [ERROR] Failed to send email: Connection refused\n```\n\n---\n\n## Lizenz\n\nMIT License\n\n---\n\n## Autor\n\nLars Brandt\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzebrajaeger%2Fdisk-watcher","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fzebrajaeger%2Fdisk-watcher","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzebrajaeger%2Fdisk-watcher/lists"}