star (Schily tar) unter FreeBSD - Schreiben Band via Streamer

Morfio

Well-Known Member
Hallo zusammen,

bis inkl. FreeBSD 9.x habe ich star genutzt, um Daten auf Band zu sichern. Mit bsdtar und gnutar hatte ich das eine Weile gemacht, diese brechen (zumindest bsdtar) aber bei einem Fehler ab, so dass dann auch das Band nicht mehr gelesen werden kann.

Auf FreeBSD 10.0 und 10.1 kompiliert star nicht mehr und ist wohl jetzt auch nicht mehr in den Ports. Auf 10.0 habe ich das Kompilat von 9.2 genommen, das soweit auch funktioniert, allerdings macht das irgendwelche Probleme, so dass ich alle zwei Wochen einmal den Server neustarten muss.

Jetzt bin ich für 10.1 auf der Suche nach einer Alternative. Womit schreibt ihr (die Daten liegen auf einem ZFS) Daten auf Band?

Viele Grüße

Morfio

PS: Da fehlt ein "auf" im Thread-Thema
 
@star-1.5.3 kompilieren:
Also star benutze ich schon seit Ewigkeiten (FreeBSD 5.3) und bin auch seit 9.2/10.1 drauf angewiesen, weil damit auf Basis von ZFS Vollbackups und inkrementelle Backups erzeugt (aber nicht auf Tape) werden. Insofern habe ich noch Glück, einen alten star-1.5.2 Port installiert zu haben.

Aber zumindest aus dem Quellcode lässt es sich (mit Umweg - die aktiven C-Programmierer hier werden mit Sicherheit schnell einen Fix finden) kompilieren. Am Ende ist star, tartest, rmt gebaut:

1. star-1.5.3-Quellcode entpacken ( http://sourceforge.net/projects/s-tar/files/ )

2. smake und gmake aus den Ports installieren

3. smake ausführen - das bricht dann mit Fehlermeldung ab

4. Fehlermeldung ignorieren und gmake ausführen und fertig ist star:

star-1.5.3% ldd ./star/OBJ/amd64-freebsd-clang/star
./star/OBJ/amd64-freebsd-clang/star:
libintl.so.9 => /usr/local/lib/libintl.so.9 (0x800877000)
libc.so.7 => /lib/libc.so.7 (0x800a81000)

und das tut prinzipiell

star-1.5.3% ./star/OBJ/amd64-freebsd-clang/star
star: Missing command, must specify -x -c -u -r -t -copy -n or -diff.
Usage: star cmd [options] [-find] file1 ... filen [find expression]

Use star -help
and star -xhelp
to get a list of valid cmds and options.

Use star H=help
to get a list of valid archive header formats.

Use star diffopts=help
to get a list of valid diff options.

star-1.5.3% ldd tartest/OBJ/amd64-freebsd-clang/tartest
tartest/OBJ/amd64-freebsd-clang/tartest:
libc.so.7 => /lib/libc.so.7 (0x80082a000)

star-1.5.3% ldd rmt/OBJ/amd64-freebsd-clang/rmt
rmt/OBJ/amd64-freebsd-clang/rmt:
libc.so.7 => /lib/libc.so.7 (0x80082a000)

---

Wie auch immer, die neue Version ist jetzt installiert, mal schauen wie das Backup-Script nachher läuft.
 
Ich habe es mir mal kurz angeschaut. smake versagt, da er irgendwelche internen Makros nichts auflösen kann. Ich vermute, er stolpert über Klammern in aus dem Host übernommenen Strings. Bei gmake ist das Problem der sehr eigene Aufbau der Makefiles. Er findet kein Rule-File für FreeBSD/amd64. Man muss es ihm bereitstellen und schon baut es:

Code:
cd /pfad/zu/den/quellen
cp ./RULES/i386-freebsd-clang64.rul RULES/amd64-freebsd-clang.rul
gmake

Man könnte daraus nun wieder einen Port bauen, aber ehrlich gesagt ist meine Motivation dazu gering. :)
 
Zuletzt bearbeitet:
Na also, geht doch, die Backups laufen wie gehabt durch (und können auch wieder ausgepackt werden).

@Yamagi:
Danke Yamagi, smake kann also die eine Regel erstellen bleibt aber bei irgendwas hängen, das mit einer geschweiften Klammer zu tun hat. gmake kann aber auf der Basis fertig bauen. Jetzt müsste man den cp/gmake-Workaround in den Port patchen oder sich dem problematischen Makro annehmen, da smake ja gerne für den Port eingesetzt wurde. Hier liegt noch das schöne Buch "Das Softwarewerkzeug Make" von 1995, vllt. bekomme ich es damit in den Griff.
 
Zurück
Oben