Clanintern Clanintern Clanintern

Forum

Öffentliche Foren
FORUM: Spiele & Computer THEMA: Windows Console: Datei splitten
AUTOR BEITRAG
*al!ve* - irgendwo zwischen Semester 4 und 7

RANG 0wn3r

#1 - 23.05 09:07

Hi ihr.

Ich hab hier Backup-Dateien der Größe um etwa 8GB rumliegen. Es handelt sich um Vollbackups von Partitionen, die nach dem Backup mit GnuPG verschlüsselt wurden. Ich würde diese Dateien nun gerne per FTP (alternativ: SSH mit Cygwin), (+ SSL-Socket) von einem 2MBit-DSL-Anschluss auf einen anderen 2MBit-DSL-Anschluss übertragen. Zeitlimit liegt bei etwa zwei Wochen, jeweils nachts. Betriebssystem beidseitig Windows XP Prof.

Um das zu bewerkstelligen will ich die Backupdateien vor dem senden in Stücke zu je 5MB unterteilen und nach dem senden wieder zusammenfügen.

Idee hierzu: FTP-Server auf Quellseite, Scriptclient auf der Zielseite. Der FTP-Server stellt Dateien + eine Liste der MD5en bereit. Der Client holt sich die MD5-Datei und holt sich anschließend jede Einzeldatei, für die der lokale MD5 nicht mit dem aus der Datei überein stimmt. Scriptende = Liste vollständig fehlerfrei vorhanden, Scriptabbruch spielt keine Rolle.

Wenn jemand ne andere Idee hat darf er sich gerne auch zu Wort melden .
ReBoot

RANG Deckschrubber

#2 - 23.05 09:30

Die Konsole selbst kann es meines Wissens nach nicht. Aber es gibt für diverse Packer Konsolenprogramme, die eine Datei in ein gesplittetes Archiv packen können.
tiefseetaucher helmi

RANG Deckschrubber

#3 - 23.05 09:36

winrar müsste das doch können.
The Terminator

RANG Deckschrubber

#4 - 23.05 11:02

ist es nicht einfacher, das zeug auf cds / dvds zu brennen und per post zu versenden?
*al!ve* - irgendwo zwischen Semester 4 und 7

RANG 0wn3r

#5 - 23.05 11:20

Nein, es soll immerhin automatisiert passieren. Der Zeitansatz von "maximal zwei Wochen" bedeutet 26 Sicherungen im Jahr. Wenn die Übertragung spürbar schneller ist als angenommen (oder wenn das zur Verfügung stehende Zeitfenster entsprechend groß ist) könnte es auch sein dass das ganze häufiger als "alle zwei Wochen" ablaufen soll.
*al!ve* - irgendwo zwischen Semester 4 und 7

RANG 0wn3r

#6 - 24.05 16:01

Danke für den Tip mit dem Kompressionsprogramm. Hatte ich zwar vor vier Jahren schon mal so gelöst, aber nochmal drauf gekommen wär ich jetzt nicht mehr .

Wenn es jemanden interessiert, das sind die Scripts die ich produziert hab. Mal n bissl testen und dann gucken ob sich das produktiv einsetzen lässt.



Server (Hat lokalen Zugriff auf die zu sichernde Datei und das FTP-Verzeichnis)
code:
@echo off




set sourceFile=d:\backupscript\server\kav7.0.0.125de.exe
set backupPath=d:\backupscript\server\ftpDir\
set tmpPath=d:\backupscript\server\tmp\
set gpg=c:\Programme\GnuPG\gpg.exe
set rar=c:\Programme\winrar\rar.exe
set blocksize=1024
set targetUser=Stephan Schuler




echo .
echo .
echo .
echo Clear backup directory.
rmdir /S /Q %backupPath%
rmdir /S /Q %tmpPath%
mkdir %backupPath%
mkdir %tmpPath%




echo .
echo .
echo .
echo Create working copy in tmp path.
copy %sourceFile% %tmpPath%




echo .
echo .
echo .
echo Jump to backup directory.
cd %tmpPath%




echo .
echo .
echo .
echo Process whole backup file.
for %%f IN (*) DO (

  echo .
  echo Encrypt file %%f.
  call "%gpg%" -e -r "%targetUser%" "%%f"

  echo Md5sum file %%f.
  md5sum %%f > %%f.md5

  echo Delete source tmp file %%f.
  del %%f
)




echo .
echo .
echo .
echo Compress and make blocks.
call %rar% a -v%blockSize% -inul backup.rar *




echo .
echo .
echo .
echo Calculate md5sums for blocks.
md5sum *.rar > backup.rar.md5




move *.rar %backupPath%
move *.md5 %backupPath%



Client: Holt sich Files per FTP
code:
@echo off




set workingDir=d:\backupscript\client\downdir\
set gpg=c:\Programme\GnuPG\gpg.exe
set rar=c:\Programme\winrar\rar.exe
set ftpHost=10.214.1.5
set ftpUser=ftpbenutzername
set ftpPass=ftppasswort
set com=comfile
set maxRunner=5




setlocal ENABLEDELAYEDEXPANSION




echo .
echo .
echo .
echo Jump to working directory.
cd %workingDir%




set runnerCount=0
:listCreator
set /a runnerCount=!runnerCount!+1
IF !runnerCount!==%maxRunner% (
  echo .
  echo .
  echo .
  echo !runnerCount! times failed, try again tomorrow.
  goto :EOF
)




echo .
echo .
echo .
echo Create md5-getter
echo OPEN %ftpHost% > %com%
echo USER %ftpUser% %ftpPass% >> %com%
echo GET backup.rar.md5 >> %com%
echo QUIT >> %com%




echo .
echo .
echo .
echo Get backup file list from ftp.
ftp -n -s:%com% > nul
del %com%




echo .
echo .
echo .
echo Process list of md5 values.
for /F "tokens=1,2" %%a in (backup.rar.md5) do @(

  set file=%%b
  set file=!file:~1!
  set md5sum=%%a
  echo .
  echo .
  echo .
  echo Processing !file!

  echo Make shure that !file! exists.
  @dir !file! > nul
  IF ERRORLEVEL 1 (
    echo Not found, created empty file.
    echo "" > !file!
  ) ELSE (
    echo Found, ready to compare.
  )

  @echo %%a %%b> md5.foreign.tmp
  @md5sum -b !file!> md5.local.tmp

  fc md5.foreign.tmp md5.local.tmp > nul
  if ERRORLEVEL 1 (
    echo Different, download from ftp.
    echo OPEN %ftpHost% > %com%
    echo USER %ftpUser% %ftpPass% >> %com%
    echo GET !file! >> %com%
    echo QUIT >> %com%
    ftp -n -s:%com% > nul
    del %com%
    echo File downloaded.
  ) ELSE (
    echo Allready in sync.
  )
  del md5.foreign.tmp
  del md5.local.tmp
  


)




md5sum -c backup.rar.md5 > nul




if ERRORLEVEL 1 (
  echo .
  echo .
  echo .
  echo Some files are out of sync, starting again.
  goto listCreator
)




del backup.rar.md5




echo .
echo .
echo .
echo Uncompress archive file
call %rar% e -o+ -inul backup.part01.rar > nul




echo .
echo .
echo .
echo Decrypt all crypted files.
for %%i IN (*.gpg) DO (

  set file=%%i
  set file=!file:~0,-4!

  echo .
  echo Decrypt !file!.
  call %gpg% -d %%i > !file!

  echo .
  echo Delete encrypted file.
  del %%i

  echo .
  echo Check md5sum of encrypted file.
  md5sum --check --status !file!.md5

  IF ERRORLEVEL 0 (
    echo Decrypted with valid result.
  )

)




echo .
echo .
echo .
echo Done.
SirLant

RANG Sucker

#7 - 25.05 19:38

Wenn du doch eh Cygwin laufen hast hättest doch auf die ganzen GNU Tools Zugriff gehabt
*al!ve* - irgendwo zwischen Semester 4 und 7

RANG 0wn3r

#8 - 25.05 20:08

Das hab ich nicht "eh" sondern das wäre die Alternative zum ohnehin laufenden FTP-Server, der intern auch noch andere Funktionalitäten erfüllt. Cygwin mit SSH könnte eine sicherheitsunbedenklichere Alternative zum FTP-Server darstellen. Momentan denk ich aber eher an einen FTP-Server mit SSH-Möglichkeit auf de Serverseite (Filezilla zum Beispiel) und auf der Clientseite mittels Stunnel die SSH-Gegenstelle. So hab ich zwar keine Authentifikation mittels Zertifikat sondern "nur" über Benutzername/Passwort aber das Passwort geht wenigstens nicht im Klartext über die Leitung.