noqqe


blog | sammelsurium | projects | about

Bash | Backup eines Files mit Zeitstempel in unkompliziert.

Auf eine besondere kleine Funktion möchte ich kurz aufmerksam machen, weil sie viele Administratoren oder Sonst-Wie-Konfigurationen-vornehmende-Benutzer wahrscheinlich auch brauchen könnten:

buf () { filename=$1; filetime=$(date +%Y%m%d_%H%M%S); cp ${filename} ${filename}_${filetime}; }

Man spielt an der main.cf des Postfix herum oder bastelt an der xorg.conf. Und wie man das eben von dem erfahrenen Linux-Benutzer seines Vertrauens (oder dem UbuntuUsersWiki) gelernt hat, sichert man vorher die Konfigurationsdatei mit dem obligatorischen:

cp xorg.conf xorg.conf.bak

Je nach Intensität der Anpassungen häufen sich auch Backupfiles a la “xorg.conf.bak.bak” oder “.bak2 bis .bak5000”

Fügt man die obige Funktion in seine .bashrc hinzu, erledigt sich das Thema relativ schnell.

buf xorg.conf

Erstellt automatisch ein File mit dem aktuellen Zeitstempel im aktuellen Verzeichnis. Nochmal im formatierten Zustand:

buf () {
filename=$1
filetime=$(date +%Y%m%d_%H%M%S)
cp ${filename} ${filename}_${filetime}
}

Dass commandlinefu.com eine großartige Site ist, ist wahrscheinlich für die meisten nichts Neues. Teilweise regnet es dort wunderschöne kleine Kommandozeilen für den Alltag.

Comments (7)

FreakErn on 2010-12-14T19:57:05
Hey Noqqe, coole Sache, vielen Dank! Ich würde diese Funktion allerdings in eine leere Textdatei packen mit ner entsprechenden shebang-zeile. Der Vorteil des ganzen ist, dass du dir schön einen kompletten Ordner anlegen kannst, in dem alle deine Skripte drin sind welchen du wiederum auf einen SVN-Server packen kannst. Da ich zwei Komputa besitze und regelmäßig an beiden arbeite, hab ich so, auf dem zweiten PC die Möglichkeit mit: svn co svn://myServer/bin/trunk ~/bin && source ~/.profile direkten zugriff auf meine skripte! Da in der ~/.profile eine Überprüfung auf das Verzeichnis ~/bin existiert und diese, wenn vorhanden, in die $PATH eingetragen wird, brauch man auch sonst, unter Ubuntu, nix weiter machen. Greetz

noqqe on 2010-12-14T20:13:36
Hi Freakern, Da hast du Recht :) Die Meisten haben so Ihre eigene Verwaltung von hilfreichen Schnippseln. Ich persöhnlich habe das auch lange so gelöst wie du, bin dann aber zu bash-it gewechselt. Wenn du Interesse hast schau dir mal http://github.com/revans/bash-it/ an. Das ist im Grunde das selbe in Grün und Strukturiert :)

Lars Moelleken on 2010-12-14T22:49:36
... hab mir auch mal ein paar Shell-Schnippseln zusammengeschrieben :-) -> http://suckup.de/blog/2010/07/30/bashrc/ bash-it ist ne gute Idee! Thx!

Alex on 2010-12-15T01:02:37
Quoting! Sonst erlebst du unangenehme Überaschungen.

Grüni on 2010-12-15T03:24:07
Die kleinen Bash-Einzeiler in einer Datei zu vereinen halte ich für eine ausgezeichnete Idee. Ich habe das folgendermaßen gelöst: -) Eintrag in der .bashrc: "if [ -f ~/.bash_snippets ]; then . ~/.bash_snippets fi" -) und die Bash-Einzeiler in der Datei .bash_snippets aufgelistet.

noqqe on 2010-12-15T16:29:38
@Alex: Quoting ist erfüllt ;) @Grüni: Auch gute Möglichkeit :) Aber wenns umfangreicher wird wird es auch unübersichtlich. Das war zumindest meine Erfahrung damit :)

Tim on 2011-01-18T23:02:29
Super! Habe ich gleich in meine dotfiles eingebaut.