Table des matières

Configurer un Raspberry Pi 3 sous Ubuntu server

Installation

50-cloud-init.yaml
# /etc/netplan/50-cloud-init.yaml netplan configuration file
network:
    ethernets:
        eth0:
            dhcp4: true
            optional: true
    version: 2
    # wifi setup informations
    wifis:
        wlan0:
            optional: true
            access-points:
                "SSID":
                    password: "*******"
            dhcp4: no
            addresses: [192.168.1.251/24]
            gateway4: 192.168.1.1
            nameservers:
                addresses: [192.168.1.1, 8.8.8.8]

À ce stade, le Raspberry Pi est connecté par wifi avec l'adresse IP 192.168.1.251

Compléments d'installation du serveur

Effacer le nom d'utilisateur et le mot de passe si le serveur est diffusé, et/ou rendre invalide le compte par défaut de msmtp pour éviter des envois erronés vers le serveur d'email !!

Ajustement de la timezone

Installation type sur un serveur LA(M)P : DokuWiki

Variante avec réinstallation d'un backup :

Le wiki est pré-configuré et (presque) opérationnel ! Réglages complémentaires de la configuration via le menu d’administration - “Paramètres de configuration” :

Exploitation

Dispositif USB externe

Script de sauvegarde et automatisation via crontab

Script de sauvegarde

#!/bin/bash
THESITE="wiki01"
THEDB="dbname"
THEDBUSER="dbuser"
THEDBPW="dbpwd"
THEDATE=`date +%F-%T`
# backup de la base de données NON UTILISÉ
#mysqldump -u $THEDBUSER -p${THEDBPW} $THEDB | gzip > ~/${THESITE}backups/files/dbbackup_${THEDB}_${THEDATE}.bak.gz
# backup des fichiers du site
#tar -czf ~/${THESITE}backups/files/sitebackup_${THESITE}_${THEDATE}.tar.gz /var/www/html/${THESITE}
tar -czf /media/usb/sauvegardes/sitebackup_${THESITE}_${THEDATE}.tar.gz /var/www/html/${THESITE}
# éliminer les fichier vieux de plus de 5 jours
find ~/backups/files/site* -mtime +5 -exec rm {} \;
find ~/backups/files/db* -mtime +5 -exec rm {} \;

Version après élimination d'erreurs, et sans effacement :

#!/bin/sh
THESITE="wiki01"
THEDATE=`date +%F-%H%M%S`
# backup des fichiers du site
tar -czf /media/usb/sauvegardes/sitebackup_${THESITE}_${THEDATE}.tar.gz /var/www/html/${THESITE}

Test du backup :

./backup.sh

Part of bash (version >=4.2) script to remove files in a given directory, older than 8 days, but leave files dated the first day of each month :

# Set the directory to clean up
DIR="~/backups/files/"

# Calculate the cutoff date
CUTOFF=$(date -d "8 days ago" +%s)

# Loop through the files in the directory
for FILE in "$DIR"/*
do
  # Check if the file is older than 8 days
  if [[ -f "$FILE" && $(date -r "$FILE" +%s) -lt $CUTOFF ]]
  then
    # Check if the file's date is the first day of the month
    if [[ $(date -r "$FILE" +%d) -eq 01 ]]
    then
      echo "Skipping $FILE"
    else
      echo "Deleting $FILE"
      rm "$FILE"
    fi
  fi
done

Here's how the script works:

  1. Set the DIR variable to the directory you want to clean up.
  2. Use the date command to calculate the cutoff date. This will be 8 days ago from today.
  3. Loop through each file in the directory using a for loop.
  4. Check if the file is a regular file (-f) and if its modification time is older than the cutoff date. If it is not, then skip to the next file.
  5. If the file's modification time is older than the cutoff date, check if the file's date is the first day of the month. If it is, then skip to the next file.
  6. If the file's date is not the first day of the month, then delete the file using the rm command.

Références sur les formats de date :

Références sur les scripts de backup

Configuration de base du DokuWiki