Sie sind nicht angemeldet.

1

14.11.2005, 10:31

[gelöst] If - Anweisung im Shellskript

Hallo !

Momentan erstelle ich ein Shellskript zur Datensicherung.
Dieses Skript soll per Cronjob angeschoben weden.
Leider komme ich an einer Stelle nicht weiter.

Im Skript soll abgefrgt werden ob eine Datei existiert.
Dazu möchte ich die if - Anweisung verwenden.

Folgende Idee habe ich dazu.

-----------------------

#!/bin/bash

if (/backup/test) then;
cp -R /srv/www/web2/ /backup/
fi

------------------------

Also wenn die Datei /backup/test existiert, dann kopiere den Ordner ...

Hat jemand eine Info, wie ich das Problem lösen kann ?

M.f.G.

R2D2 ( seit dem Wochenende frisch verkabelt )

linuxerr

Prof. Dr. Schlaumeier

  • »linuxerr« ist männlich

Beiträge: 8 557

Wohnort: Mecklenburg, zur Entwicklungshilfe in Chemnitz/Sachsen ;-)

  • Nachricht senden

2

26.12.2005, 16:54

RE: If - Anweisung im Shellskript

hallo,

also erst einmal frage ich mich, ob ich hier im richtigen forum bin, wenn eine solche frage so lange unbeantwortet bleibt. zweitens frage ich mich, ob du schon mal eine manpage (man bash) gelesen oder ein buch zur shell programmierung aufgeschlagen hast.
verstehe mich nicht falsch, ich habe nichts gegen einfache fragen. aber wenn du nicht weist, wie diese aufgabe gelöst wird, hast du noch nicht einmal eine der möglichen informationsquellen angefasst. auch im internet gibt es eine reihe sehr guter seiten zur bash-programmierung, auf denen du genügend beispiele zu diesem thema findest.
ich habe nichts dagegen, auf wirklich knifflige fragen zu antworten, auf die man nicht gleich eine antwort findet. aber diese frage ist im prinzip das nächste beispiel hinter "hello world", wenn es um eine programmiersprache geht.
trotz meines frustes gebe ich trotzdem ein beispiel:

Quellcode

1
2
3
4
5
#!/bin/bash

if [ -f /backup/test ]; then
 cp -R /srv/www/web2/ /backup/
fi


gruss
Die Rechtschreibfehler in diesem Beitrag sind nicht urheberrechtlich geschützt.
Jeder der einen findet darf ihn behalten und in eigenen Werken weiterverwenden.

bonsai

Prof.Dr. Klugschiss

  • »bonsai« ist männlich

Beiträge: 1 486

Wohnort: N.de

Beruf: Informatiker

  • Nachricht senden

3

27.12.2005, 10:37

Halbwahrheit

Das existieren eines Files fragt man mit
-e
nicht mit
-f
ab. -f ist die Abfrage, ob es ein "reguläres File" ist.

cp -R ist fuer ein backup unbrauchbar. Nimm lieber cp -a. -R behält die
Dateirechte nicht unbedingt bei. -a beeinhaltet z.B. -R.

Kind regards,

Bernd
Die erste programmgesteuerte Rechenmaschine (Z1) wurde Mitte der 30er Jahre als "nicht patentwürdig" eingestuft. Warum versaut mir das Ding 50 Jahre später immer noch den Tag?

linuxerr

Prof. Dr. Schlaumeier

  • »linuxerr« ist männlich

Beiträge: 8 557

Wohnort: Mecklenburg, zur Entwicklungshilfe in Chemnitz/Sachsen ;-)

  • Nachricht senden

5

25.02.2007, 10:24

RE: Halbwahrheit

bin durch zufall auf diesen älteren thread gestossen und will die sache nicht unwidersprochen lassen

Zitat

Original von bonsai
Das existieren eines Files fragt man mit
-e
nicht mit
-f
ab. -f ist die Abfrage, ob es ein "reguläres File" ist.

doch, -f ist korrekt, da er testen will, ob es eine datei ist. -e gibt auch bei verzeichnissen, named-pipes etc ein true zurück. -f testet auf existenz und reguläre datei, also beides und genau das sollte es sein.

Zitat

cp -R ist fuer ein backup unbrauchbar. Nimm lieber cp -a. -R behält die
Dateirechte nicht unbedingt bei. -a beeinhaltet z.B. -R.
Kind regards,
Bernd

ich hoffe, dass es gründe für das -R gibt. wenn ich jedoch ein -a nehme, dann ist ein folgendes -R nicht falsch aber unnütz, denn -a ist ein äquivalent zu -dpPR. da ist -R schon drin.
Die Rechtschreibfehler in diesem Beitrag sind nicht urheberrechtlich geschützt.
Jeder der einen findet darf ihn behalten und in eigenen Werken weiterverwenden.

wickey

pass < /dev/urandom

Beiträge: 401

Wohnort: Tuxhafen

Beruf: .

  • Nachricht senden

6

25.02.2007, 14:03

Wenn schon i-tüpferlreiterei betrieben wird sollte man generell auf cp verzichten, speziell dann, wenn man regelmäßig backups machen möchte.

Ein beherztes

rsync -av --delete-after

würde ich jederzeit einem cp-a vorziehen.

grüße wickey
...and remember: WWW does not stand for "World Wide Windows"
Der Linuxanfänger --> http://members.aon.at/wickey/
EGSZ (Znacntrf) be ivfvg tbbtyr

Thema bewerten