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

Dieses Thema im Forum "Mac OS X - Unix & Terminal" wurde erstellt von sevY, 24.02.2006.

  1. sevY

    sevY Thread Starter

    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:
    47.148
    Zustimmungen:
    3.680
    MacUser 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

    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:
    47.148
    Zustimmungen:
    3.680
    MacUser seit:
    23.11.2004
    ja...
    in skripten schreibt man aber eh alles mit pfad angabe...
     
  5. maceis

    maceis MacUser Mitglied

    Beiträge:
    16.647
    Zustimmungen:
    596
    MacUser 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

    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:
    47.148
    Zustimmungen:
    3.680
    MacUser 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
    MacUser 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
    MacUser 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.647
    Zustimmungen:
    596
    MacUser 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...

Diese Seite empfehlen