Zum Inhalt springen

Fedora-Laptop

Aus superMassive

autofs, CIFS & Sync-Dienst

Einrichtung und Betrieb auf DEFNLT0332


Stand: April 2026

Diese Dokumentation beschreibt die vollständige Einrichtung von:

  • autofs – automatisches Einbinden von CIFS/Samba-Shares
  • CIFS-Mount – Verbindung zum Samba-Server 172.24.1.30
  • Sync-Dienst – automatische Synchronisation nach Systemstart

2. Voraussetzungen

[Bearbeiten | Quelltext bearbeiten]

Folgende Pakete müssen installiert sein:

sudo dnf install autofs cifs-utils rsync samba-client

3. Credentials-Datei

[Bearbeiten | Quelltext bearbeiten]

Die Credentials-Datei enthält Benutzername und Passwort für den Samba-Server. Wichtig: Die Domain wird NICHT als eigene Zeile angegeben, sondern direkt an den Benutzernamen angehängt.

# /home/hhepting/Schreibtisch/Hotline/credentials/smb-credentials-avi.txt

username=DOMAIN\benutzername

password=PASSWORT

Keine domain=-Zeile verwenden! Das führt zu 'Permission denied (13)' beim Mount.

3.2 Berechtigungen absichern

[Bearbeiten | Quelltext bearbeiten]

chmod 600 /home/hhepting/Schreibtisch/Hotline/credentials/smb-credentials-avi.txt

3.3 Verbindung testen

[Bearbeiten | Quelltext bearbeiten]

smbclient -L //172.24.1.30 -A /home/hhepting/Schreibtisch/Hotline/credentials/smb-credentials-avi.txt

4. autofs-Konfiguration

[Bearbeiten | Quelltext bearbeiten]

4.1 /etc/auto.master

[Bearbeiten | Quelltext bearbeiten]

Folgenden Eintrag in /etc/auto.master hinzufügen (oder sicherstellen dass er vorhanden ist):

/mnt/cifs /etc/auto.cifs --timeout=60 --ghost

--timeout=60 Unmount nach 60 Sekunden Inaktivität
--ghost Mountpunkt bleibt sichtbar auch wenn nicht gemountet

4.2 /etc/auto.cifs

[Bearbeiten | Quelltext bearbeiten]

Vollständiger Inhalt der Datei /etc/auto.cifs:

projekte -fstype=cifs,credentials=/home/hhepting/Schreibtisch/Hotline/credentials/smb-credentials-avi.txt,\

        uid=1000,gid=1000,iocharset=utf8,file_mode=0664,dir_mode=0775 ://172.24.1.30/projekte/ 

maintenance -fstype=cifs,credentials=/home/hhepting/Schreibtisch/Hotline/credentials/smb-credentials-avi.txt,\

           uid=1000,gid=1000,iocharset=utf8,file_mode=0664,dir_mode=0775 ://172.24.1.30/projekte/Maintenance 
fstype=cifs Dateisystemtyp Samba/CIFS
credentials=... Pfad zur Credentials-Datei
uid=1000 / gid=1000 Besitzer der gemounteten Dateien (ggf. anpassen)
iocharset=utf8 Zeichenkodierung für Umlaute
file_mode=0664 Standardberechtigungen für Dateien
dir_mode=0775 Standardberechtigungen für Verzeichnisse

4.3 autofs aktivieren und starten

[Bearbeiten | Quelltext bearbeiten]

sudo systemctl enable autofs

sudo systemctl start autofs

4.4 Nach Konfigurationsänderungen

[Bearbeiten | Quelltext bearbeiten]

Vor dem Neustart unbedingt aus dem /mnt/cifs-Verzeichnis herauswechseln, sonst bleibt der Mount 'busy'.

cd /

sudo systemctl restart autofs

5. Automatischer Sync-Dienst

[Bearbeiten | Quelltext bearbeiten]

5.1 Skript /usr/local/bin/sync-cifs.sh

[Bearbeiten | Quelltext bearbeiten]

Das Skript synchronisiert beim Systemstart eine Liste von CIFS-Verzeichnissen in lokale Zielverzeichnisse.

#!/bin/bash

LOGFILE="/var/log/sync-cifs.log"

TIMESTAMP=$(date '+%Y-%m-%d %H:%M:%S')

# Liste der Sync-Jobs: "QUELLE|ZIEL"

SYNC_JOBS=(

"/mnt/cifs/projekte/Maintenance|/home/hhepting/Schreibtisch/Hotline/Maintenance"

# Weitere Einträge nach dem gleichen Schema:

# "/mnt/cifs/projekte/AndererOrdner|/home/hhepting/Schreibtisch/AndererOrdner"

)

echo "[$TIMESTAMP] Starte Synchronisation..." >> "$LOGFILE"

for JOB in "${SYNC_JOBS[@]}"; do

SRC="${JOB%%|*}"

DST="${JOB##*|}"

if [ ! -d "$SRC" ]; then

echo "[$TIMESTAMP] FEHLER: Quelle nicht erreichbar: $SRC" >> "$LOGFILE"

continue

fi

mkdir -p "$DST"

rsync -av --delete "$SRC/" "$DST/" >> "$LOGFILE" 2>&1

STATUS=$?

if [ $STATUS -eq 0 ]; then

echo "[$TIMESTAMP] OK: $SRC -> $DST" >> "$LOGFILE"

else

echo "[$TIMESTAMP] FEHLER (rsync $STATUS): $SRC -> $DST" >> "$LOGFILE"

fi

done

echo "[$TIMESTAMP] Synchronisation abgeschlossen." >> "$LOGFILE"

Skript ausführbar machen:

sudo chmod +x /usr/local/bin/sync-cifs.sh

5.2 Logfile anlegen

[Bearbeiten | Quelltext bearbeiten]

sudo touch /var/log/sync-cifs.log

sudo chown hhepting:hhepting /var/log/sync-cifs.log

5.3 Systemd-Unit /etc/systemd/system/sync-cifs.service

[Bearbeiten | Quelltext bearbeiten]

[Unit]

Description=Synchronisiert CIFS-Shares nach lokalem Verzeichnis

After=autofs.service network-online.target

Requires=autofs.service

Wants=network-online.target

[Service]

Type=oneshot

ExecStartPre=/bin/sleep 5

ExecStart=/usr/local/bin/sync-cifs.sh

User=hhepting

StandardOutput=journal

StandardError=journal

RemainAfterExit=yes

[Install]

WantedBy=multi-user.target

ExecStartPre=/bin/sleep 5 gibt autofs etwas Zeit zum Initialisieren bevor der Sync startet.

5.4 Dienst aktivieren

[Bearbeiten | Quelltext bearbeiten]

sudo systemctl daemon-reload

sudo systemctl enable sync-cifs.service

sudo systemctl start sync-cifs.service

6. Weitere Sync-Jobs hinzufügen

[Bearbeiten | Quelltext bearbeiten]

Um einen weiteren Ordner zu synchronisieren, in /usr/local/bin/sync-cifs.sh die SYNC_JOBS-Liste erweitern:

SYNC_JOBS=(

"/mnt/cifs/projekte/Maintenance|/home/hhepting/Schreibtisch/Hotline/Maintenance"

"/mnt/cifs/projekte/NeuerOrdner|/home/hhepting/Schreibtisch/NeuerOrdner"

)

Danach den Dienst neu starten:

sudo systemctl restart sync-cifs.service

7. Diagnose & Fehlerbehebung

[Bearbeiten | Quelltext bearbeiten]

journalctl -u autofs -n 50 --no-pager

7.2 autofs im Vordergrund (verbose)

[Bearbeiten | Quelltext bearbeiten]

sudo systemctl stop autofs

sudo automount -f -v -d 2>&1 | head -60

# In zweitem Terminal:

ls /mnt/cifs/projekte/

7.3 Direkter Mount-Test

[Bearbeiten | Quelltext bearbeiten]

sudo mount -t cifs //172.24.1.30/projekte /mnt/cifs/projekte \

-o credentials=/home/hhepting/Schreibtisch/Hotline/credentials/smb-credentials-avi.txt,\

uid=1000,gid=1000,iocharset=utf8

7.4 Sync-Log prüfen

[Bearbeiten | Quelltext bearbeiten]

tail -f /var/log/sync-cifs.log

sudo systemctl status sync-cifs.service

7.5 Häufige Fehler

[Bearbeiten | Quelltext bearbeiten]
Permission denied (13) Falsche Credentials oder domain= in der Credentials-Datei
key not found in map Pfad zu auto.cifs falsch oder Datei nicht lesbar
busy beim Restart Erst 'cd /' ausführen, dann systemctl restart autofs
Unable to open credentials file Tippfehler im Pfad zur Credentials-Datei prüfen