Hallo,
als Neuling auf der Konsole habe ich folgendes vor:
Es sollen überer mehrere Hubs USB-Sticks kopiert werden. Zuerst sollen die Sticks gelöscht werden ( sofern etwas drauf ist, was vorkommen kann), dann die Daten kopiert und überprüft werden ob alles drauf ist. Im unteren Script habe ich schon mal einen Versuch gemacht, wo zu Schluss die Daten pro Stick gezählt werden bzw. die Datengröße aufgeführt wird.
Da jedoch bei 5 Hubs eine Überprüfung unüberschaubar ist, wäre es ideal wenn alles zum Schluss jeder Slot aufgeführt wird, ungefähr so:
1. 30 Datein 33333 KB
2. 30 Datein 33333 KB
3. 30 Datein 33333 KB
....
Bei meinem Script werdet ihr sicher viele Verbesserungen finden, aber aller Anfang ist schwer. Ich habe ein kleines Script gefunden und dieses mit anderen Befehlen erweitert. Was mir nicht gefällt ist, dass ein Stick nach dem anderen kopiert wird. Besser wäre es doch, wenn das Kopieren gleichzeitig statt findet - sofern machbar.
Hier also mein Script mit der Hoffnung auf viele Tipps und Hilfe:
|
Quellcode
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
|
#!/bin/bash
clear
echo "------------------------------- NEUER KOPIERVORGANG -------------------------------"
echo "Es werden alle Daten aus dem Verzeichnis -Downloads- auf die USB-Sticks kopiert"
echo " "
read -n1 -r -p "Drücken Sie eine beliebige Taste, um fortzufahren..." key
echo
echo
for DRIVES in /sys/block/sd*
do
if readlink $DRIVES | grep -q usb
then
NAME=`basename $DRIVES`
DRIVE=`mount|grep $NAME`
INFO=`expr "$DRIVE" : '.*\(/media/.*\).* type'`
cd $INFO # Zeiger auf den Anfang der Sticks
echo "Vorhandene Daten auf den USB-Sticks wurden gelöscht"
echo Kopiere Daten nach $INFO
DIR=`echo ${INFO/ /\\ }`
cd ~
cd Downloads
cp -r *.* "$DIR"
# echo "kopierte Datengröße"
cd $INFO
du -c # Zeigt den Gesamtinhalt des Sticks in KB an
# echo "Anzahl der Dateien auf dem USB-Stick, inkl. in den Ordnern (Ordner werden nicht mitgezählt)"
cd $INFO
find -type f | wc -l # Zeigt die Anzahl der Datein an, die sich auf den Sticks befinden
echo "-------------------------- Kopiervorgang beendet --------------------------"
fi
done
echo "------------------ Der Kopiervorgang wurde komplett abgeschlossen ------------------"
echo " "
# read -n1 -r -p "Drücken Sie eine beliebige Taste zum Beenden" key
exit 0
|
Viele Grüße
Winjo
Edit: ich hoffe das ich es jetzt richtig gemacht habe - SORRY :-(