Найдите последние измененные файлы в определенном каталоге и сравните размер файла со свободным дисковым пространством. - PullRequest
0 голосов
/ 25 сентября 2019

Поэтому я попытался настроить скрипт резервного копирования, который перечисляет последние измененные файлы и сравнивает их со свободным местом на диске резервной копии.Так что это команда для свободного дискового пространства, которое я использовал.

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
...