PrinzEisenherz1
Member
Hi zusammen!
Ich schreibe gerade an einem Bash-Script zum syncronisieren von Dateien auf einem FTP mit meinem lokalen Rechner.
Hier mal der Rohentwurf:
Jetzt soll aber dieses Script nicht nur bestimmte Files aus dem i586-Verzeichnis syncen sondern auch aus noarch-Verzeichnis.
Wie mach ich das am besten. Mehrere Ansätze von mir haben nicht geklappt.
Also nochmals zur Erklärung. Dieses Script soll ( falls noch nicht vorhanden ) ein Verzeichnis lokal anlegen und soll vordefinierte Dateien aus dem FTP-Verzeichnis i586 und noarch ind das erstellte Verzeichnis lokal runterladen.Sollte das Verzeichnis schon bestehen dann soll es prüfen ob die Dateien auf dem FTP aktueller sind als die lokalen. Wenn ja dann soll er sie synchronisieren. Danach soll das Script fragen ob Smart gestartet werden soll oder nicht und wenn ja dann soll das Smart-Gui ausgeführt werden.
Vielleicht hat ja jemand von euch nen guten Vorschlag wie ich dieses Problem angehen könnte!
Gruß
Johnny
Ich schreibe gerade an einem Bash-Script zum syncronisieren von Dateien auf einem FTP mit meinem lokalen Rechner.
Hier mal der Rohentwurf:
Code:
#!/bin/bash
PROG=`smart --gui`
RSYNC_FLAGS="-4HPSa --stats --progress --delete-after --delete-excluded "
if ( test -d $HOME/KernelUpdate );
then
clear
echo ""
echo "Verzeichnis KernelUpdate ist vorhanden."
echo ""
echo "Es wird geprüft ob updates vorhanden sind...!"
kdialog --passivepopup "Es wird geprüft ob updates vorhanden sind...!"
echo ""
rsync $RSYNC_FLAGS \
rsync://ftp-1.gwdg.de/pub/opensuse/factory/repo/oss/suse/i586/ \
"$HOME/KernelUpdate/Daten" --filter=merge\ <(cat <<-EOF
+ acpi*.i586.rpm
+ kernel-pae*.i586.rpm
+ kernel-source*.i586.rpm
+ kernel-syms*.i586.rpm
+ acx-*.i586.rpm
+ appleir-*.i586.rpm
+ aufs-*.i586.rpm
+ ndiswrapper-*.i586.rpm
+ omnibook-*.i586.rpm
+ pcfclock-*.i586.rpm
+ quickcam-*.i586.rpm
+ wacom-*.i586.rpm
+ libusb-*.i586.rpm
+ lirc-*.rpm
+ dazuko-*.rpm
+ ivtv-*.i586.rpm
- *
EOF
)|grep "Number of files transferred: 0";
if [ $? -ne 0 ]
then
clear
echo "Updates wurden aktualisiert!!!"
kdialog --msgbox "Updates wurden aktualisiert!!!"
sleep 1
if kdialog --yesno "Soll SMART gestartet werden?"
then
echo ""
echo "SMART wird gestartet......"
echo ""
kdesu $PROG
exit 1
fi
else
echo ""
echo "Keine Updates vorhanden !!!" >&2
kdialog --passivepopup "Keine Updates vorhanden !!!"
echo ""
exit 1
fi
else
clear
mkdir -p $HOME/KernelUpdate/Daten
clear
echo "Verzeichnis KernelUpdate wurde in $HOME angelegt!!!"
echo "Updates werden heruntergeladen....."
kdialog --passivepopup "Updates werden heruntergeladen....."
echo ""
rsync $RSYNC_FLAGS \
rsync://ftp-1.gwdg.de/pub/opensuse/factory/repo/oss/suse/i586/ \
"$HOME/KernelUpdate/Daten" --filter=merge\ <(cat <<-EOF
+ acpi*.i586.rpm
+ kernel-pae*.i586.rpm
+ kernel-source*.i586.rpm
+ kernel-syms*.i586.rpm
+ acx-*.i586.rpm
+ appleir-*.i586.rpm
+ aufs-*.i586.rpm
+ ndiswrapper-*.i586.rpm
+ omnibook-*.i586.rpm
+ pcfclock-*.i586.rpm
+ quickcam-*.i586.rpm
+ wacom-*.i586.rpm
+ libusb-*.i586.rpm
+ lirc-*.rpm
+ dazuko-*.rpm
+ ivtv-*.i586.rpm
- *
EOF
)|grep "Number of files transferred: 0";
echo ""
echo "Updates wurden herundergeladen!!!"
kdialog --passivepopup
sleep 1
if kdialog --yesno "Soll SMART gestartet werden?"
then
echo ""
echo "SMART wird gestartet......"
echo ""
kdesu $PROG
else
echo ""
echo "Keine Updates vorhanden !!!" >&2
kdialog --passivepopup "Keine Updates vorhanden !!!"
echo ""
exit 1
fi
fi
Jetzt soll aber dieses Script nicht nur bestimmte Files aus dem i586-Verzeichnis syncen sondern auch aus noarch-Verzeichnis.
Wie mach ich das am besten. Mehrere Ansätze von mir haben nicht geklappt.
Also nochmals zur Erklärung. Dieses Script soll ( falls noch nicht vorhanden ) ein Verzeichnis lokal anlegen und soll vordefinierte Dateien aus dem FTP-Verzeichnis i586 und noarch ind das erstellte Verzeichnis lokal runterladen.Sollte das Verzeichnis schon bestehen dann soll es prüfen ob die Dateien auf dem FTP aktueller sind als die lokalen. Wenn ja dann soll er sie synchronisieren. Danach soll das Script fragen ob Smart gestartet werden soll oder nicht und wenn ja dann soll das Smart-Gui ausgeführt werden.
Vielleicht hat ja jemand von euch nen guten Vorschlag wie ich dieses Problem angehen könnte!
Gruß
Johnny