BSD Style cp, rsync, dump, restore (…) durch GNU Style ersetzen

Diskutiere mit über: BSD Style cp, rsync, dump, restore (…) durch GNU Style ersetzen im Mac OS X - Unix & Terminal Forum

  1. sevY

    sevY Thread Starter Gast

    Hi,

    hat jemand Erfahrungen damit, die unter Mac OS X verfügbaren Tools wie cp, rsync usw. durch die verbesserten GNU Exemplare zu ersetzen?

    Ein Script wie folgendes ist z.B. zum Rotieren von Backups unter OS X nicht ohne weiteres ausführbar, da „cp“ die Parameter -a und -l nicht kennt…

    Code:
    #!/bin/bash
    #(…)
    if [ -d $DATA_PATH/$SERVER/daily.0 ] ; then
            cp -al $DATA_PATH/$SERVER/daily.0 $DATA_PATH/$SERVER/daily.1
    fi
    #(…)
    


    Bei „dump“ vermisse ich ebenfalls einige Optionen, „rsync“ kriegt es nicht hin, nicht existente Verzeichnisse bei einem Fullback in ein leeres Verzeichnis anzulegen usw…


    Entweder kompiliere ich die Tools selbst aus den GNU Sources oder installiere mir diese über Portage/Darwinports/Fink… nur… funktioniert dann auch alles wie erwartet mit den bereits vorhandenen Softwares und dem System, dass die BSD Style Binaries erwartet?

    Ich hab' da so meine Zweifel… daher würd' mich interessieren, ob jemand Erfahrung damit gemacht hat.

    Yves
     
  2. oneOeight

    oneOeight MacUser Mitglied

    Beiträge:
    46.773
    Zustimmungen:
    3.629
    Registriert seit:
    23.11.2004
    wenn du die anständig in /usr/local/bin packst und nicht die alten überschreibst, sollte es da keine probleme geben...
     
  3. sevY

    sevY Thread Starter Gast

    Ok. Ausgeführt werden dann, sofern ohne Pfadangabe angegeben, die Binaries, die in der PATH Variable hierarchisch zuerst kommen, oder?
     
  4. oneOeight

    oneOeight MacUser Mitglied

    Beiträge:
    46.773
    Zustimmungen:
    3.629
    Registriert seit:
    23.11.2004
    ja...
    in skripten schreibt man aber eh alles mit pfad angabe...
     
  5. maceis

    maceis MacUser Mitglied

    Beiträge:
    16.645
    Zustimmungen:
    596
    Registriert seit:
    24.09.2003
    Ob die GNUismen tatsächlich "verbesserte" Exemplare sind wage ich mal vorsichtig anzuzweifeln.
    Die GNU Programme halten sich oft nicht an die SUSv3 und die Portabilität von Skripten, die sich auf GNUische Funktion verlassen ist oftmals nicht gegeben. Yves liefert ja selbst das Beispiel mit :D.

    Sicher muss jeder selbst entscheiden, ob er sie einsetzt, aber man sollte sich dann auch der möglichen Konsequenzen bewusst sein.
    So generell von "besser" zu reden halte ich persönlich für unangebracht.

    jm2c

    btw: wie man unter mac OS X Skripten rotieren kann, kannst Du bei den periodic Skripten nachsehen.
    Schöner und IMHO auch einfacher geht es mit einer netten Schleife.
     
  6. sevY

    sevY Thread Starter Gast

    Zu den Pfadangaben in Scripten… aus Sicherheitsgründen wahrscheinlich, oder? Damit ich einem Script keine manipulierte Executable untermogeln kann, sowie es Rootkits tun?

    Bezüglich besser z.B. bei 'cp'… das Parameter 'l' für „link files instead of copying“ finde ich definitiv sinnvoll und wünschenswert, sodass diese Extrafunktionalität des GNU-Style Executable für mich als Argument für „besser“ erschließt.
     
  7. oneOeight

    oneOeight MacUser Mitglied

    Beiträge:
    46.773
    Zustimmungen:
    3.629
    Registriert seit:
    23.11.2004
    man kann bei skripten halt nie sicher sein, dass immer die gleiche (oder überhaupt eine) PATH variable vorhanden ist...
     
  8. ratti

    ratti MacUser Mitglied

    Beiträge:
    1.515
    Zustimmungen:
    56
    Registriert seit:
    09.05.2004
    Juhu, bei der Gelegenheit klinke ich mich mal ein:

    Wie umgeht ihr die Beschränkungen mit "ps"?

    1.
    Was mir ganz dolle fehlt, ist "-f": Darstellung der Prozesse als Baum, mit Abhängigkeiten.
    "pstree" scheint ja nicht zu existieren.

    2.
    ps schneidet bei mir alle Ausgaben an der Terminalbreite ab - auch, wenn die Ausgabe in eine Pipe geht. Dadurch schlagen solche Abfragen fehl:

    ps -aux | grep -i "Retrospect"

    ...den Retrospect.app liegt in einem so langen Unterordner, das ps das gar nicht erst ausgibt.



    Will auch GNU-Tools (Und bei cp -a unterschriebe ich auch schn mal) :)
    Kann man aber dank HFS+-Filesystem mit Sicherheit knicken.

    Gruß,
    Ratti
     
  9. thomastr

    thomastr MacUser Mitglied

    Beiträge:
    45
    Zustimmungen:
    4
    Registriert seit:
    26.01.2004
    Damit die Ausgabe nicht auf Terminalbreite abgeschnitten wird, mußt Du ein bzw. zwei "w" als Option mit ausfnehmen. Mit einem w verhält sich ps so, als ob das Terminal 132 Zeichen breit ist. Bei zwei w wird allses ausgegeben.

    Also:
    ps -wwaux | grep -i "Retrospect"

    Gruß

    Thomas
     
  10. maceis

    maceis MacUser Mitglied

    Beiträge:
    16.645
    Zustimmungen:
    596
    Registriert seit:
    24.09.2003
    Es gibt irgendwo eine Version für Mac OS X (seit mehreren Jahren). Hatte ich mal drauf, brauch ich aber nicht wirklich.

    Hier - Google, erste Seite.
     
Die Seite wird geladen...
Ähnliche Themen - BSD Style rsync Forum Datum
rsync aller Ordner des Ziellaufwerks/-ordners? Mac OS X - Unix & Terminal 19.02.2016
rsync lokaler Dateien auf NAS - Fehlermeldungen Mac OS X - Unix & Terminal 22.10.2013
rsync --del (verschieben statt löschen)? Mac OS X - Unix & Terminal 07.09.2013
Rsync und allgemeine Befehlseingabefrage Mac OS X - Unix & Terminal 20.07.2013
Rsync Bidirectional? Mac OS X - Unix & Terminal 03.06.2013

Diese Seite empfehlen

Benutzerdefinierte Suche