[Python-de] shutil und remote copy

Martin v. Loewis martin at loewis.home.cs.tu-berlin.de
Thu Dec 16 15:45:23 EST 1999


> Weiss jemand, ob die shutil-Funktionen unter Unix auch remote kopieren,
> d.h. einen Pfadnamen der Form <host>:<Dateipfad> akzeptieren oder ob
> man dazu den Umweg ueber den system-Aufruf braucht?
> Die Doku sagt dazu nichts und da ich hier kein Unix mit remote gemounteten
> Dateiasystemen hab, kann ich das auch nicht testen.

Wenn Du ein remote-gemountetes (entfernt eingebundenes) Dateisystem in
Unix hast, kannst Du damit ganz normal shutil verwenden:

mount -t nfs rechner:/ /mnt/rechner
python
>>> import shutil
>>> shutil.copyfile("/etc/passwd","/mnt/rechner/etc/passwd")

Dabei sind mehrere Dinge zu beachten:
- Nur der Superuser kann unter Unix Dateisysteme mounten
- Es spielt dann keine Rolle, ob sie lokal sind, oder entfernt
  (NFS = Network File System)
- shutil benutzt normale Dateioperation (open,read,write). Auch
  die arbeiten transparent auf entfernten Dateisystemen.
- Die Syntax host:pfad wird von diesen Operationen nicht unterstützt.

Um Dateien unter Unix auf einen Rechner zu bekommen, der nicht
gemountet ist, muß auf diesem entfernten Rechner irgendein Service
laufen.

Wenn z.B. ein FTP-Server läuft, kann man mit ftplib gute Erfolge
erzielen; man benötigt allerdings ein Passwort für den entfernten
Rechner.

Wenn ein rsh-Demon läuft, kann man /usr/bin/rcp benutzen. Das ist
nötig, weil rcp setuid-root ist.

Es gibt natürlich weitere Alternativen, aber die hängen von Deiner
Zielinstallation ab.

Ciao,
Martin





More information about the Python-de mailing list