Поэтому я попытался настроить скрипт резервного копирования, который перечисляет последние измененные файлы и сравнивает их со свободным местом на диске резервной копии.Так что это команда для свободного дискового пространства, которое я использовал.
FREESPACE=$(df --output=avail <disk_path> | grep -v Avail)
Для измененных файлов я использовал варианты команды просмотра, но она не будет работать.Любая помощь?
PS: Вот мой сценарий (я начинающий, так что будьте терпеливы)
#!/bin/bash
# Programm: BackupUpdate.sh
# Aufruf: ./BackupUpdate.sh
# Parameter: Nicht nötig
# Beschreibung: Gibt es Änderungen im Quellverzeichnis, werden diese auf das Backup-Lafuwerk gesichert
# Autor:
# Version: 1.0
# Datum: 24.09.2019
#Änderungen werden erkannt
#Variable die das aktuelle Datum in einem bestimmten Format enthält
TIME=$(date +%d-%m-%y)
#Variable die das Namenskonzep t(Dateiname) der BACKUP-Datei enthält
FILENAME="backup-${TIME}.tar.gz"
#Variable die das Quellverzeichnis enthält
SRCDIR='/home/gian/Projekte'
#Variable die das Zielverzeichnis enthält
DESDIR='/media/gian/Backup/Backup'
#Variable die den Speicherort sowie der Dateiname des Snapshots enthält
SNF='/media/gian/Backup/Snapshot/Projekte.snar'
#Speicherplatz der Backup-Disk abfragen
FREESPACE=$(df --output=avail /dev/sdb | grep -v Verf.)
#Alle Daten die sich geändert haben auslesen
CHDATA=$(find /home/gian/Projekte -type f -print0 | xargs -0 stat --format '%> :%y %n' | sort -nr | cut -d: -f2- | head)
#Grösse der Änderungen ermitteln
CHDATASIZE=$(echo $CHDATA | awk '{print $1;}')
echo "$CHDATA grösse ist: $CHDATASIZE"
if [ $CHDATA == Null ]
then
echo "Foglende Änderungen wurden erkannt:"
echo "-----------------------------------"
echo
echo "$CHDATA"
else
echo "Keine Änderungen erkannt"
fi
if [$CHDATASIZE -gt $FREESPACE]{
then
echo "Zu wenig Speicherplatz vorhanden"
exit
}else
while [1 -eq 1]
do
read -p "Wollen Sie diese Änderungen sichern?" yn
case $yn in
[Jj]*) tar -cpzf $DESDIR/$FILENAME -g $SNF $SRCDIR; break;
[Nn]*) echo "Backup NICHT durchgeführt!" exit
*) echo "Bitte antworten Sie mit Ja oder Nein";;
esac
done