here: files, FTP, SCP, rsync, unison, Quota

Kopieren von Daten(ftp,scp,rsync,unison) und quota

FTP

Da die FTP-Spezifikation bis auf die einfache Benutzer-Authentifizierung, die Kennung und Passwort unverschlüsselt zwischen Client und Server übermittelt, keinerlei Sicherheitsfunktionen vorsieht und es bessere Alternativen gibt, wird dieser Dienst nicht mehr auf unseren Servern (z.B. www) zur Verfügung gestellt. Daten können aber einfach und sicher per scp kopiert werden.

SCP

Mit SCP (Secure Copy Protokoll) können Dateien verschlüsselt zwischen zwei Computern übertragen werden. Die Syntax des Kommandos ist ähnlich des cp-Befehls.

Eine Datei ZUM Host (z.B. www) kopieren:

scp quelldatei benutzer@host:verzeichnis/zieldatei

Hinweis(e): Wird der Benutzername mit dem @-Zeichen weggelassen, wird der gleiche Benutzer genommen, mit dem man gerade angemeldet ist. Wird das Zielverzeichnis weggelassen, wird in das /home Verzeichnis des jeweiligen Benutzer kopiert. Der Doppelpunkt nach dem host muss aber auf jeden Fall gesetzt werden.

Eine Datei VOM Host kopieren:

scp benutzer@host:verzeichnis/quelldatei zieldatei

Hilfe: Bei der ersten Verbindung mit einem Rechner per ssh wird auf dem lokalen Rechner ein Schlüssel abgelegt. Es wird nun bei jedem erneuten Verbindungsaufbau geprüft, ob der Rechner unter dem Namen, der gleiche ist als beim letzten mal. Wird aber ein Server neu aufgesetzt und man verbindet sich jetzt mit diesem Rechner, kommt es zu folgender Meldung:

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: POSSIBLE DNS SPOOFING DETECTED! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
The RSA host key for www has changed,
and the key for the according IP address xxx.xxx.xxx.xxx
is unknown. This could either mean that
DNS SPOOFING is happening or the IP address for the host
and its host key have changed at the same time.
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
Someone could be eavesdropping on you right now (man-in-the-middle
attack)!
It is also possible that the RSA host key has just been changed.
The fingerprint for the RSA key sent by the remote host is
xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx.
Please contact your system administrator.
Add correct host key in
/home/../BENUTZERNAME/.ssh/known_hosts to get rid of this
message.
Offending key in /home/../BENUTZERNAME/.ssh/known_hosts:4
RSA host key for www has changed and you have requested strict checking.
Host key verification failed.
lost connection

Wichtig ist die Zeile, die mit „Offending“ beginnt. Hier steht der Dateiname und nach dem Doppelpunkt (im oberen Beispiel 4) steht die Zeilennummer, die geändert werden muss. Aus dieser Datei muss der alte Schlüssel rausgelöscht werden. Dazu einfach die komplette Zeile löschen.

Alternativ kann man folgendes Kommando verwenden:

sed <ZEILENNUMMER>d -i /home/lehrstuhl/ag-<LEHRSTUHL>/<BENUTZERNAME>/.ssh/known_hosts

Beispiel:

sed 271d -i /home/lehrstuhl/ag-euler/euler/.ssh/known_hosts 

SCP GUIs (Graphische Oberflächen für SCP)

Als graphische Tools bieten sich FileZilla und Winscp(Windows) an.

rsync

Auf dem Rechner www ist das Programm rsync installiert mit dem sich ein lokales Verzeichnis mit einem auf www synchronisieren lässt. Der Aufruf erfolgt so:

rsync -avz /home/mypath ag-xyz@www:/exports/ag/ag-xyz/

Hinweis(e): Der abschließende Schrägstrich für Verzeichnisse sorgt oft für Verwirrung: Lautet der Aufruf zum Beispiel rsync /home/mypath/Daten www:/var/backup/xyz/, überträgt Rsync das Verzeichnis „Daten“ zum Ziel, legt also /var/backup/xyz/Daten an. Steht im Aufruf hingegen /home/xyz/Daten/, sorgt der Schrägstrich dafür, dass nur der Inhalt von »Daten« übertragen wird. Eine Datei »~xyz/Daten/test.txt« wandert also gleich ins Zielverzeichnis und wird zu /var/backup/xyz/test.txt statt »…/xyz/Daten/test.txt«.

Auswahl wichtiger Parameter:

short long Desc
-v verbose ausgiebiger Bericht der gerade laufenden Bearbeitung
-q quiet keine Ausgabe von Fehlermeldungen
-a archive Zusammenfassung der Parameter -rlptgoD
-r recursive Abgleichen mit allen Unterverzeichnissen
-l links Kopieren der symlinks
-p perms Übertragen der Zugriffssrechte
-t time Übertragen des Zeitstempels
-g group Übertragen der Gruppenrechte
-o owner Übertragen der Benutzerrechte
-n Testparameter Testparameter, die Befehle werden ausgeführt aber es wird nicht kopiert (Testlauf)
-u update Bereits vorhadene Dateien werden nur bei neuerem Quelldatum kopiert
-z compress compress file data during the transfer
-E execute Attribut „ausführbar“ bleibt erhalten
–delete delete Löscht nicht mehr vorhandene Dateien auf der Quelle auch auf dem Ziel (synchron)
–exclude exclude Schließt Verzeichnisse von der Sicherung aus
-S –sparse handle sparse files efficiently; e.g. timemachine on Mac creates sparse files

rsync auf vfat formatierte Partitionen sichern

Inspiriert durch den Artikel von by Martin Monperrus

Mit rsync kann man gut seine Daten sichern. Aber man braucht ein paar der erweiterten Parameter, um von einem ext[2|3|4] filesystem auf einem vfat, fat16 oder fat32 ein Backup zu erstellen (z.B.: USB stick oder eine vorformatierte externe USB[2|3]-Festplatte):

#!/bin/bash
SOURCE=/home/<user>
DEST=/media/<dest>
find $SOURCE -name "*%*" -or -name "*:*"
read -p 'Hit Ctrl-C if too much "%" and ":" were found in filenames'
rsync -a --no-o --no-p --no-g --safe-links --modify-window 1 --stats $SOURCE $DEST

–no-o # vfat unterstützt owners nicht!
–no-g # vfat unterstützt keine groups
–no-p # vfat unterstützt keine Unix permissions
–modify-window 1 # das fat filesystem „represents times with a 2-second resolution“ (siehe: rsync manual)
–safe-links # vfat kennt keine „symbolic links“
–stats # give some file-transfer stats

Im Falle von ntfs filesystem müssen die Parameter nochmals angepasst werden. Beachten sie das vfat keine Dateinamen mit '%' oder ':' kennt. Um die Situation vor dem rsync Lauf zu klären sollte man vorher danach suchen: find . -name „*%*“ -or -name „*:*“

unison

„Unison ist ein Synchronisierungsprogramm für Unix/Linux, Windows, Mac OS X, Solaris und einige andere Betriebssysteme. Es gleicht Daten zwischen zwei Computern (oder zwei Verzeichnissen auf einem Computer) ab. Durch den Vergleich der Daten auf beiden Rechnern künnen Unterschiede gefunden werden und beide Computer auf den gleichen Stand gebracht werden. Dieser Abgleich funktioniert beidseitig, das heißt auch wenn auf beiden Systemen parallel Daten geändert wurden [Quelle:Wikipedia]

Unison sucht unter ~/.unison nach der Konfigurationsdatei „default.prf“. (Natürlich kann unison auch nur per Parameter von der Bash aufgerufen werden.) Es folgt eine Beispiel .prf, die folgende Dinge tut:

  • Das lokale Homeverzeichnis wird per ssh auf den Rechner [hostname] synchronisiert
  • Der Job lauft automatisch ohne Rueckfragen.
  • Versionskonflikte werden zu Gunsten neuerer Datei gelöst
  • Die letzte Zugriffszeit einer Datei wird beibehalten
  • Es werden mehrere Dateinamen und Verzeichnisse von der Synchronisierung ausgenommen
  • (z.B.: werden Dateien im Mülleimer und temporäre Dateien ignoriert) Alle Aktivitäten werden in der Logdatei „unison.log“ festgehalten

Es sollte ein extra Ordner für das Synchronisieren angelegt werden damit nicht ungewollte Daten synchronisiert werden müssen. Eine andere Möglichkeit ist das Auslassen von bestimmten Datentypen (Mutlimediadateien).

# Roots of the synchronization
root = /home/[username]/[unterordner]
root = ssh://[username]@[hostname]:[port]//home/[user]/[unterordner]
#the user interface will ask no questions at all
batch=true
##Unison always to resolve conflicts
prefer=newer
##file modification times (but not directory modtimes) are propagated
times=true
# Paths to synchronize
# Some regexps specifying names to ignore
ignore = Name temp.*
ignore = Name *~
ignore = Name .*~
ignore = Name *.o
ignore = Name *.tmp
ignore = Name *.run
ignore = Name unison.log
ignore = Name trash.desktop
ignore = Name Sent
ignore = Name Trash
# Some regexps specifying paths to ignore
ignore = Path Mail
ignore = Path mail
ignore = Path Desktop
ignore = Path .*
ignore = Path unison_backups
# Use this command for displaying diffs
diff = diff -y -W 79 --suppress-common-lines
# Log actions to the terminal
log = true
logfile = unison.log

Hinweis(e):

  • Bitte darauf achten, die gleichen Version wie auf dem Server zu benutzen. Andernfalls bricht Unison mit folgender Fehlermeldung ab:
    Fatal error: Received unexpected header from the server:
    expected "Unison 2.40\n" but received "Unison 2.32\n\000\000\000\000", 
    

Quota

Der verfügbare Festplattenspeicher im /home ist für jeden Benutzer per quota auf 70GB (Stand 2014) begrenzt. Der noch zur Verfügung stehende Speicher lässt sich mit folgendem Kommando abfragen:

quota -s

QR-Code
QR-Code systemverwaltung:user_info:howto:files (erstellt für aktuelle Seite)