[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

[Meine Lösung] Re: Neuste Dateiänderung in einem Verzeichnis



Hallo,
meine Lösung sieht so aus.
Dabei brauche ich gar nicht mehr das Datum der neuesten Dateiänderung in 
einem Verzeichnis, sondern nur noch das Ergebnis von find, ob sich in einem 
angegebenen Zeitraum eine Datei in dem Verzeichnis (rekursiv) geändert hat.
Dann muß das Archiv neu erstellt werden und hochgeladen werden.

Cadaver funktioniert ohne Paßwort nur mit .netrc

Das ist sicherheitstechnisch vielleicht etwas bedenklich, weil ja auch im 
folgenden Skript das Zip-Archiv-Paßwort verdrahtet ist, aber für mich privat 
reicht das und auch auf einem Mehrbenutzersystem kann man ja die Dateien nur 
für sich lesbar machen.
Dann reicht das, wenn man dem root vertrauen kann ;-).

Danke für alle Hinweise.

Ciao
  Peter Schütt

P.S. Einige Umbrüche stimmen nicht.


#!/bin/sh

# Parameter 1: Destination directory (e.g. mediacenter.gmx.net/backup)
# Parameter 2: Directory (relativ preferred)
# Parameter 3: Number of Days to check for changes


PASSWORD=StrenggeheimesPasswortMoeglichstSicherUndMitZahl4
TMP=/tmp
HAS_TO_UNMOUNT=0

# Parameter: Destination directory (e.g. /home/peter/gmx) 
function mountDest {
  
  DEST_DIR=$1

  echo $DEST_DIR
  
  if [ ! -d $DEST_DIR/lost+found ]; then
     mount $DEST_DIR
     HAS_TO_UNMOUNT=1
  fi                                                 
}

# Parameter 1: WebDav-Server with destination directory (e.g. 
https://mediacenter.gmx.net/backup)
# Parameter 2: Archiv 
function putArchiveToWebDav {
   echo "put $2" | cadaver $1
}



# Zips and encrypts directory
# Parameter 1: Relative source directory
# Paremeter 2: Destination directory
function zipDir {
   DEST_FILE=$2/`echo $1 | sed s/\\\\//_/g`.zip
   echo $DEST_FILE
   zip -r -o --password $PASSWORD -9 $DEST_FILE $1
}


if [ "a$3" = "a" ]; then
  echo "Usage: savewebdav  <destination remove directory> <local directory> 
<days for last
 change> "
  echo "Saves the directory to a remote directory on a webdav server"
  exit 0;        
fi

FILE_CHANGES=`find "$2" -type f -mtime -$3  -print`

if [ "a$FILE_CHANGES" = "a" ]; then
  echo "Nothing changed in $2"
  exit 0;
fi


zipDir $2 $TMP

putArchiveToWebDav $1  $DEST_FILE


-- 
www.pstt.de

Die E-Mail-Adresse funktioniert, kann aber u.U. in Zukunft mal abgeschaltet
werden. Ohne "_remove_this_" wird sie auch in Zukunft noch funktionieren.


Reply to: