IT - Hense

Was mache ich

Anleitungen

Ich schreibe Anleitungen die dir helfen können Dinge umzusetzen.

Installationen

Ich installiere verschieden Server mit den dazugehörigen Programmen. Wie zum Beispiel Nextcloud oder PI-Hole

Programmierung

Ich schreibe gerne Skripte in (Powershell, Shell und Bash) ebenfalls Beschäftige ich mich aktuell mit PHP und JavaSkript

Aus den Anleitungen

Nextcloud – Datenspeicher auf eine Mount Point umziehen

Ich wollte meinen Nextcloud Speicher auf mein NAS umziehen.

Bedeutet die Nextcloud läuft weiterhin auf einer VM nur die Hochgeladenen Dateien sollen auf dem NAS liegen.

Vorbereitungen

Als erstes musst du einen neuen User auf deinem NAS erstellen.

NAS Mounten

Gehe hierfür in den fstab

nano /etc/fstab
//IP-Adresse_vom_NAS/Freigabe_Ordner  /mountpoint_Verzeichniss cifs username=Username_vom_NAS,password=Passwort_vom_NAS,uid=33,gid=33 0 0

Systemlink erstellen

ln -s /Pfad/zum/MountPoint /Pfad/zum/symlink /Pfad/zum/Systemlink

Rechte setzen

chown -R www-data:www-data /Pfad/zum/Systemlink

chmod -R 755 /Pfad/zum/Systemlink

Nextcloud – Daten Automatisch löschen

Ich hatte die Anforderung das die Daten in der Nextcloud nach 30 Tagen automatisch gelöscht werden sollen. Dann habe ich mich hingesetzt und ein Bash Skripte geschrieben. Ebenfalls sollten bestimmte User ausgenommen werden. Das habe ich auch mit aufgenommen.

#!/bin/sh
# Script zum löschen der Nextcloud Dateien nach X Tagen

# 0 = 24 Stunden
LOESCHEN_NACH_TAGEN=29
NEXTCLOUD_DATA=/mnt/ncdata

dirs=$(find $NEXTCLOUD_DATA -maxdepth 1 -type d -printf "%f\n" | awk  '!match($0,/^(ncdata|Allgemein|appdata_oc65lc0lmz8d|root|files_external|\
Admin|\
8561CAA3-924D-4591-9AB4-2077C4076AD3|\
B8F060D2-A833-4F3D-AD19-4992243E587E|\
F3031267-8C27-4141-8826-6CA337742B67\
)$/)')

echo "\nFolgende Ordner werden gescannt:"
echo $dirs

for d in $dirs; do
    if [ -d "$NEXTCLOUD_DATA/$d/files" ]; then
      echo "\n\n#############################################################################"
      echo "\nPruefe auf Daten im Benutzerordner $NEXTCLOUD_DATA/$d/files - diese Dateien werden gelöscht:"
      find $NEXTCLOUD_DATA/$d/files/ -type f -ctime +$LOESCHEN_NACH_TAGEN -delete
      find $NEXTCLOUD_DATA/$d/files/ -mindepth 1 -type d -ctime +$LOESCHEN_NACH_TAGEN -delete
      echo "\nExplizite Bereinigung und Pruefung des Benutzers $d auf Konsistenz"
      sudo -u www-data /usr/bin/php /var/www/nextcloud/occ files:scan --path $d/files
    else
      echo "\n\n#############################################################################"
      echo "\n$d wird uebersprungen, da der Ordner $NEXTCLOUD_DATA/$d/files nicht vorhanden ist"
    fi
done


for d in $dirs; do
    if [ -d "$NEXTCLOUD_DATA/$d/files_trashbin/files" ]; then
      echo "\n\n#############################################################################"
      echo "\nPruefe auf Daten im Benutzerordner $NEXTCLOUD_DATA/$d/files - diese Dateien werden gelöscht:"
      find $NEXTCLOUD_DATA/$d/files/ -type f -ctime +$LOESCHEN_NACH_TAGEN -delete
      find $NEXTCLOUD_DATA/$d/files/ -mindepth 1 -type d -ctime +$LOESCHEN_NACH_TAGEN -delete
      echo "\nExplizite Bereinigung und Pruefung des Benutzers $d auf Konsistenz"
      sudo -u www-data /usr/bin/php /var/www/nextcloud/occ files:scan --path $d/files
    else
      echo "\n\n#############################################################################"
      echo "\n$d wird uebersprungen, da der Ordner $NEXTCLOUD_DATA/$d/files nicht vorhanden ist"
    fi
done


echo "\n\n#############################################################################"
echo "\nFinale Bereinigung und pruefen der Benutzerdaten auf Konsistenz"
sudo -u www-data /usr/bin/php /var/www/nextcloud/occ files:scan --all
sudo -u www-data /usr/bin/php /var/www/nextcloud/occ files:scan-app-data
sudo -u www-data /usr/bin/php /var/www/nextcloud/occ files:cleanup

echo "\nScript abgeschlossen"

Im Anschluss muss noch das Skript ausführbar gemacht werden und in den Crontab eingebunden werden.

sudo chmod +x ./Skriptname.sh
sudo crontab -e
0 0 * * * /root/nextcloud_autodelete.sh > /var/log/nextcloud_autodelete_`date +\%Y-\%m-\%d_\%H:\%M:\%S-cron.log`

Heimdall installation unter Linux im Docker

Was ist Heimdall

Heimdall ist ein Dashboard mit dem du dir all deine Webanwendungen organisieren kannst. Es ist auch möglich eine Suchzeile für Google, Bing und DuckDuckGo einzubinden.

Installation

Docker

apt-get update && apt-get upgrade -y

apt install docker.io docker-compose -y 

mkdir /heimdall

cd /heimdall

mkdir /heimdall-data

nano docker-compose.yml
version: "2.2"
services:
  heimdall:
    image: linuxserver/heimdall
    container_name: heimdall
    volumes:
      - /heimdall-data:/config
    environment:
      - PUID=1000
      - PGID=1000
      - TZ=Europe/Berlin
    ports:
      - 80:80
      - 443:443
    restart: unless-stopped
docker-compose up -d