Hallo zurück
Ich habe mal wieder etwas hilfreiches zum Thema FTP Backup. Dem einen ist es bereits aufgefallen, dem anderen wohl erst, wenn der externe Backup-Server "HDD voll" oder "Quota erreicht"...
Hierfür habe ich eine kleine Abhilfe. Ein Shell Script, dass automatisch alle Backup-Files nach Ablauf einer gewissen Zeit automatisch löscht. Ich habe das Script schon so geschrieben, dass es wunderbar zum Thema "Axigen-FTP Backup" passt.
Voraussetzung und Grundlage
FunktionsweiseCode:Betriebssystem : SUSE Linux FTP Client : ncftp FTP Client Version : egal
Eigentlich nichts besonderes, hier ein kleiner Überblick:
- Verbinden und Auslesen des betreffenden Verzeichnisses anhand von "ncftpls"
- Das gescannte Verzeichnis wird anschließend aufgerufen ($baklist) und
- anhand des Namens, was gleichzeitig das betreffende Datum ($del) kontrolliert.
- Ist das Datum des Files ($baklist) kleiner als der angegebene Zeitraum (in dem fall älter als 14 Tage)
- Wird der Filename in eine Löschdatei ($delfile) geschrieben.
- Nach Ablauf bzw. Kontrolle aller Files aus dem FTP bestimmt ein FLAG ($ready2del), ob gelöscht wird oder nicht.
- Ist das FLAG ($ready2del=1) gesetzt, werden alle Dateien in der Löschliste ($delfile) vom FTP gelöscht.
Shell-Script
Code:#!/bin/bash ############################################### # Cleanup old FTP Backups # # Associate to AXIGEN.SBS.V1.x # # SNOW.CoB.V1.1 (c) SkawoN 2010 # ############################################### host="123.123.123.123" #<-- IP Adr. or Hostname user="[USERNAME]" #<-- Username for FTP Server pass="[PASSWORD]" #<-- You passwort for FTP Server ftpdir="daily" #<-- Option: Directory baklist="/tmp/list.txt" delfile="/tmp/delfile.ftp" del=`date --date='14 day ago' +%y%m%d` #<-- Change the number, if you want... ncftpls -u $user -p $pass ftp://$host/$ftpdir/ >> $baklist exec 3<&0 exec 0<$baklist ready2del=0 while read line do filename=${line%.*} if [ $filename -lt $del ] then ready2del=1 echo "rm "$line >> $delfile fi done rm $baklist if [ $ready2del == 1 ] then echo "bye" >> $delfile set confirm-close no ncftp -u $user -p $pass ftp://$host/$ftpdir/ <$delfile rm $delfile fi


LinkBack URL
About LinkBacks







Zitieren
Lesezeichen