Login
Newsletter

Thema: Dateibackup vor dem Ändern

48 Kommentar(e) || Alle anzeigen ||  RSS
Kommentare von Lesern spiegeln nicht unbedingt die Meinung der Redaktion wider.
0
Von eVuG9dguNdA am Fr, 12. März 2004 um 00:36 #
Naja... besser waere dann wohl etwas wie rcs; einfach

| $ mkdir RCS
| $ ci -l ...

viel uebersichtlicher, und Aenderungen sind dokumentierbar

[
| Versenden | Drucken ]
  • 0
    Von anon am Fr, 12. März 2004 um 01:11 #
    Weil man dann wieder ein Programm mehr braucht. Ein "cp" ist nunmal intuitiver zu erfassen als rcs oder cvs. Wenn schon, dann checkt man das komplette /etc in rcs ein. Aber für eine einzelne Datei rcs womöglich noch zu installieren ist gnadenloser overhead!
    [
    | Versenden | Drucken ]
    • 0
      Von Mike am Fr, 12. März 2004 um 01:22 #
      Wenn du nicht grad auf einem eingebetteten System bist ist der overhead so gnadenlos wohl nicht; RCS ist auf jedenfall eine saubere Lösung die viele Vorteile zu bieten hat..
      [
      | Versenden | Drucken ]
      • 0
        Von anon am Fr, 12. März 2004 um 01:56 #
        Du installierst rcs, um mal gerade eben eine Datei zu ändern und dabei sicherstellen zu wollen, dass Du eine funktionierende Kopie behälst? Für mich ist das nicht nur gnadenloser overhead, sondern schierer Wahnsinn.
        [
        | Versenden | Drucken ]
        • 0
          Von JJ am Fr, 12. März 2004 um 03:04 #
          Für eine einzelne Datei mag es Overkill sein, aber wenn man ein größeres System wartet, kann das durchaus zum Rettungsanker werden, besonders wenn mehrere Leute damit beschäftigt sind. So lässt sich dann jederzeit schnell nachvollziehen, was wann geändert wurde.
          Ein vernünftiges Backup ersetzt das natürlich nicht.
          [
          | Versenden | Drucken ]
          • 0
            Von spyda am Fr, 12. März 2004 um 03:33 #
            entspricht auch garnicht der oben gestellten anforderung einfach nur ein backup einer datei mit datum zu erstellen ;o)
            man könnte es natürlich mit kommentaren versehen und mit unterschrift verifiziert in die schweizer berge schicken aber dann dauerts bis ich die datei ändern kann :o)
            [
            | Versenden | Drucken ]
            0
            Von Daniel am Fr, 12. März 2004 um 10:43 #
            Hmm, ich mache, wenn ich weiss, mein Kollege fummelt auch an den /etc-Dateien rum, immer eine Kommentarzeile rein wie z.B.:
            # XY änderte am 12.03.2004 wegen blablabla folgende Zeile von:
            # alte Zeile
            # in:
            neue Zeile

            und da ich ein "ordentlicher" Mensch bin wird jede Änderung, auch wenn ich allein im System bin, dokumentiert, schließlich will ich ja auch noch in 3 Jahren wissen, was die Zeile bedeutet, falls am Server nach 3 Jahren etwas nicht funktioniert.

            [
            | Versenden | Drucken ]
            0
            Von outsoft am Fr, 12. März 2004 um 11:40 #
            RCS funktioniert nur mit einzelnen Dateien, nicht mit ganzen Verzeichnissen.
            [
            | Versenden | Drucken ]
    0
    Von Olli am Fr, 12. März 2004 um 09:59 #
    backups macht man nicht mit rcs bzw cvs da ganz einfach die rechte erhalten beleiben muessen.
    olli
    [
    | Versenden | Drucken ]
    • 0
      Von Roman Kreisel am Sa, 13. März 2004 um 13:30 #
      Das mit den Dateirechten lässt sich mit getfacl und setfacl vielleicht lösen. Hab ein kleines (äusserst schlechtes da von mir, ungetetestes, vermutl. instabiles und unsicheres) script geschrieben, das das ganze automatisiert: http://www.linuxwiki.de/RCS_2fKonfigurationsVerwaltung
      [
      | Versenden | Drucken ]
      • 0
        Von Roman Kreisel am So, 14. März 2004 um 13:15 #
        Der link wurde etwas geändert um besser in die Struktur des wikis zu passen:
        http://www.linuxwiki.de/RCS/KonfigurationsVerwaltung
        [
        | Versenden | Drucken ]
0
Von JJ am Fr, 12. März 2004 um 01:29 #
Sowas habe ich seit Ewigkeiten in der zentralen Profildatei drin, allerdings ohne den Test und mit Punkt und Datum in Klammern statt dem Unterstrich. War mal in einem alten Unix-Handbuch aufgeführt und hat sich bei mir schon oft bewährt und mir viel Ärger erspart.
[
| Versenden | Drucken ]
0
Von anonymous am Fr, 12. März 2004 um 07:57 #
Ist echt ein netter Tipp, nur verlassen ist mensch wenn er sich drauf verlässt.

Leider haben diese bash-Tipps ein Problem das niemand beachtet: sobald ich eine Datei mit Leerzeichen hab ist es vorbei!

mit "test.sh" funktioniert es wunderbar: "test.sh_040312"
mit "t e 2 ! . s_ H0 1" funktioniert es nicht: no such file...

Zugegeben, war sogar aus meiner Sicht ein extremes Beispiel ;-)
Aber solche Dateien sollen vorkommen *ans.Windows.tock.tock.tock...*

[
| Versenden | Drucken ]
  • 0
    Von conter_anonymous am Fr, 12. März 2004 um 08:21 #
    Warum sollte das nicht funktionieren? Entweder Du benutzt die bashexpansion für den Dateinamen oder Du maskierst selbst die Leerzeichen oder gleich den ganzen Dateinamen.
    [
    | Versenden | Drucken ]
    0
    Von nobbi am Fr, 12. März 2004 um 08:22 #
    nur drum ist ja auch ein "test -e" drin, der würde sowas doch abfangen, oder sehe ich das falsch...
    auserdem, wer editiert schon Window$ Dateien?? :o)
    [
    | Versenden | Drucken ]
    • 0
      Von anonymous am Fr, 12. März 2004 um 11:01 #
      was bringt mir "test -e" ? Das halte ich nur für notwendig, vertippe ich mich mal (bei tabcomplete eh schwer möglich)
      Ich mag trotzdem Dateien mit Leerzeichen wegsichern...

      > wer editiert schon Window$ Dateien

      Nunja, war ein Beispiel. Gibt ja Mediendateien mit allen möglichen Sonderzeichen. Die kann ich sonst auch ansprechen, also solls im Script auch möglich sein.

      [
      | Versenden | Drucken ]
    0
    Von Jochen am Fr, 12. März 2004 um 08:47 #
    Zugegeben, ein bisschen verbesserungswürdig ist die Funktion schon, aber das ändert nix am Prinzip. Meine Version:

    function backup {
    for FILE ; do
    [[ -e "$FILE" }]] && cp "$FILE" "${FILE}_$(date +%Y%m%d)" || echo "\"$FILE\" not found." >&2
    done
    }

    Ist "Datei mit Leerzeichen"-sicher, kann mehrere Dateien auf einmal kopieren, verwendet eine 4stellige Jahreszahl und schreibt Fehlermeldungen nach stderr. Nachteil ist ggf. die bash/ksh-Syntax; in sh ginge es aber auch, wenn auch mit einem kleinen Umweg.

    Schade, dass hier pre- oder code-Tags nicht funktionieren...

    Jochen

    [
    | Versenden | Drucken ]
    • 0
      Von panos am Sa, 13. März 2004 um 15:54 #
      Dein Beispiel ist leider voellig unbrauchbar, da noch nicht einmal die Syntax korrekt ist.
      Vielleicht das naechste mal vorm posten testen. Schliesslich lesen hier auch Leute mit die
      keine Ahnung vom Shell-Skripten haben.
      [
      | Versenden | Drucken ]
      • 0
        Von Jochen am Mo, 15. März 2004 um 09:12 #
        > Dein Beispiel ist leider voellig unbrauchbar

        Nun, warum postest Du dann nicht direkt die Korrektur? Manchmal macht man halt auch mal Fehler... Also, die schliessende geschweifte Klammer innerhalb der [[ ]] hat dort nichts zu suchen. Korrektur:

        function backup {
        for FILE ; do
        [[ -e "$FILE" ]] && cp "$FILE" "${FILE}_$(date +%Y%m%d)" || echo "\"$FILE\" not found." >&2
        done
        }

        Jochen

        [
        | Versenden | Drucken ]
    0
    Von anon am Fr, 12. März 2004 um 17:50 #
    Für Sonderzeichen (Leerzeichen) gibt es xargs.
    [
    | Versenden | Drucken ]
0
Von Fabian am Fr, 12. März 2004 um 08:49 #
Ich würde die Funktion aber (der Übersichtlichkeit) eher so schreiben und außerdem %s stat "%y%m%m" benutzen:

backup()
{
if [ -e "$1" ]; then
cp "$1" "$1_$(date +%s)"
else
echo "$1: No such file or directory".
fi
}

Es ist zwar etwas länger, aber man hat imho so ein strukturierteres Programm. Auch sind `` "deprecated" soweit ich weiss. Das letzte: %s hängt die aktuelle Zahl von Sekunden seit 1970 an die Datei an und garantiert so einen vorlaufenden Timer, denn das derzeitige backup-Programm checkt nicht ob im selben Tag schon eine Datei editiert wurde.

Für größere Systeme bin ich auch für CVS :-)

cu

Fabian

[
| Versenden | Drucken ]
  • 0
    Von Toxic am Fr, 12. März 2004 um 11:25 #
    Grundsätzlich ganz gut. Aber die Fehlerausgabe auf STDOUT macht keinen Sinn, ausserdem wird im Fehlerfall (Datei existiert nicht) kein entsprechender exit-Code (1) sondern 0 ausgegeben (Da das echo 0 liefert)

    Besser cp das error-handling machen lassen:
    backup()
    {
    [ -n "$1" ] && cp "$1" "$1_$(date +%s)"
    }

    Grüße, Jürgen

    [
    | Versenden | Drucken ]
    • 0
      Von Jochen am Fr, 12. März 2004 um 13:12 #
      Kann man so stehen lassen, bis auf die Option "-n" (non-zero length) beim test-Kommando ([). Da war die Option "-e" (exists) schon richtig!

      Jochen

      [
      | Versenden | Drucken ]
      • 0
        Von Fabian am Sa, 13. März 2004 um 12:33 #
        Nein! ;-)

        -n ist da schon richtig, da hier ja cp das Fehler-Handling übernimmt ...

        cu

        Fabian

        [
        | Versenden | Drucken ]
      0
      Von panos am Sa, 13. März 2004 um 15:52 #
      Schon viel besser.

      Der urspruengliche Vorschlag war wirkich undurchdacht. Warum sollte man eine
      einzelne Fehlerursache herauspicken und anders behandeln als alle anderen Fehler die auftreten
      koennen? Und warum sollte man den dann auch noch falsch behandeln, ohne Fehlercode usw.?
      Zu bedenken ist hier auch noch die Usability. Jede von cp (bzw. Standard-Tools) generierte
      Fehlermeldung ist internationalisiert, jede hart ins Skript gecodete nicht.

      Aber auch hier werden noch Fehler falsch behandelt. Einen leeren Dateinamen wird cp auch
      bemaengeln (die Datei wird nicht existieren, fertig). Eigentliche Intention duerfte hier
      gewesen sein, den Fall abzufangen, dass backup ohne Argument aufgerufen wird. Dafuer ist
      dann aber der Test falsch.

      Besser:

      backup() {
      test $# = 1 || { echo >&2 "usage: backup FILE"; return 1; }
      cp "$1" "$1_`date ...`"
      }

      [
      | Versenden | Drucken ]
0
Von bg am Fr, 12. März 2004 um 10:34 #
Dafür gibts doch eigentlich schon das Script old oder?

cat /usr/bin/old
...

[
| Versenden | Drucken ]
  • 0
    Von Jochen am Fr, 12. März 2004 um 13:14 #
    Bei mir (Fedora Core 1) nicht. Bei welcher Distri in welchem Paket steckt das denn?

    Jochen

    [
    | Versenden | Drucken ]
    • 0
      Von Stormbringer am Sa, 13. März 2004 um 07:08 #
      Hi,

      bei SuSE (zumindest 8.2 & 9.0) ist es Bestandteil des Pakets "aaa_base".

      Gruß

      [
      | Versenden | Drucken ]
      • 0
        Von Jochen am Sa, 13. März 2004 um 08:45 #
        Ah, danke für die Auskunft. Das ist ja nun das Basispaket mit den wichtigsten Verzeichnissen und so... Da werde ich mal auf der SLES8 nachsehen müssen.

        Jochen

        [
        | Versenden | Drucken ]
    0
    Von Michael am Fr, 6. Mai 2005 um 10:06 #
    Das macht aber kein cp, sondern ein mv (Suse 9.3).
    [
    | Versenden | Drucken ]
0
Von Matthy am Fr, 12. März 2004 um 10:37 #
Hallo Leute, obwohl schon so manches Linux-System installiert, betrachte ich mich noch als "Linux-Neuling". Ich bin aber beruflich bedingt nicht in der Lage, mich voll auf Linux zu konzentrieren. Deshalb sind mir alle Tipps und Hilfen willkommen. Ja, ich bin ein "Windows-geschaedigter", und ja, ich bin "GUI-verwoehnt". Aber ich moechte lernen.

Wenn ich mir nun diesen Artikel anschaue (den ich wie meistens bei pro-linux sehr schaetze), und dann die sich anschliessende Diskussion, frage ich mich, ob sich hier einfach nur ein paar Experten oder Gurus in ihrer "Fachsprache" unterhalten wollen (im doppelten Wortsinn), oder ob dies auch einen echten Nutzen fuer Neulinge und Einsteiger bringen soll. Vielleicht sind aber auch manche mit dem Nischendasein von Linux zufrieden? (Falls das zutreffend ist). ich glaube aber und hoffe, dass sich Linux auch auf dem Desktop durchsetzen muss.

pro-linux schreibt in seiner Erklaerung u.a.: "Wir wollen insbesondere Linux-Neulingen bei den ersten Schritten mit Linux helfen, aber auch für die Fortgeschrittenen und Profis interessante Themen bieten."

Zurueck zum vorliegenden Artikel und der Diskussion. Mein Argument ist folgendes: Dieser Artikel zielt doch eigentlich auf Neulinge. Experten wissen das doch laengst oder wissen sich entsprechend zu helfen. Ein solcher Tipp ist aber langfristig nur hilfreich, wenn er auch genau erklaert, wie das Script in diesem Fall funktioniert - sonst uebernimmt man es einfach ohne zu verstehen, warum. Statt hier also drueber zu streiten, ob nun RCS, CSV oder XYZ ;-) besser gewesen waere, und das in einer Sprache, die Neulinge nicht verstehen, sollte man lieber versuchen, diesen Script und die Idee dahinter fuer Einsteiger transparenter zu machen.

Natuerlich koennte ich hergehen, und jetzt muehsam aus dem Handbuch mir das Script "uebersetzen". Aber effektiver waere doch, die Sprache anhand praktischer Alltagsbeispiele wie diesem erklaert zu bekommen.

Nichts fuer ungut, trotzdem moechte ich mich bei dieser Gelegenheit fuer das allgemeine Engagement hier bedanken. :) :)

Greetings,
Matthy from Ireland

[
| Versenden | Drucken ]
  • 0
    Von Mario am Fr, 12. März 2004 um 10:55 #
    Dann erklaeren wird es ein wenig:

    backup() {
    Funktionsdefinition

    test -e $1
    Abfrage: Wenn Argument ($1 - in diesem Fall Dateiname) existiert dann:

    cp $1 $1_`date +%y%m%d`
    Kopiere (cp) Datei $1 als Dateiname ($1)+die Ausgabe von Datum (date +%y%m%d).

    Im Falle, dass Datei $1 nicht existiert (||), gebe eine Fehlermeldung (echo) aus.

    Du kannst auch die Ausgaben auch separat testen:

    test -e "Dateiname" && echo "Datei vorhanden" || echo "Datei nicht vorhanden"

    oder die Augabe der neuen Datei+Datum

    echo "Dateiname"_`date +%y%m%d`

    Wenn Du also stallt echo cp benutzt, wird die Datei umkopiert:

    cp "Dateiname" "Dateiname"_`date +%y%m%d`
    oder eben als Parameter in einer Funktion:
    cp $1 $1_`date +%y%m%d`

    Ob es allerdings wirklich Sinn macht, jede Zeile eines Scripts zu erklaeren, mag ich nicht kommentieren ;)

    [
    | Versenden | Drucken ]
    • 0
      Von anfaenger am Fr, 12. März 2004 um 11:15 #
      Ja, es macht Sinn so eine Zeile einmal seziert zu bekommen, weil sonst weiss man nicht einmal wo ein Befehl aufhoert und der naechste anfaengt. Die man-Pages sind nicht fuer Anfaenger geeignet, habe ich selber probiert und es fehlen solche "Sezierarbeiten" wie oben.
      Danke, solche Hilfe ist wirklich brauchbar! :)
      [
      | Versenden | Drucken ]
      0
      Von liquidat am Fr, 12. März 2004 um 14:39 #
      Danke, das hat auch mir wieder einige Schritte ermöglicht, für die ich sonst lange gebraucht hätte...

      liquidat

      [
      | Versenden | Drucken ]
      0
      Von honiglecker am Fr, 12. März 2004 um 14:50 #
      Wieder was gelernt.
      So langsam fange ich an, Linux auch zu mögen und nicht nur zu benutzen, weil es notwendig ist. Und um ehrlich zu sein habe ich schon eine ganze Weile sowas gesucht, denn bisher machte ich das immer per Hand.
      [
      | Versenden | Drucken ]
      0
      Von RPR am Sa, 13. März 2004 um 11:16 #
      Vielen Dank für den wertvollen Kommentar (einer der meist leider wenigen hier)! :-)
      Mach ich also gleich weiter:

      RCSund CVSsind Verwaltungssysteme, die mit Hilfe von Versionen Dateien im Zusammenhang (gleicher Version) speichern.
      Jede neue Version einer Datei wird in das zentrale System (oft ein anderer Server) "eingecheckt".
      Es gibt also einen CVS-Server und CVS-Clients. CVS-Clients gibt es als Kommandozeile und natürlich auch mit graf. Oberfläche und zwar für alle Betriebssysteme, d.h. man kann Daten so auch sehr gut zwischen Systemen austauschen.
      Mehr zu CVS findet man z.B. unter http://www.suse.de/de/private/support/online_help/howto/cvs/cvs.html (auf deutsch) ;-)
      Jede alte Version kann dann zu einer beliebigen Version (einem best. Zeitpunt z. B.) zurückgesetzt werden.
      Ein CVS kann für sehr viele Sachen sehr gewinnbringend eingesetzt werden und sollte auf keiner Workstation fehlen:

    • Konfigurationsdateien können schnell und übersichtlich gesichert werden.

    • Programmierer können ihren Programmcode im Team verwalten und austauschen

    • Es können sehr schnell Replikate hochgezogen werden (Unser Admin macht das z.B. für DNS!)

    • Man kann es als Datenpool oder auch Wissenspool verwenden (in kl. und mittl. Firmen oft schwer vermisst)

    • etc. (wer schreibt noch was??
    • Noch ein Wort zur Einrichtung:
      Der Server kann in den meisten Distris einfach als Paket installiert werden; der Start sollte automatisch über den init-Prozess erfolgen.
      Der Rest kann zu 99% einfach über einen graf. Client erfolgen, also das Einrichten von Projekten, das Ein- und Auschecken, etc.

      Cheers :-)

    [
    | Versenden | Drucken ]
0
Von Fabian am Sa, 13. März 2004 um 12:42 #
Ich erkläre auch noch mal meine Lösung:

backup() # Funktionsdefinition
{
DATEINAME="$1" # DATEINAME auf das erste Argument der Funktion setzen
if [ -e "$DATEINAME" ] # Wenn die Datei existiert ...

# [ ist ein Alias auf das Programm test, siehe auch "man test"

then # dann

cp "$1" "${DATEINAME}_$(date +%s)" # kopiere das ganze zum Backup mit dem Datum angehängt

# Die geschweiften Klammern müssen sein, da sonst der Unterstrich zu $DATEINAME gehörig betrachtet würde.

else # ansonsten (also wenn die if-Bedingung nicht zutrifft; der Test fehlschlägt)

echo "$DATEINAME: No such file or directory." 1>&2 # Gib eine Fehlermeldung auf der Standardfehlerausgabe aus

# 1>&2 leitet alles von der Standardausgabe (kurz: stdout) zur Standardfehlerausgabe (kurz: stderr)

return 1 # Gib einen Fehlercode von 1 zurück.

fi

return 0 # Alles ok, der Fehlercode $? ist dann gleich 0

}

Hoffe das hilft ein wenig. (# ist immer ein Kommentar)

cu

Fabian

[
| Versenden | Drucken ]
0
Von RdC am Fr, 12. März 2004 um 18:20 #
Jemand, der schon *VIEL* Zeit verloren hat, wegen irgendwelchen idiotischen Datumsformaten kann nur darauf hinweisen, dass es einen ISO-Standard gibt:

JJJJ-MM-TT

So und nicht anders gehört es, da gibt's keine Mißverständnisse und keine Probleme und richtig sortiert wird es auch.

Oder was soll denn bitte 040602 sein?
2. Juni 2004?
4. Juni 2002?
6. April 2002?

Wäre alles möglich, in 10 Jahren weiß kein Mensch mehr was das für ein Datum ist.

Also bitte:

backup() {
test -e $1 && cp $1 $1_`date +%Y-%m-%d` ||
echo $1: No such file or directory;
}

[
| Versenden | Drucken ]
  • 0
    Von anon am Sa, 13. März 2004 um 02:03 #
    date +%Y-%m-%d gibt 2004-03-12?
    Was soll das sein? 12.März 2004 oder doch der 3.Dezember?
    Du schießt Dir gerade ins Knie. Denn wer kann sich in 10 Jahren noch an den ISO-Standard erinnern? Dann schon lieber `date -R`

    Und überhaupt: Sollte man nicht zuerst einmal überprüfen, ob man nicht eine Datei überschreibt? Vielleicht existiert /etc/passwd_Sat_13 Mar_2004_01:52:54_+0100 ja schon?

    Außerdem will man in 10 Jahren vielleicht wissen, wer das gemacht hat: `whoami`
    Zeitzone wäre nicht auch schlecht: `cat /etc/timezone`
    Auf welchem Rechner eigentlich? `uname -a`
    Vorsichtshalber mal mit ROT-13 verschlüsseln? `tr a-z n-za-m`
    Oder lieber sicherheitshalber alles dranhängen? Sicher ist sicher! `find / -type f -exec cat {} \;`

    [
    | Versenden | Drucken ]
    • 0
      Von cenotaph am Sa, 13. März 2004 um 18:48 #
      date +%Y-%m-%d gibt 2004-03-12?
      Was soll das sein? 12.März 2004 oder doch der 3.Dezember?
      Du schießt Dir gerade ins Knie. Denn wer kann sich in 10 Jahren noch an den ISO-Standard erinnern? Dann schon lieber `date -R`

      Leute, die nicht die geringste Ahnung von der Bedeutung der Standardisierung für die Ingenieurwissenschaften haben, also auch kein ISO-Datumsformat korrekt interpretieren können, haben ohnehin auf einem System nichts zu administrieren.
      Bei solchen Einstellungen, wie der obig zitierten, braucht man sich nicht zu wundern, warum die IT immer noch Lichtjahre vom Qualitätsstandard richtiger Ingenieurwissenschaften entfernt ist.

      [
      | Versenden | Drucken ]
      • 0
        Von anon am Sa, 13. März 2004 um 19:41 #
        Du meinst beispielsweise den Qualitätsstandard der NASA-Ingenieure, die sich nicht einigen können, ob sie im amerikanischen oder im metrischen System rechnen sollen?

        Da ist die Informatik *hoffentlich* noch Lichtjahre von deren Qualitätsstandard entfernt.

        [
        | Versenden | Drucken ]
        0
        Von anon am Sa, 13. März 2004 um 19:50 #
        Aber nochmal zur Erinnerung:

        in dem Kurztip ging es darum, eine Funktion zu automatisieren, die ein Backup einer Konfigurationsdatei anlegt, um eine funktionierende Version dieser Datei bei Bedarf wieder einspielen zu können.

        Wenn man sauber arbeitet, werden solche Backup-Dateien gelöscht, sobald man merkt, dass die geänderte Konfigurationsdatei funktioniert. Es ist also scheissegal, wie man diese Backupdatei nennt. Ob nun *.bak, *.orig, *.sicherung, *.xyz oder *.2004_03_13 spielt keine Rolle, da diese Datei (hoffentlich) nicht länger als 5 Minuten existiert. Wer da mit igendwelchen ISO-Standards ankommt hat eindeutig einen Sprung in der Schüssel.

        [
        | Versenden | Drucken ]
        0
        Von RdC am Mo, 15. März 2004 um 10:00 #
        Es gibt auf der ganzen Welt niemanden, der das Datum nach Jahr-Tag-Monat angibt, daher fällt der 3. Dezember wohl aus.

        Außerdem ist genau das ja der Punkt, dass man ein eindeutiges STANDARDISIERTES Format verwendet.

        [
        | Versenden | Drucken ]
      0
      Von nixname am Mo, 15. März 2004 um 15:29 #
      Es ist doch ganz einfach, YYYY-MM-TT ist immer der zeitlichen Reihenfolge nach sortiert. Wer MM und TT vertauscht, der sollte lieber wieder im Sandkasten spielen.
      [
      | Versenden | Drucken ]
    0
    Von Michael Behrens am Sa, 13. März 2004 um 16:46 #
    Zumindest gnu-date kann das ISO-Datum direkt:

    $ date --iso-8601=seconds
    2004-03-13T16:44:41+0100

    [
    | Versenden | Drucken ]
    0
    Von Ecaroh am Mo, 15. März 2004 um 22:07 #
    Ja mache ich auch so bei Logfiles. Gibt es auch einen ISO Standard, der Stunde und Minute hier anfuegt? JJJJ-MM-TT_ss-mm ? Oder wie wird das unter ISO gehandhabt?

    Ecaroh < mail to : ecaroh bei arcor punkt de >

    [
    | Versenden | Drucken ]
0
Von jemand am Sa, 21. Januar 2006 um 22:29 #
#!/bin/bash
konsole=$(tty)

# Variablen vorbereiten
MonatJahr=`date +%Y-%m`
NeuerName=$1_`date +%Y-%m-%d--%H-%M-%S`
NurName=$(basename $NeuerName)

# Verzeichnis Monat-Jahr machen damit alte Sicherheitskopien leichter
# weggelöscht werden können
DateiGroesse=`wc -c < $1`
if [ $DateiGroesse -le 9999999 -a $DateiGroesse -ne 0 ]
then
mkdir -p /home/backup/$MonatJahr
cp $1 /home/backup/$MonatJahr/$NurName && echo "Kopieren erfolgreich"
#---> test -e /q/backup/$MonatJahr/$NurName && echo "Datei wurde angelegt"
else
echo "----- Datei >= 10MB oder = 0 --- KEINE SICHERHEITSKOPIE ----"
fi

[
| Versenden | Drucken ]
Pro-Linux
Pro-Linux @Facebook
Neue Nachrichten