SCP kopievorgang per Batch

Robium

Mitglied
Guten Morgen ihr Leuts :)
ich habe mal wieder eine frage

ich muss eine Datei die 11GB gross ist von einem Rechner (öffentliche ip) auf einem anderen Rechner (private ip) übertragen. Da die datei 11GB hat fällt FTP schonmal weg wegen der 2GB grenze. Nun möchte ich das per SCP realisieren jedoch soll dies jeden tag automatisch passieren deshalb habe ich es per Batch geplant weiß jedoch überhaupt nicht wie der code aussehen soll... habt ihr eine Lösung oder denkanschwünge?:)

schönen sonnntag wünscht euch
euer Robium
 

ikosaeder

Teekannen-Agnostiker
Welches OS haben denn die beiden Rechner? Soll das ganze vom Rechner mit der öffentlichen IP ausgehen oder anders herum? Im ersten Fall ist es so direkt eigentlich nicht möglich. Du müsstest dann mit VPN oder SSH-Tunneln arbeiten. Im zweiten Fall kannst du unter Linux einen cron job einrichten, der die Datei kopiert.
Code:
crontab -l > tempcron
echo "0 24 * * * Username scp QuellDatei Zieldatei  >> tempcron
crontab tempcron
Unter Windows gibt es SCHTASKS als Alternative zu cron.

Ist es denn wirklich sinnvoll, eine 11 GB große Datei jeden Tag zu kopieren? Kannst du es evt in mehrere kleinere Dateien aufspalten? Dann könntest du z.B. rsync benutzen, dabei werden nur die Sachen kopiert, die sich geändert haben.
 
Zuletzt bearbeitet:

Robium

Mitglied
sorry habe ich vergessen zu erwähnen. Dabei handelt es sich um ein Windows Server 2003 (private ip) und ein windows 7 (öffentliche ip). Es soll vom Win7 auf den Win Server 2003 gesendet werden. Darf leider nicht gesplittet werden da es ein vollbackup ist. Der win7 hat keinen streamer deshalb soll es auf den win server 2003 gesendet werden dort wird es dann auf band gespeichert :)
 

ikosaeder

Teekannen-Agnostiker
Gibt es da ne Firewall? Hängen die im gleichen Netz?
Ansonsten hast du mit privater IP schlechte Karten.
Evt. könntest du trotzdem die Verbindung vom 2003 Server aus öffnen und die Datei ziehen.
Warum täglich ein Vollbackup? Wäre ein inkrementelles Backup nicht besser? Und wie erstellst du das Backup?
 

Robium

Mitglied
Ne sind nicht im selben Netz.. ich hab eine SSH verbindung dahin deshalb will ich das mit SCP machen :)
Und warum immer ein VOllbackup leider hab ich da keinen einfluss drauf =) die Personen die dafür zuständig waren wollen es so haben :)
Der Rechner mit der öffentlichen IP ist in der DMZ der Firma und der andere hat halt die Private IP beide jedoch in der firma :)

deshalb versuche ich es halt es über eine Batch zu regeln... ich weiß nur nicht wie ich mich per Batch für SCP anmelde etc....
 
Zuletzt bearbeitet:

ikosaeder

Teekannen-Agnostiker
Wie gesagt, der einfachste weg wäre, du initierst die Verbindung vom Rechner mit der privaten IP, dann bleiben dir die Probleme mit Router, Firewall etc. erspart.
Ssh ist das Mittel der Wahl.
Installier cygwin auf dem Rechner und in cygwin den cron
http://stackoverflow.com/questions/707184/how-do-you-run-a-crontab-in-cygwin-on-windows
Dann kannst du ein Shellskript schreiben, das die Datei herunterlädt.
Auf dem Rechner, mit der öffentlichen IP muss das Backup dann halt nur unter einem festen Namen und festen Pfad gespeichert werden.
Du musst nur sicherstellen, das das Backup auf vorliegt bevor du versuchst es herunter zu laden.
Statt scp könntest du auch bei einer Datei rsync verwenden.
 

Robium

Mitglied
So habe ich es versucht :) Ich habe auf dem Rechner mit öffentlicher IP Cygwin mit SSH installiert und auf dem anderen WinSCP. Mein Script sieht so aus...

cd C:\Program Files (x86)\WinSCP
winscp.exe /console /command "option batch abort" "open user@192.168.2.10" "get C:\test.txt C:\ " "exit"

Der baut zwar die Verbindung auf, meldet aber permanent das er die Datei nicht finden kann... da häng ich fest momentan..das scripten ist nicht so meine stärke :/
 
Zuletzt bearbeitet:

ikosaeder

Teekannen-Agnostiker
Hast du unter Cygwin denn den sshd gestartet?
http://cygwin.wikia.com/wiki/Sshd
Wofür winscp? Benutze doch einfach auf beiden Rechnern Cygwin, oder eine andere SSH Implementierung für Windows.
Dann wäre das commando (in cygwin
Code:
scp user@Host:/PfadzuBackup/Backup LokalerZielordner
was ich persönlich einfacher finde.
Alternativ:
Code:
rsync --archive user@host::PfadzurDatei LokalerZielordner
setzt einen rsync Daemon vorraus.
Vorteil bei rsync: rsync unterstützt auch inkrementelle Backups.
Das heißt, es muss nicht immer die ganze Datei übertragen werden und für das Vollbackup kannst du einfach eine lokale Kopie erstellen.
https://de.wikipedia.org/wiki/Rsync
Wir benutzen rsync z.B. um Ordner mit der Firmenzentrale zu synchronisieren. Das funktioniert sehr gut, allerdings läuft bei uns alles auf Linux, und alle Rechner sind per VPN im selben Netz, damit ist es natürlich einfacher. Aber selbst unter Windows lässt sich rsync mit cygwin gut
 

Robium

Mitglied
Ja der sshd ist gestartet, die verbindung baut der ja auf...jetzt brauch ich aber eine neue idee...cygwin soll nicht installiert werden, wenn es geht soll cygwin nicht verwendet werden aber die idee mit dem scp ist gut...jetzt muss ich mir dazu was enifallen lassen :D das ohne cygwin hinzubekommen