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

  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
     
    sevY, 24.02.2006
    #1
  2. oneOeight

    oneOeight MacUser Mitglied

    Mitglied seit:
    23.11.2004
    Beiträge:
    48.160
    Zustimmungen:
    3.885
    wenn du die anständig in /usr/local/bin packst und nicht die alten überschreibst, sollte es da keine probleme geben...
     
    oneOeight, 24.02.2006
    #2
  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?
     
    sevY, 24.02.2006
    #3
  4. oneOeight

    oneOeight MacUser Mitglied

    Mitglied seit:
    23.11.2004
    Beiträge:
    48.160
    Zustimmungen:
    3.885
    ja...
    in skripten schreibt man aber eh alles mit pfad angabe...
     
    oneOeight, 24.02.2006
    #4
  5. maceis

    maceis MacUser Mitglied

    Mitglied seit:
    24.09.2003
    Beiträge:
    16.696
    Zustimmungen:
    602
    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.
     
    maceis, 24.02.2006
    #5
  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.
     
    sevY, 24.02.2006
    #6
  7. oneOeight

    oneOeight MacUser Mitglied

    Mitglied seit:
    23.11.2004
    Beiträge:
    48.160
    Zustimmungen:
    3.885
    man kann bei skripten halt nie sicher sein, dass immer die gleiche (oder überhaupt eine) PATH variable vorhanden ist...
     
    oneOeight, 25.02.2006
    #7
  8. ratti

    ratti MacUser Mitglied

    Mitglied seit:
    09.05.2004
    Beiträge:
    1.515
    Zustimmungen:
    56
    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
     
    ratti, 26.02.2006
    #8
  9. thomastr

    thomastr MacUser Mitglied

    Mitglied seit:
    26.01.2004
    Beiträge:
    45
    Zustimmungen:
    4
    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
     
    thomastr, 26.02.2006
    #9
  10. maceis

    maceis MacUser Mitglied

    Mitglied seit:
    24.09.2003
    Beiträge:
    16.696
    Zustimmungen:
    602
    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.
     
    maceis, 26.02.2006
    #10
Die Seite wird geladen...
Ähnliche Themen - BSD Style rsync
  1. isarcanoe
    Antworten:
    23
    Aufrufe:
    849
    isarcanoe
    26.06.2017
  2. vib
    Antworten:
    10
    Aufrufe:
    1.390
    asterixxER
    25.02.2011
  3. eolmax
    Antworten:
    2
    Aufrufe:
    2.602
    -Nuke-
    09.05.2005
  4. TMoS
    Antworten:
    3
    Aufrufe:
    831
    TMoS
    24.02.2005