Release: v2.3.0
This commit is contained in:
@@ -0,0 +1,93 @@
|
||||
#!/bin/bash
|
||||
###############################################
|
||||
# stream-recorder - Installations-Script
|
||||
# Richtet den systemd-Timer für die
|
||||
# automatische Zeitplanung ein.
|
||||
###############################################
|
||||
|
||||
set -euo pipefail
|
||||
|
||||
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
|
||||
SERVICE_NAME="stream-recorder"
|
||||
|
||||
echo ""
|
||||
echo "stream-recorder - Installation"
|
||||
echo "=============================="
|
||||
echo ""
|
||||
|
||||
# Root-Prüfung
|
||||
if [[ $EUID -ne 0 ]]; then
|
||||
echo "FEHLER: Dieses Script muss als root ausgeführt werden."
|
||||
echo " sudo $0"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Prüfe ob systemd vorhanden
|
||||
if ! command -v systemctl &>/dev/null; then
|
||||
echo "FEHLER: systemd ist nicht verfügbar."
|
||||
echo " Dieses Script benötigt systemd für die Zeitplanung."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Prüfe Abhängigkeiten
|
||||
if ! command -v ffmpeg &>/dev/null; then
|
||||
echo "ffmpeg nicht gefunden. Installiere ffmpeg..."
|
||||
apt-get update -qq && apt-get install -y -qq ffmpeg
|
||||
echo "ffmpeg installiert."
|
||||
fi
|
||||
|
||||
# Hauptscript ausführbar machen
|
||||
chmod +x "${SCRIPT_DIR}/stream-recorder.sh"
|
||||
|
||||
echo "Installationspfad: ${SCRIPT_DIR}"
|
||||
echo ""
|
||||
|
||||
# systemd Service erstellen
|
||||
cat > "/etc/systemd/system/${SERVICE_NAME}.service" <<EOF
|
||||
[Unit]
|
||||
Description=stream-recorder Scheduler
|
||||
After=network-online.target
|
||||
Wants=network-online.target
|
||||
|
||||
[Service]
|
||||
Type=oneshot
|
||||
ExecStart=${SCRIPT_DIR}/stream-recorder.sh scheduler
|
||||
KillMode=none
|
||||
StandardOutput=journal
|
||||
StandardError=journal
|
||||
EOF
|
||||
|
||||
# systemd Timer erstellen
|
||||
cat > "/etc/systemd/system/${SERVICE_NAME}.timer" <<EOF
|
||||
[Unit]
|
||||
Description=stream-recorder Scheduler Timer
|
||||
|
||||
[Timer]
|
||||
OnBootSec=30
|
||||
OnCalendar=*-*-* *:*:00
|
||||
AccuracySec=10
|
||||
|
||||
[Install]
|
||||
WantedBy=timers.target
|
||||
EOF
|
||||
|
||||
# systemd neu laden und Timer aktivieren
|
||||
systemctl daemon-reload
|
||||
systemctl enable "${SERVICE_NAME}.timer"
|
||||
systemctl start "${SERVICE_NAME}.timer"
|
||||
|
||||
echo "Installation abgeschlossen!"
|
||||
echo ""
|
||||
echo "Status:"
|
||||
systemctl status "${SERVICE_NAME}.timer" --no-pager 2>/dev/null || true
|
||||
echo ""
|
||||
echo "Der Scheduler prüft jetzt jede Minute die Job-Dateien"
|
||||
echo "und startet/stoppt Aufnahmen automatisch."
|
||||
echo ""
|
||||
echo "Nächste Schritte:"
|
||||
echo " 1. Job-Datei erstellen: cp jobs/templates/example-rtmp.job.dist jobs/mein-stream.job"
|
||||
echo " 2. Job-Datei bearbeiten: nano jobs/mein-stream.job"
|
||||
echo " 3. SCHEDULE_ENABLED=true setzen und Zeiten konfigurieren"
|
||||
echo " 4. Jobs prüfen: ./stream-recorder.sh list"
|
||||
echo ""
|
||||
echo "Deinstallation: sudo install/uninstall.sh"
|
||||
@@ -0,0 +1,61 @@
|
||||
#!/bin/bash
|
||||
###############################################
|
||||
# stream-recorder - Deinstallations-Script
|
||||
# Entfernt den systemd-Timer und stoppt
|
||||
# alle laufenden Aufnahmen.
|
||||
###############################################
|
||||
|
||||
set -euo pipefail
|
||||
|
||||
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
|
||||
SERVICE_NAME="stream-recorder"
|
||||
|
||||
echo ""
|
||||
echo "stream-recorder - Deinstallation"
|
||||
echo "================================="
|
||||
echo ""
|
||||
|
||||
# Root-Prüfung
|
||||
if [[ $EUID -ne 0 ]]; then
|
||||
echo "FEHLER: Dieses Script muss als root ausgeführt werden."
|
||||
echo " sudo $0"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Timer stoppen und deaktivieren
|
||||
if systemctl is-active --quiet "${SERVICE_NAME}.timer" 2>/dev/null; then
|
||||
echo "Stoppe Timer..."
|
||||
systemctl stop "${SERVICE_NAME}.timer"
|
||||
fi
|
||||
|
||||
if systemctl is-enabled --quiet "${SERVICE_NAME}.timer" 2>/dev/null; then
|
||||
echo "Deaktiviere Timer..."
|
||||
systemctl disable "${SERVICE_NAME}.timer"
|
||||
fi
|
||||
|
||||
# Service-Dateien entfernen
|
||||
if [[ -f "/etc/systemd/system/${SERVICE_NAME}.timer" ]]; then
|
||||
rm -f "/etc/systemd/system/${SERVICE_NAME}.timer"
|
||||
echo "Timer-Datei entfernt."
|
||||
fi
|
||||
|
||||
if [[ -f "/etc/systemd/system/${SERVICE_NAME}.service" ]]; then
|
||||
rm -f "/etc/systemd/system/${SERVICE_NAME}.service"
|
||||
echo "Service-Datei entfernt."
|
||||
fi
|
||||
|
||||
systemctl daemon-reload
|
||||
|
||||
# Laufende Aufnahmen stoppen
|
||||
echo ""
|
||||
read -rp "Alle laufenden Aufnahmen stoppen? [j/N] " stop_all
|
||||
if [[ "$stop_all" =~ ^[Jj]$ ]]; then
|
||||
"${SCRIPT_DIR}/stream-recorder.sh" stop-all 2>/dev/null || true
|
||||
echo "Aufnahmen gestoppt."
|
||||
fi
|
||||
|
||||
echo ""
|
||||
echo "Deinstallation abgeschlossen."
|
||||
echo ""
|
||||
echo "Hinweis: Die Job-Dateien, Konfiguration und Aufnahmen"
|
||||
echo " wurden NICHT entfernt."
|
||||
Reference in New Issue
Block a user