Skript für die shell problem und noob :-( ?

Guten Tag,

erstmal hallo an alle ich bin neu hier im Forum und möchte mich kurz vorstellen ich heisse markus bin 32 Jahre und aus der nähe von münchen.
ich bin grad dabei meine rechner auf linux umzustellen und da hab ich auch schon ein problem.
erstmal zur ausgangssituation ich habe einen rechner mit ubuntu und ein notebook mit ubuntu beide sind identisch eingerichtet. wenn ich zuhause bin will ich mit dem rechner arbeiten und wenn ich unterwegs bin mit dem laptop. ich dachte um an beiden Rechnern mit den selben Daten arbeiten zu können schreibe ich mir ein skript das mir meine daten auf eine SD Karte kopiert bzw. von der SD karte kopiert und habe so auch noch eine datensicherung. da ich aber keine ahnung habe von der skript programmierung habe ich angefangen im inet zu lesen doch leider versteh ich die meisten anleiungen nicht :frowning: also hab ich angefangen mit meinen paar basic befehlen und dachte vielleicht klappt es ja aber tut es leider nicht :frowning: also suche ich jetzt hier nach hilfe. ich poste mal was ich bis jetzt so gemacht habe.

#!/bin/sh

anfang: #soll als sprungmarke anfang dienen

echo „Daten (v)on SD kopieren oder (a)uf SD kopieren oder (b)eenden?“ #Text ausgabe

read wie_rum #einlesen einer Variablen

if $wie_rum = a then goto auf #auswerten der Variablen

if $wie_rum = v then goto von #wenn erste bedingung nicht erfüllt ist soll die zweite geprüft werden

if $wie_rum = b then exit #wenn zweite bedingung nicht erfüllt ist soll die dritte geprüft werden

echo „Ihre Eingabe würde nicht erkannt!“ #wenn keine der bedingung erfüllt ist erfolgt textausgabee und
goto anfang #springt zum punkt anfang

auf: #sprung marke auf

echo „Daten werden vom PC auf die SD Karte kopiert y/n ?“ #textausgabe

read yn #abfrage variable yn

if $yn = n then exit #wenn variable yn = n ist endet das skript

rsync -r -t -v --delete /home/mwiel/.Skype /media/disk/sicherung #kopiert daten

rsync -r -t -v --delete /home/mwiel/.secpanel /media/disk/sicherung #kopiert daten

rsync -r -t -v --delete /home/mwiel/.mozilla-thunderbird /media/disk/sicherung #kopiert daten

rsync -r -t -v --delete /home/mwiel/.mozilla /media/disk/sicherung #kopiert daten

rsync -r -t -v --delete /home/mwiel/Dokumente /media/disk/sicherung #kopiert daten

rsync -r -t -v --delete /home/mwiel/Download /media/disk/sicherung #kopiert daten

rsync -r -t -v --delete /home/mwiel/Desktop /media/disk/sicherung #kopiert daten

exit #beendet das Skript

echo „Daten werden von der SD Karte auf den PC kopiert y/n ?“ #textausgabe

read yn #abfrage variable yn

if $yn = n then exit #wenn variable yn = n ist endet das skript

von: #sprung marke auf

rsync -r -t -v --delete /media/disk/sicherung /home/mwiel/.Skype #kopiert daten

rsync -r -t -v --delete /media/disk/sicherung /home/mwiel/.secpanel #kopiert daten

rsync -r -t -v --delete /media/disk/sicherung /home/mwiel/.mozilla-thunderbird #kopiert daten

rsync -r -t -v --delete /media/disk/sicherung /home/mwiel/.mozilla #kopiert daten

rsync -r -t -v --delete /media/disk/sicherung /home/mwiel/Dokumente #kopiert daten

rsync -r -t -v --delete /media/disk/sicherung /home/mwiel/Download #kopiert daten

rsync -r -t -v --delete /media/disk/sicherung /home/mwiel/Desktop #kopiert daten

exit #beendet das Skript

für ein paar hinweise währe ich euch dankbar :smile:

Grüsse

markus

Wieso schwer wenn mans auch einfach haben kann? Wieso benutzt du nicht eines der vielen Backup Programme? In Synaptic einfach mal „Backup“ eintippen, da wirst du doch massenhaft fündig…

Hallo Markus,
zuerstmal herzlich willkommen hier im Forum. Nun zu deinem Skript. Hirsch2k hat ja schon erwähnt, daß es zahlreiche fertige Skripte für deinen Zweck gibt. Du kannst also wirklich mal deinen Paketmanager „durchblättern“ und dich überraschen lassen, was es da so alles gibt. Allerdings würde ich dir eher eine Suche nach „Synchronisation“ u.ä. empfehlen, da ja das anfallende „Backup“ eher ein Nebenprodukt deiner Wünsche darstellt.
Da wirst Du dann sicher solche Werkzeuge wie Unison oder Conduit finden:
http://www.linux-magazin.de/Online-Artikel/Synchroni…
http://www.cis.upenn.edu/~bcpierce/unison/
http://conduit-project.org/

Aber Shell-Skripte schreiben zu lernen ist auf jeden Fall ein guter Weg, sind sie doch sehr nützliche Werkzeuge, um so manche Aufgabe ganz leicht und bei Bedarf auch zeitgesteuert erledigen zu können.

da ich aber keine ahnung
habe von der skript programmierung

also hab ich angefangen mit meinen paar basic befehlen und
dachte vielleicht klappt es ja aber tut es leider nicht :frowning:

Naja, das Du von Basic her kommst, sieht man deinem Skript deutlich an. Sprungmarken und gotos kannst Du vergessen und deine Basic-Kenntnisse helfen dir nur insofern, daß Du schon mal weisst, was Variablen und Konstanten sind und Du auch mit bedingten Anweisungen wie if schon mal vertraut bist.
Aber sonst kannst Du Basic beim Shell-Skripting vergessen, dazu ist die Sprache doch zu verschieden.
Wie Du schreibst, hast Du dich schon vergeblich an verschiedenen Anleitungen im Internet versucht, aber vielleicht waren es doch noch nicht die richtigen? Vor kurzem gab es hier schon mal eine ähnliche Anfrage, deshalb nur ein Link auf meine damalige Antwort:
/t/linux-konsolenbasis/5230197/4
da findest Du Links zu Tutorials, die ich für nützlich und verständlich halte. Sollte das für dich nicht zutreffen (die Geschmäcker sind verschieden), so kannst Du ja vielleicht etwas konkreter nachfragen.
Ansonsten kannst Du ja auch bei deinem vertrauten Basic bleiben, besser gesagt, bei einem Basic-Dialekt, Gambas.
http://gambas.sourceforge.net/en/main.html
http://de.wikibooks.org/wiki/Gambas
Gambas lehnt sich so eng wie möglich an Visual-Basic an, wenn Du also Visual-Basic einigermassen kennst, wirst Du auch mit Gambas gut zurechtkommen. Aber auch ohne Visual-Basic-Kenntnisse ist es für einen Basic-Programmierer wahrscheinlich vertrauter als die Shell-Programmierung.
Du hast also, wie meistens bei Linux, die Qual der Wahl :wink:

Viele Grüße
Marvin

PS. Auf dein Skript bin ich nicht eingegangen, weil man da wirklich so ziemlich alles umschreiben müsste, das lohnt sich nicht. Aber immerhin, einen virtuellen Pluspunkt hast Du schon mal dafür, daß Du den entscheidenden Befehl rsync für dein Problem gut erkannt hast. Das war schon mal ein guter Ansatz.