USB Speicher Backup Automatisieren

linuxmax

linuxmax

Jungspund
hi
Zeit zwei Woche suche ich ein Schell Skript was überwacht ein Katalog z.B
/dev/sda1/Backup/Backup 1 er ist auf SD-128MB
und nach dem wie prüft Datei ob frei gegeben ist macht Kopie nach /home/Backup_sda/ und Löscht sie aus den /dev/sda1/Backup 1 und wartet auf next Backup 2 usw.
Problem habe ich mit USB , dauern aktualisieren , und ist langsam .
Pausen Daten Fluss auf /sda1 will ich nicht haben ,ich will mehr das Automatisieren das ich nicht mehr braucht von Hand Kopieren (Backup Datei ist c. 25MB Groß) und der Speicher klein
Darum suche ich was linkt die Backup aus der Speicher und löscht ,oder ein Buffor ?
am besten ein Schell-Skript .
ich weist nicht ob das geht ? Frage an Spezialisten. http://www.unixboard.de/vb3/images/icons/icon11.gif
Danke und Winsch euch Fröhliche Weihnachten !
 
Hallo,

also was Du ganz genau willst, weiß ich nicht...Deine Rechtsschreibung ist
katastrophal und es sieht so aus als hättest Du die Übersetzung mit den Google-Sprachtools gemacht.

Kannst Du Deine Anfrage vielleicht mal in Englisch stellen?

Wie wärs, wenn Du die Kommandos, die Du "per Hand" machst mal hierhin
postest? Das erklärt vielleicht mehr als Deine Worte...

Nichts desto trotz - Frohe Weihnachten.
 
Hi cYa Schlaubi
„Ohne Kritik gibt keine Politik“ hast t du recht, mein Rechtsschreibung ist katastrophal SORRY!!!
also noch einmal
SD Card 128MB <---USB-->PC/linux

1.Prüft ob Backup 1 ist fertig auf „/dev/sda1/“,wenn ja kopiert „Backup 1“auf z.B „/home/x“ und dann wird „Backup 1“ gelöscht aus SD Card .
2.Prüft ob Backup 2 ist fertig auf „/dev/sda1/“ ,wenn ja kopiert „Backup 2“auf z.B „/home/x“ und dann wird „Backup 2“ gelöscht aus SD Card .
und so weiter ...
danke
 
Hallo,

also ich versuchs mal...

Woran erkennst Du denn, dass Backup 1, 2, ... fertig ist??? Ist Backup eine Datei, ein Image, oder ... ??
Ein Ansatz, ...
Code:
bak="$(ls -1tr /dev/sda1/Backup* >&/dev/null)";
if test -e "$bak"; then
    echo "Found: $bak";
    set -x
    cp $bak /home/x/;
    rm -i $bak
    set +x
fi
 
Zuletzt bearbeitet:
hi
Zuerst Danke für schnelle Antwort habe ich nicht gerechnet.
das ist vier mich ein gute Bescherung!

also, das ist ein teil von eine Image Datei.
Gruß
linuxmax
.
.
.
EDIT (autom. Beitragszusammenführung) :
.

hi Schlaubi_fi.de

habe ich geprüft , löscht nix aus /sda1/ und kopiert auch nicht lehr /home/x ?
kommt kein fehler meldung
Frage ist das richtig
if test -e "$bak"; ?
 
Zuletzt bearbeitet:
Hallo,

es ist so schwierig Dir zu helfen, wenn man nicht genau weiß WAS Du
willst bzw. WO denn der Fehler liegt...Deine Angaben sind einfach viel zu dürftig!!

Poste doch bitte mal die Ausgabe von
Code:
ls -la /dev/sda1/

Poste bitte ALLE Kommandos, die Du absetzt, um das Backup "manuell" durchzuführen.
 
hi
besser kann ich nicht
wie genau soll ich noch schreiben?
1.Prüft ob Backup 1 ist fertig auf „/dev/sda1/“,wenn ja kopiert „Backup 1“auf z.B „/home/x“ und dann wird „Backup 1“ gelöscht aus /dev/sda1/ .
2.Prüft ob Backup 2 ist fertig auf „/dev/sda1/“ ,wenn ja kopiert „Backup 2“auf z.B „/home/x“ und dann wird „Backup 2“ gelöscht aus /dev/sda1/ .
habe ich so geprüft leider ohne Resultat.
#!/bin/bash

bak="$(ls -1tr /dev/sda1/Backup* >&/dev/null)";

while true
do

if test -e "$bak"; then
echo "Found: $bak";
set -x
cp $bak /home/x/;
rm -i $bak
set +x

echo "geht nix"
fi

done
 
wieso nimmst du nicht den inkrementellen backup-mechanismus von rsync ? den würde ich einfach mal vorschlagen anstatt mit verzeichnissen wie backup, backup1, backup2 rumzubasteln.
 
linuxmax, such dir doch ein Forum in deiner Muttersprache oder nimm dir mehr Zeit für deine Beiträge. Das hat ja so kaum Sinn.
 
hi liquidnight
Danke für das TIP ich versuche mit "rsync"
.
.
.
EDIT (autom. Beitragszusammenführung) :
.

Wie sehe ein Skript dann weiß ich um was geht , wie ich nicht helfen kann dann Schuld ist die Rechtschreibung,oder "suche dir doch ein Forum in deiner Muttersprache". leider Skript-Shell hat kein Rechtschreibung!
traurig ist eure ausrede<< no ja alles ist freiwillig und trotzdem Danke für jede Hilfe
 
Zuletzt bearbeitet:
traurig ist eure ausrede<< no ja alles ist freiwillig und trotzdem Danke für jede Hilfe

du darfst das nicht persönlich nehmen aber es ist schwer jemanden zu helfen der nicht klar schildern kann was er für ein problem hat bzw. was er erreichen will.
was wäre den deine muttersprache? evtl. haben wir hier jemanden der das für dich übersetzten kann :think:
 
traurig ist eure ausrede
Das find ich jetzt unfair - ich hab Dir versucht zu helfen - so gut es geht, aber
wie Damager schon schreibt, gestaltet sich das äußerst schwierig.



Außerdem hab ich in meinem vorletzen Posting zu diesem Thema folgendes
geschrieben, Du hast es jedoch nicht gemacht.
Poste bitte ALLE Kommandos, die Du absetzt, um das Backup "manuell" durchzuführen.
Neuer Versuch: Könntest Du dies bitte tun? (Wenn Du etwas nicht verstehst musst Du es bitte sagen)
 
hi Schlaubi_fi.de
alle meine Kommandos Backup NOCH "manuell"
cp -v /dev/sda1/Backup1 /home/x/
rm -iv /dev/sda1/Backup1
.
cp -v /dev/sda1/Backup2 /home/x/
rm -iv /dev/sda1/Backup2

Danke für deine Hilfe!
 
Hmm, schwere Geburt. ;)

Erstmal, was meinst Du mit

...Prüft ob Backup 1 ist fertig auf „/dev/sda1/...

Was ist das für ein Backup? Woran erkennt man, dass es fertig ist?

Dein Kopieren und Löschen kann man mittels

Code:
cp -f /dev/sda1/Backup1 /home/x/ &&
rm -f /dev/sda1/Backup1

(dabei wird nur gelöscht, wenn erfolgreich kopiert wurde.)

oder ;)

Code:
mv -f /dev/sda1/Backup1 /home/x/

Gruss, Xanti
 
Zuletzt bearbeitet:
hi
ich meine
"Prüft ob Backup 1 ist fertig auf „/dev/sda1/" das Backup 1 Datei genau 25 MB hat
dann mit "cp" wie fertig ist "rm" .

/dev/sda1/backup 1 --- 25MB (Fertig)dann cp /home/x und
rm /dev/sda1/backup 1
/dev/sda1/backup 2 --- 250KB (busy) waits "cp" soll warten wie Datei fertig 25MB und "rm" soll warten wie "cp" fertig ist.

bei mir "cp" kopiert alles,egal ob die Datei Fertig ist oder nicht "rm" löscht auch egal ob Datei fertig ist oder nicht . Das Backup dann ist nicht komplett.
Danke!
 
Code:
backupfile=...
filesize=...  # in Bytes
while true; do
        if [ $(du -b "$backupfile" | cut -f1) -eq $filesize ]; then
                echo "Backup complete"
                cp ... &&
                rm ...
                break
        else
                echo "Backup not complete"
                sleep 10
        fi
done

Alternativ zur Bestimmung der Größe des Files kann man auch testen, ob jemand auf das Backupfile zugreift, ala

Code:
if lsof | grep -q "$backupfile$"; then ...

Wie ich oben bereits angedeutet habe, ist cp+rm=mv.

Gruß, Xanti
 
Danke Xanti

ich werde das gleich Testen !
Gruß
Linuxmax
.
.
.
EDIT (autom. Beitragszusammenführung) :
.

hi
ein meldung ?

autobackup.sh: line 9: [: -eq: unary operator expected
Backup not complete

Bitte übeprüfen wahrscheinlich habe ich was falsch gemacht .

#!/bin/bash
filesize=25000000 # in Bytes
home="/home/x"
qelle="/media/sda1/*"

while true; do
if [ $(du -b "$qelle" | cut -f1) -eq $filesize ]; then
echo "Backup complete"
cp -f $qelle $home &&
rm -f $qelle
break
else
echo "Backup not complete"
sleep 10
fi
done
 
Zuletzt bearbeitet:
Sicher, Du darfst keine Platzhalter im Test benutzen, wenn die Shell dies zu mehreren Filenamen expandiert. test erwartet nur einen Operator. Lösung:

Code:
ls -1 /media/sda1 | while read file; do
   while true; do
        quelle="/media/sda1/$file"
        if [ $(du -b "$quelle" | cut -f1) -eq $filesize ]; then
...
done

btw, 25000000 Bytes sind garantiert nicht Deine ca. 25MB.
 
hi
O.K ich versuche .

Gruß
linuxmax
.
.
.
EDIT (autom. Beitragszusammenführung) :
.

hi

ist möglich ohne "read" ich versuche die Shell Sich Selbständig machen ohne Hand eingaben.
Bei mir heiß die Datei : "my Backup mc (fleat 1),my Backup mc (fleat 2)..." leider habe ich keine möglichkeit Name von die Datei zum umbenennen vor den Backup.
Bitte nur wie macht das keine große Zeit aufwand
danke !!!
 
Zuletzt bearbeitet:
read liest die Filenamen aus der Pipe, da ist nix mit Interaktion.
 

Ähnliche Themen

Backup Skript automatisch ausführen mit udev

Zurück
Oben