Ubuntu-Version im Terminal herausfinden

Wer ganz schnell die Version seiner Linux-Distrbution herausfinden möchte, kann dazu den Befehl lsb_release verwenden (siehe auch Ubuntu-Hilfe und UbuntuUsers-Forum). Durch diesen Befehl erhält man Informationen über allgemeine Linux Schnittstellen (Linux Standard Base; LSB), sowie Distributions-spezifische Informationen.

  • Nach der Eingabe von:
    lsb_release -a

    erhält man z.B.:

    No LSB modules are available.
    Distributor ID:	Ubuntu
    Description:	Ubuntu 12.10
    Release:	12.10
    Codename:	quantal
  • Weitere Informationen über mögliche Parameter erhält man in den Manpages (Online Manpage zu lsb_release):

    man lsb_release
  • Eine andere (weniger umfangreiche Methode) habe ich auf aphilia.info gefunden:
    cat /etc/issue

    Mit dem Resultat:

    Ubuntu 12.10 \n \l
    

Eine große Datei in viele kleine Dateien zerlegen

Ich hatte gerade eine sehr große Datei (3.3GB), die ich über eine langsame Internetverbindung auf einen Server verschieben wollte. Der Vorgang würde mehrere Stunden dauern. Die Wahrscheinlichkeit, dass der Upload unterbrochen würde, wäre relativ groß. In dem Falle müßte ich nochmal von vorne beginnen. Daher habe ich die Dateien in einzelne Dateien zerlegt. In diesem Artikel erkläre ich, wie man eine große Datei aufteilt und im Anschluss wieder zusammenfügt.

Ich habe eine Datei ergebnisse.zip, die ich in 10 MB große Stücke zerteilen möchte.

  1. Um den Erfolg überprüfen zu können, ermittle ich zunächst eine Prüfsumme (Hier: MD5-String) der Ausgangsdatei:
    md5sum ergebnisse.zip > ergebnisse.zip.md5
  2. Mit Hilfe des Programms split teile ich die Datei in 10MB große Stücke:
    split -b 10M ergebnisse.zip ergebnisse_split.zip.

    Dadurch werden viele Dateien erzeugt, die folgenden Aufbau haben:

    ergebnisse_split.zip.aa
    ergebnisse_split.zip.ab
    ergebnisse_split.zip.ac
    ergebnisse_split.zip.ad
    ...
    ergebnisse_split.zip.zy
    ergebnisse_split.zip.zz
    
  3. Nun kann man diese Dateien z.B. per SSH auf einem Server laden:
    scp ergebnisse_split.zip.* user@server.domain:~/zielordner

    Sollte nun der Vorgang unterbrochen werden, kann man im Anschluss einfach bei der Datei beginnen, bei der der Upload unterbrochen wurde.

  4. Nach erfolgtem Upload fügt man die Dateien mit Hilfe von cat einfach wieder zusammen:
    cat ergebnisse_split.zip.* > ergebnisse_cat.zip
  5. Nun muss nur noch geprüft werden, ob die zusammengefügte Datei den gleichen Inhalt wie die Ausgangsdatei hat. Dazu berechnet man erstmal die MD5-Summe:
    md5sum ergebnisse_cat.zip > ergebnisse_cat.zip.md5

    Wenn alles geklappt hat, stehen in ergebnisse.zip.md5 und ergebnisse_cat.zip.md5 die gleichen MD5-Summen.

  6. Weitere Möglichkeiten findest Du im Wiki von UbuntuUsers.

Dateien in ein komprimiertes Archiv verschieben

In meinen Simulationen werden oftmals viele Dateien erzeugt. Damit bin ich schon das ein oder andere Mal an die Grenzen für die Zahl der erlaubten Dateien und den verfügbaren Speicherplatz (quota) gestoßen. Abgesehen davon dauert es länger, wenn man anstatt einer großen Datei viele kleine Dateien herunterlädt.

Daher verschiebe ich die Dateien regelmäßig in ein gepacktes tar-Archiv. Im folgenden Befehl werden alle Dateien mit der Endung .plot in ein neu erstelltes Archiv plot.tar.gz verschoben.

tar --remove-files -czf plot.tar.gz *.plot
–remove-files
Diese Option sorgt dafür, dass die Orginal-Dateien gelöscht werden, sobald sie ins Archiv kopiert wurden.
-c
Diese Option sorgt dafür, dass ein neues Archiv erzeugt wird. Der Name des Archivs wird mit der Option -f angegeben.
Alternativ können mit der Option -r Dateien zu einem bestehenden Archiv hinzugefügt werden:

tar --remove-files -rf plot.tar *.plot

Archive, an die man Dateien anhängen möchte, dürfen allerdings nicht gepackt sein (siehe -z). Ansonsten bekommt man folgende Fehlermeldung:

tar: Cannot update compressed archives
tar: Error is not recoverable: exiting now
-z
Diese Option sorgt dafür, dass das Archiv mit Hilfe von gzip komprimiert wird.
-f
Diese Option legt den Namen des zu behandelnden Archivs fest. Der Name muss (mit einem Leerzeichen getrennt) direkt nach -f stehen.

Generell ist die Reihenfolge der Optionen egal. Allerdings sollte man darauf achten, dass bei Optionen die einen Wert erwarten (z.B. -f), der Wert weiterhin hinter der Option zu finden ist. Zudem müssen die hinzugefügten Dateien ganz am Ende stehen. Hier einige Beispiele für gültige und ungültige Befehle:

# Korrekt:
tar --remove-files -czf plot.tar.gz *.plot
tar --remove-files -c -z -f plot.tar.gz *.plot
tar -f plot.tar.gz --remove-files -zc *.plot
 
# Fehlerhaft:
# Die Namen der zu archivierenden Dateien stehen nicht am Ende
tar *.plot --remove-files -czf plot.tar.gz
# Der Name des Archivs steht nicht hinter -f
tar --remove-files -cfz plot.tar.gz *.plot

Hinweis: Auf Mac OS X-Systemen (oder FreeBSD) ist meistens BSDtar installiert (tar --version ergibt z.B. „bsdtar 2.6.2 – libarchive 2.6.2“). Im Gegensatz zu GNU tar gibt es bei BSDtar die Option --remove-files nicht.