Festplatten Images von Account zu Account kopieren
Ich möchte eines meiner Drive Images in den Account eines Kunden von mir kopieren um mir das Setup zu ersparen.
Jetzt gibt es hier die Default Methode per FTP. Hier ist aber das Problem, dass es
- sehr langsam ist und
- kann es zu Fehlern kommen (hatte nach dem kopieren einen „invalid GPT header“ Error im FreeBSD – die letzten Bits scheinen also irgendwie nicht wirklich kopiert worden sein.)
Die beste & schnellste Methode ist, das ganze über die Cloudsigma Scripts zu machen.
Drives downloaden
Voraussetzung: wget muss installiert sein.
Als erstes mal auf den Server des Kunden gehen und die Scripts aufsetzen:
mkdir /DRIVES
cd /DRIVES/
vi download.sh
folgendes einfügen (UUID_of_the_drive steht für die UUID von der Platte, die ich von meinem Account runterladen möchte):
#!/bin/bash
export WGETRC=/DRIVES/.wgetrc
wget api.zrh.cloudsigma.com:8880/UUID_of_the_drive
damit ich Username und Passwort im wget nicht Plaintext übergebe, speichere ich diese Info im .wgetrc:
vi /DRIVES/.wgetrc
Und folgendes eintragen:
http_user = CloudsigmaUsername
http_password = CloudsigmaPassword
So und jetzt File noch ausführbar machen
chmod 775 download.sh
Nun connecte ich per VNC auf den Server um den Download Script auszuführen. Ich mach das per VNC damit ich meinen lokalen PC auch runterfahren könnte während des Downloads, falls es etwas länger dauern würde.
/DRIVES/download.sh
Drives uploaden
Voraussetzung: CURL muss installiert sein.
Als erstes Drive Upload Script von Cloudsigma downloaden.
cd /DRIVES/
wget http://cloudsigma.com/download/cs-upload.sh .
vi cs-upload.sh
Hier nun die Variabeln
CSURI=
und
CSAUTH=
entsprechend anpassen (Daten des Accounts, wo das Drive raufgeladen werden soll)
chmod 775 cs-upload.sh
So, jetzt wieder per VNC connecten (sollte alles länger dauern) und Upload starten:
/DRIVES/cs-upload.sh -n DriveName FILENAME
DriveName ist einfach ein Platzhalter für den neuen Namen des Laufwerks. Wird -n nicht gesetzt, wird automatisch der FILENAME übernommen.
Das Image wird nun in 4MB grossen Teilen raufgeladen.
Nach dem Upload das DRIVES Verzeichnis mit allen Passworten etc. wieder löschen.
rm -rf /DRIVES/
Upload per FTP
Das hab ich hier nur noch als Referenz drin. Per FTP ist der Transfer viel zu langsam und es können Daten während des Transfers verloren gehen.
$ lftp
lftp :~> set ftp:ssl-force yes
lftp :~> set ssl:verify-certificate no
lftp :~> connect ftp.cloudsigma.com lftp :~> login CloudsigmaUsername
Dann mit get downloaden – danach in den anderen Account wieder mit put uploaden.
Man kann auch direkt mit dem mirror Befehl das File vom einen Account zum anderen transferieren. Aber wie gesagt, das ist alles SEHR langsam. Sogar noch langsamer, als wenn man es erst downloaded und danach wieder uploaded. Weiss auch nicht wieso das so viel langsamer ist 😉
lftp :~> login CloudsigmaSourceUsername
lftp :~> mirror /DRIVEIMAGES/ -i "^DriveName" ftp://CloudsigmaDestinationUsername:CloudsigmaDestinationPassword@ftp.cloudsigma.com:21:/DRIVEIMAGES/
Danke!!! Genau danach hab ich gesucht. Das hat mir die Arbeit extrem verkürzt. Danke!