efaLive-Autobackup - Passwortschutz hinzufügen

Diskussion, Fragen, Anregungen und Wünsche zu efaLive

Moderator: klinux

Forumsregeln
Verfasse bitte die Beiträge in den passenden Kategorien und gib ihnen einen aussagekräftigen Betreff.
Antworte bitte nur zum Thema und beginne ein neues Thema, falls Du noch etwas Zusätzliches sagen möchtest.
t-man
Beiträge: 8
Registriert: Do 20. Jun 2013, 21:59

efaLive-Autobackup - Passwortschutz hinzufügen

Beitrag von t-man » Di 8. Okt 2013, 10:20

Moin zusammen!

Wir haben zum letzten Saisonbeginn mit dem probeweisen Betrieb von efaLive begonnen und der läuft soweit auch gut. Es scheint alles wie gewünscht zu funktionieren, wir haben lediglich folgenden Wunsch, der noch nicht gelöst werden konnte:

Unser Modifikationswunsch an efaLive ist, dass beim Autobackup auf einen angeschlossenen Stick zunächst nach einem Passwort gefragt wird und erst bei richtiger Eingabe das Backup auf den Stick beginnt.

Dazu habe ich versucht, das Skript "/opt/efalive/bin/autobackup.sh" so zu verändern, dass es um diese Funktion ergänzt wird. Dazu habe ich zunächst mit dem Fenstermanager Zenity einen Dialog geschrieben, der die gewünschte Passwortabfrage beinhaltet. Das dafür benötigte Passwort dafür beziehe ich aus einer als versteckt angelegten Datei.
Sollte das Passwort dann richtig eingegeben worden sein, so wird das normalerweise direkt ausgeführte Bacvkup gestartet.

Dieses Passwortskript habe ich nach der Erstellung auf efaLive erfolgreich ausprobieren können. Wenn ich es über den Spezial-Button gestartet habe, hat es das gewünschte Verhalten gezeigt. Auch mit dem "run_backup.sh" konnte ich damit dann manuell ein Backup erfolgreich ausführen.

Danach wollte ich diese Teillösung in das bestehende Werk einpflegen, wofür ich mehrere Varianten ausprobiert habe, die jedoch leider alle nicht zum gewünschen Ergebnis geführt habt.

Eine Lösung war, den Dialog zwischen das autobackup.sh-Skript und das run_backup.sh zu hängen, es heißt bei mir vorerst back2.sh und sieht folgendermaßen aus:

Code: Alles auswählen

#! /bin/bash

######################################
#
#   B A C K U P
#
######################################

# Skript, dass nach einem Passwort fragt und dann das Backup ausführt.

#Variableninitialisierung (der Übersicht halber)
ziel="null"
benutzerpass="null"
	#ziel ist das Vorgegebene Passwort, liegt in Datei /home/efa/.backuppassword/.backpass.txt


	#Skriptablaufbeginn
zenity --info --text "USB-Laufwerk angeschlossen und erkannt." --title "USB-Port";

zenity --question --text "Soll das Backup auf das angeschlossene Laufwerk ausgeführt werden?" --title "USB-Backup";
if [ $? != 0 ]; then exit;fi;
	#Benutzer wird mitgeteilt, dass ein USB-Laufwerk angerschlossen und erkannt wurde, Nachfrage, ob Backip erfolgen soll

read ziel < /home/efa/.backuppassword/.backpass.txt
	#Passwort aus Datei /home/efa/.backuppassword/.backpass.txt wird eingelesen und auf die Variable ziel gelegt.

benutzerpass=$(zenity --entry --hide-text --text "Bitte das Passwort zum Ausführen des Backups eingeben!" --title "USB-Backup");
if [ $? != 0 ]; then exit;fi;
	#erster Versuch der Passwortabfrage zum Backup

while [ "$benutzerpass" != "$ziel" ]
	do
		benutzerpass=$(zenity --entry --hide-text --text "Das eingegebene Passwort war nicht richtig!\nBitte das richtige Passwort eingeben." --title "Falsche Eingabe!");
		if [ $? != 0 ]; then exit;fi;
	done
	#bei falscher erster Passworteingabe erfolgt hier die Wiederholung, bis zur richtigen Eingabe

if [ "$benutzerpass" = "$ziel" ]
	then
		zenity --info --text "Passwort war richtig!\nBackup wird ausgeführt..." --title "Backup";
		/opt/efalive/bin/run_backup.sh /media/backup
		backupergebnis=$?
		exit $backupergebnis
			#hier wird nun das normale Backup wie vorgesehen durchgeführt, wenn das Passwort vorher richtig war.


#		if ! zenity --info --text "Backup erfolgreich!" --title "Backup";
#			then exit;fi;
	fi
	#Bei korrektem Passwort wird das Backup ausgeführt!


Dieses Skript lasse ich durch folgende Änderung im autobackup.sh starten: (Rest unverändert, in diesem Ausschnitt habe ich nur die 2. Zeile angepasst.)

Code: Alles auswählen

/bin/echo "Creating backup to /media/backup..."
/opt/efalive/bin/back2.sh
BACKUP_RESULT=$?
/bin/echo "Unmounting $1..."
Das Ergebnis dabei ist momentan, dass das erste Fenster des Dialoges angezeigt wird, bestätigt man dieses folgt sofort die Meldung, das Backup sei erfolgreich ausgeführt worden (aus dem originalen Teil am Ende), was so natürlich nicht so gewünscht war.
Da dieser Ansatz nicht funktionierte habe ich auch noch eine andere Verison versucht, wobei ich meinen Dialog zur Passwortabfrage in das autobackup.sh-Skript integriert habe.
Das sieht dann insgesamt folgendermaßen aus:

Code: Alles auswählen

#! /bin/bash

######################################
#
#   B A C K U P
#
######################################

# Skript, dass nach einem Passwort fragt und dann das Backup ausführt.

#Variableninitialisierung (der Übersicht halber)
ziel="null"
benutzerpass="null"
	#ziel ist das Vorgegebene Passwort, liegt in Datei /home/efa/.backuppassword/.backpass.txt


	#Skriptablaufbeginn



#Hier beginnt das Originalskript...             !/bin/bash
#
####
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program.  If not, see <http://www.gnu.org/licenses/>.
#
# Copyright 2008-2012 Kay Hannay <klinux@hannay.de>
#
###
#
# Automatic backup of efa data to an USB stick
# Usage: autobackup.sh <DEVICE>
#

BEEP_ERROR="/usr/bin/beep -f 2000 -r 5 -d 50 -l 1000"
BEEP_SUCCESS="/usr/bin/beep -f 1000 -r 3 -d 50"

AUTO_USB_BACKUP_DIALOG="TRUE"
export DISPLAY=:0.0
if [ -f ~/.efalive/settings.conf ]
then
    . ~/.efalive/settings.conf
fi 


if [ ! $1 ]
then
	/bin/echo "Error, no backup device specified!"
	$BEEP_ERROR
	exit 1
fi

if [ ! -b $1 ]
then
	/bin/echo "Error, specified device does not exist!"
	$BEEP_ERROR
	exit 1
fi

##########################
#
# Unterbrechung des normalen Backupskriptes!
#
##########################

if ! zenity --info --text "USB-Laufwerk angeschlossen und erkannt." --title "USB-Port";
	then exit;fi;
if ! zenity --question --text "Soll das Backup auf das angeschlossene Laufwerk ausgeführt werden?" --title "USB-Backup";
	then exit;fi;
	#Benutzer wird mitgeteilt, dass ein USB-Laufwerk angerschlossen und erkannt wurde, Nachfrage, ob Backip erfolgen soll

read ziel < /home/efa/.backuppassword/.backpass.txt
	#Passwort aus Datei /home/efa/.backuppassword/.backpass.txt wird eingelesen und auf die Variable ziel gelegt.

if ! benutzerpass=$(zenity --entry --hide-text --text "Bitte das Passwort zum Ausführen des Backups eingeben!" --title "USB-Backup");
	then exit;fi;
	#erster Versuch der Passwortabfrage zum Backup

while [ "$benutzerpass" != "$ziel" ]
	do
		if ! benutzerpass=$(zenity --entry --hide-text --text "Das eingegebene Passwort war nicht richtig!\nBitte das richtige Passwort eingeben." --title "Falsche Eingabe!");
			then exit;fi;
	done
	#bei falscher erster Passworteingabe erfolgt hier die Wiederholung, bis zur richtigen Eingabe

if [ "§benutzerpass" != "$ziel" ]
	then
		if ! zenity --info --text "Passwort war falsch.\nAbbruch an dieser Stelle.\n\nAbbruch hier unvorhergesehen, bitte Torben informieren!"
		exit
	fi
	#Abfangen eines eigentlich unmöglichen Falles: Passwort war falsch, Skript wurde aber trotzdem weiter ausgeführt.


if [ "$benutzerpass" = "$ziel" ]
	then
		if ! zenity --info --text "Passwort war richtig!\nBackup wird ausgeführt...\nBitte warten, bis Rückmeldung erfolgt!" --title "Backup";
			then exit;fi;
	fi
	#Bei korrektem Passwort wird das Backup ausgeführt!

#######################
#
# Fortführung des normalen Backupskriptes bei richtigem Passwort!
#
#######################


/bin/echo "Mounting $1 to /media/backup..."
/usr/bin/pmount $1 backup

######################################


######################################


/bin/echo "Creating backup to /media/backup..."
/opt/efalive/bin/run_backup.sh /media/backup
BACKUP_RESULT=$?


/bin/echo "Unmounting $1..."
/usr/bin/pumount backup

if [ $BACKUP_RESULT -ne 0 ]
then
    if [ $BACKUP_RESULT -eq 1 ] || [ $BACKUP_RESULT -eq 5 ]
    then
        /bin/echo "Login to efa2 server failed, please check that the efaLive administrator is created in efa2 configuration"
    fi
    /bin/echo "Error, backup failed!"
    if [ "x$AUTO_USB_BACKUP_DIALOG" = "xTRUE" ]
    then
        /usr/bin/zenity --error --text="Backup failed, error code: $BACKUP_RESULT !\n\nView autobackup.log for details."
    fi
    $BEEP_ERROR
else
    /bin/echo "Backup successful."
    if [ "x$AUTO_USB_BACKUP_DIALOG" = "xTRUE" ]
    then
        /usr/bin/zenity --info --text="Backup successful."
    fi
    $BEEP_SUCCESS
fi
exit $BACKUP_RESULT

#Ende des Backupskriptes, hier wurde außer diesem Kommentar nichts weiter eingefügt.
Auch das brachte nicht den gewünschten Erfolg. Setzte ich dieses Skript an die Stelle des autobackup.sh, so erscheint zwar das Erste Fenster meines Dialoges und danach passiert dann nichts mehr, das Skript bricht direkt ab. - Für mich leider ebenfalls unerklärlich.

Da ich selber Neuling bei dieser Art von Shell-Skripten war, bevor ich mich um dieses Problem gekümmert habe und es daher nun auch immernoch mehr oder weniger bin, wäre ich sehr froh über irgendwelche Hilfe zur Lösung unseres Problems. Sowohl für eine "Reparatur" einer meiner Lösungen als auch für einen anderen Ansatz wäre ich offen!

Also falls jemand mir sagen kann, warum die Anpassung des Skriptes nicht funktioniert hat, immer gerne!!

Andere Sache: Wenn ich es richtig gesehen habe, liegt die Statkstikauswertung nicht als Skrpit vor und ließe sich daher leider nicht in diese Anwendung einpflegen, oder? Das wäre unser nächstes Anliegen, damit wir für die Webseite eine HTML-Auswertung auch auf einen angesteckten Stick erstellen können. Dieses Problem ist aber erstmal nachrangig.

Mit rudersportlichen Grüßen aus Bad Schwartau,
Torben

klinux
Beiträge: 202
Registriert: Mi 21. Jul 2010, 11:36

Re: efaLive-Autobackup - Passwortschutz hinzufügen

Beitrag von klinux » So 13. Okt 2013, 23:30

Hallo Torben,

das mit der Passwortabfrage ist gar keine schlechte Idee. Ich denke, eine solche Funktion werde ich in die nächste Version von efaLive integrieren.

Zu Deinem Problem. Ich habe hier bei mir mal einen Aufruf deines back2.sh Skripts in das autobackup.sh Skript eingebaut. Das funktioniert ohne Probleme. Ich habe in dem back2.sh Skript lediglich das Passwort fix gesetzt und den Aufruf des Backup-Skripts an das akuelle efaLive 2.1 angepasst, also die Zeile

Code: Alles auswählen

/opt/efalive/bin/run_backup.sh /media/backup
gegen

Code: Alles auswählen

efalive-backup /media/backup
ausgetauscht, ansonsten habe ich nichts geändert. Es kommen alle Dialoge, inklusive der Passwortabfrage. Dann wird das Backup erfolgreich erstellt.
Allerdings habe ich das, wie gesagt, bei dem aktuellen efaLive 2.1 probiert. Steht denn bei Dir in der Datei /home/efa/autobackup.log etwas hilfreiches?

Viele Grüße

t-man
Beiträge: 8
Registriert: Do 20. Jun 2013, 21:59

Re: efaLive-Autobackup - Passwortschutz hinzufügen

Beitrag von t-man » Do 17. Okt 2013, 21:17

Moin!

Ich möchte einmal kurze Rückmeldung geben, dass ich dabei war. Das soll nicht untergehen.

Nach einigem Hickhack habe ich dann auch mal die aktuellste Version von efaLive installiert und da haben sich im Hintergrund ja auch einige Sachen geändert. Irgendwann bin ich auch durchgestiegen, Backup einspielen hat auch geklappt und auch das Automatische Backup ging soweit gut.

Dann habe ich das Backup wie von dir beschrieben manipuliert und dafür zunächst den Eintrag im Log kassiert, dass Rechte fehlsten - stimmte ja auch. Beim nächsten Versuch habe ich das erste meiner Fenster zu sehen bekommen und mehr nicht.
Danach war das Autobackup dann ganz tot, auch nachdem ich das oroginale Zurückkopiert habe ging nichts mehr. Für heute reichts und ich werde morgen mal weitersehen.

An die alte Log-Datei habe ich leider nicht mehr gedacht, bevor ich vorhin das bis dahin genutze efaLive geplättet habe.

t-man
Beiträge: 8
Registriert: Do 20. Jun 2013, 21:59

Re: efaLive-Autobackup - Passwortschutz hinzufügen

Beitrag von t-man » Fr 18. Okt 2013, 17:59

Moin!

Ich habe inzwischen das efaLive neu aufgesetzt und nun geht auch das Backup wieder. Zumindest das normale. Das veränderte geht aber immer noch nicht und ich habe mich soweit ich das verstehe ganz an deine Beschreibung gehalten. Zur Kontrolle setze ich das ganze Skript nochmal hier rein:

Code: Alles auswählen

#!/bin/bash
#
####
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program.  If not, see <http://www.gnu.org/licenses/>.
#
# Copyright 2008-2013 Kay Hannay <klinux@hannay.de>
#
###
#
# Automatic backup of efa data to an USB stick
# Usage: autobackup.sh [-q] [-d DELAY] <DEVICE>
#
# Where DEVICE is a mountable device and DELAY the time this script should
# wait before it starts the backup in seconds. With -q you can supress the 
# beep sound that is normally played and the dialog for an error or success.
#

/bin/date

if [ "x$LANG" = "x" ]
then
    export LANG=C.UTF-8
fi

BEEP_ERROR="/usr/bin/beep -f 2000 -r 5 -d 50 -l 1000"
BEEP_SUCCESS="/usr/bin/beep -f 1000 -r 3 -d 50"

QUIET="FALSE"
AUTO_USB_BACKUP_DIALOG="TRUE"

function inform_success {
	/bin/echo "$1"
    	if [ "x$AUTO_USB_BACKUP_DIALOG" = "xTRUE" ]
    	then
        	/usr/bin/zenity --info --text="Autobackup: $1"
    	fi
	if [ "x$QUIET" = "xFALSE" ]
	then
		$BEEP_SUCCESS
	fi
}

function inform_error {
	/bin/echo "$1"
    	if [ "x$AUTO_USB_BACKUP_DIALOG" = "xTRUE" ]
    	then
        	/usr/bin/zenity --error --text="Autobackup: $1"
    	fi
	if [ "x$QUIET" = "xFALSE" ]
	then
		$BEEP_ERROR
	fi
}

export DISPLAY=:0.0
if [ -f ~/.efalive/settings.conf ]
then
    . ~/.efalive/settings.conf
fi 

while getopts :hd:q opt; do
  case $opt in
	q)
		QUIET="TRUE"
		AUTO_USB_BACKUP_DIALOG="FALSE"
		;;
	d)
		if [[ $OPTARG =~ ^[0-9]+ ]]
		then
			/bin/echo "Wait for $OPTARG seconds ..."
			/bin/sleep $OPTARG
		else
			inform_error "Error, specified delay (-d) is not a number!"
			exit 1
		fi
		;;
	*)
		/bin/echo -e "Unknown argument: -$OPTARG\n"
		/bin/echo "Usage: autobackup.sh [-q] [-d DELAY] <DEVICE>"
		/bin/echo -e '\nWhere DEVICE is a mountable device and DELAY the time this script should'\
			     '\nwait before it starts the backup in seconds. With -q you can supress the'\
			     '\nbeep sound that is normally played and the dialog for an error or success.\n'
		inform_error "Unknown argument: -$OPTARG"
		exit 1
		;;
  esac
done
shift $((OPTIND-1))

if [ ! $1 ]
then
	inform_error "Error, no backup device specified!"
	exit 1
fi

if [ ! -b $1 ]
then
	inform_error "Error, specified device does not exist!"
	exit 1
fi

/bin/echo "Mounting $1 to /media/backup..."
/usr/bin/pmount $1 backup

####################################################
    
	#! /bin/bash

    
	######################################
    #
    #   B A C K U P
    #
    ######################################
	
    # Skript, dass nach einem Passwort fragt und dann das Backup ausführt.

    #Variableninitialisierung (der Übersicht halber)
    ziel="null"
    benutzerpass="null"
       #ziel ist das Vorgegebene Passwort, liegt in Datei /home/efa/.backuppassword/.backpass.txt


       #Skriptablaufbeginn
    zenity --info --text "USB-Laufwerk angeschlossen und erkannt." --title "USB-Port";

    zenity --question --text "Soll das Backup auf das angeschlossene Laufwerk ausgeführt werden?" --title "USB-Backup";
    if [ $? != 0 ]; then exit;fi;
       #Benutzer wird mitgeteilt, dass ein USB-Laufwerk angerschlossen und erkannt wurde, Nachfrage, ob Backip erfolgen soll

    #read ziel < /home/efa/.backuppassword/.backpass.txt
       #Passwort aus Datei /home/efa/.backuppassword/.backpass.txt wird eingelesen und auf die Variable ziel gelegt.

    benutzerpass=$(zenity --entry --hide-text --text "Bitte das Passwort zum Ausführen des Backups eingeben!" --title "USB-Backup");
    if [ $? != 0 ]; then exit;fi;
       #erster Versuch der Passwortabfrage zum Backup

    while [ "$benutzerpass" != "$ziel" ]
       do
          benutzerpass=$(zenity --entry --hide-text --text "Das eingegebene Passwort war nicht richtig!\nBitte das richtige Passwort eingeben." --title "Falsche Eingabe!");
          if [ $? != 0 ]; then exit;fi;
       done
       #bei falscher erster Passworteingabe erfolgt hier die Wiederholung, bis zur richtigen Eingabe

    if [ "$benutzerpass" = "$ziel" ]
       then
          zenity --info --text "Passwort war richtig!\nBackup wird ausgeführt..." --title "Backup";
          /bin/echo "Creating backup to /media/backup..."
			efalive-backup /media/backup
			BACKUP_RESULT=$?
          exit $backupergebnis
             #hier wird nun das normale Backup wie vorgesehen durchgeführt, wenn das Passwort vorher richtig war.


    #      if ! zenity --info --text "Backup erfolgreich!" --title "Backup";
    #         then exit;fi;
       fi
       #Bei korrektem Passwort wird das Backup ausgeführt!


#########


###################################################

/bin/echo "Unmounting $1..."
/usr/bin/pumount backup

if [ $BACKUP_RESULT -ne 0 ]
then
    if [ $BACKUP_RESULT -eq 1 ] || [ $BACKUP_RESULT -eq 5 ]
    then
        /bin/echo "Login to efa2 server failed, please check that the efaLive administrator is created in efa2 configuration"
    fi
    inform_error "Backup failed, error code: $BACKUP_RESULT !\n\nView autobackup.log for details."
else
    inform_success "Backup successful."
fi
exit $BACKUP_RESULT
Nunja, es geht halt nicht. Ich sehe reproduzierbar das erste Fenster und das wars dann. Das interessante Ende der zugehörigen autobackup.log flogt nun:

Code: Alles auswählen

Fri Oct 18 17:36:54 CEST 2013
Mounting /dev/sdc1 to /media/backup...
Creating backup to /media/backup...
Create efa backup to /media/backup/efaLive_backup_20131018_173655/efa_backup_20131018_173655.zip ...
INFO    - EVT001 - PROGRAMMSTART
INFO    - INF002 - Version efa: 2.1.0_10 -- Java: 1.6.0_27 (JVM 20.0-b12) -- OS: Linux 3.2.0-4-486
INFO    - CLI001 - Connecting as efalive to localhost:3834 ...
INFO    - CLI001 - Connected.
INFO    - CLI001 - Opening Remote Project SRR_Leibniz_Gymnasium ...
INFO    - CLI001 - Remote Project opened.
INFO    - BCK001 - Starte Backup von Projekt 'SRR_Leibniz_Gymnasium' und efa-Konfiguration ...
INFO    - BCK002 - Projekt SRR_Leibniz_Gymnasium 'remote:efalive@localhost:3834/SRR_Leibniz_Gymnasium.efa2project' wurde erfolgreich gesichert.
INFO    - BCK002 - AutoIncrement 'remote:efalive@localhost:3834/autoincrement.efa2autoincrement' wurde erfolgreich gesichert.
INFO    - BCK002 - Fahrtgruppen 'remote:efalive@localhost:3834/sessiongroups.efa2sessiongroups' wurde erfolgreich gesichert.
INFO    - BCK002 - Personen 'remote:efalive@localhost:3834/persons.efa2persons' wurde erfolgreich gesichert.
INFO    - BCK002 - Status 'remote:efalive@localhost:3834/status.efa2status' wurde erfolgreich gesichert.
INFO    - BCK002 - Gruppen 'remote:efalive@localhost:3834/groups.efa2groups' wurde erfolgreich gesichert.
INFO    - BCK002 - Fahrtenabzeichen 'remote:efalive@localhost:3834/fahrtenabzeichen.efa2fahrtenabzeichen' wurde erfolgreich gesichert.
INFO    - BCK002 - Boote 'remote:efalive@localhost:3834/boats.efa2boats' wurde erfolgreich gesichert.
INFO    - BCK002 - Mannschaften 'remote:efalive@localhost:3834/crews.efa2crews' wurde erfolgreich gesichert.
INFO    - BCK002 - Bootsstatus 'remote:efalive@localhost:3834/boatstatus.efa2boatstatus' wurde erfolgreich gesichert.
INFO    - BCK002 - Bootsreservierungen 'remote:efalive@localhost:3834/boatreservations.efa2boatreservations' wurde erfolgreich gesichert.
INFO    - BCK002 - Bootsschäden 'remote:efalive@localhost:3834/boatdamages.efa2boatdamages' wurde erfolgreich gesichert.
INFO    - BCK002 - Ziele / Strecken 'remote:efalive@localhost:3834/destinations.efa2destinations' wurde erfolgreich gesichert.
INFO    - BCK002 - Gewässer 'remote:efalive@localhost:3834/waters.efa2waters' wurde erfolgreich gesichert.
INFO    - BCK002 - Statistiken 'remote:efalive@localhost:3834/statistics.efa2statistics' wurde erfolgreich gesichert.
INFO    - BCK002 - Nachrichten 'remote:efalive@localhost:3834/messages.efa2messages' wurde erfolgreich gesichert.
INFO    - BCK002 - Fahrtenbuch 2012 'remote:efalive@localhost:3834/2012.efa2logbook' wurde erfolgreich gesichert.
INFO    - BCK002 - Fahrtenbuch 2013 'remote:efalive@localhost:3834/2013.efa2logbook' wurde erfolgreich gesichert.
INFO    - BCK002 - Konfiguration 'file:/home/efa/efa2/cfg/configuration.efa2config' wurde erfolgreich gesichert.
INFO    - BCK002 - Administratoren 'file:/home/efa/efa2/cfg/admins.efa2admins' wurde erfolgreich gesichert.
INFO    - BCK002 - Bezeichnungen 'file:/home/efa/efa2/cfg/types.efa2types' wurde erfolgreich gesichert.
INFO    - BCK004 - 21 Objekte in /media/backup/efaLive_backup_20131018_173655/efa_backup_20131018_173655.zip gesichert.
INFO    - BCK006 - Backup erfolgreich abgeschlossen.
INFO    - COR001 - PROGRAMMENDE
Create efaLive backup to /media/backup/efaLive_backup_20131018_173655/efaLive_backup_20131018_173655.zip ...
  adding: home/efa/.efalive/ (stored 0%)
  adding: home/efa/.efalive/.efacred (stored 0%)
  adding: home/efa/.efalive/settings.conf (deflated 32%)
Unmounting /dev/sdc1...
Backup successful.
/bin/sh: 1: /usr/lib/efalive/bin/autobackup.sh: not found
/bin/sh: 1: /usr/lib/efalive/bin/autobackup.sh: Permission denied
Fri Oct 18 17:44:06 CEST 2013
Mounting /dev/sdb1 to /media/backup...
This option is not available. Please see --help for all possible usages.
Fri Oct 18 17:45:39 CEST 2013
Mounting /dev/sdc1 to /media/backup...
Error: directory /media/backup already contains a mounted file system
This option is not available. Please see --help for all possible usages.
Zunächst der vollständigkeit halber ein erfolgreiches Backup, dann habe ich das originale Skript umbenannt und er hat es halt nicht gefunden, was ja auch gut so ist. Dann hatte die neue Version nicht die richtigen Rechte (gehörte root und war auch nur von ihm ausführbar) danach hatte es die Rechte und dann kamen halt die letzten 7 Zeilen... (mit 2 verschiedenen Sticks nacheinander angesteckt).

Vielleicht magst du da ja nochmal drüber sehen, sicherlich ist es mal wieder ein ganz primitiver Fehler, wenn es bei dir schon funktionierte.

Vielen Dank!

t-man
Beiträge: 8
Registriert: Do 20. Jun 2013, 21:59

Re: efaLive-Autobackup - Passwortschutz hinzufügen

Beitrag von t-man » Fr 18. Okt 2013, 18:10

P.S.: das zweite "#!/bin/bash" herauszunehmen war es auch nicht, das fiel mir gerade noch auf. ;)

klinux
Beiträge: 202
Registriert: Mi 21. Jul 2010, 11:36

Re: efaLive-Autobackup - Passwortschutz hinzufügen

Beitrag von klinux » Fr 18. Okt 2013, 21:54

Hi Torben,

ui, da gab es aber ein Missverständnis. Ich habe dein Skript nicht eingebunden, indem ich es in das autobackup.sh Skript kopiert habe, sondern indem ich es an der Stelle, wo normalerweise efalive-backup aufgerufen wird, aufgerufen habe. Das solltest Du zur Vermeidung von Problemen vielleicht auch machen. Denn die Aufrufe von "exit" beenden nun einfach das autobackup.sh Skript, ohne dass der USB Stick wieder ausgehängt wird.

Probleme, die ich in dem Code unten spontan sehe:
1) Das Passwort (ziel) wird nur noch auf "null" gesetzt, Du musst als Passwort also "null" eingeben.
2) Anscheinend rufst Du irgendwas mit einer ungültigen Option auf. Du siehst also nur den "USB-Laufwerk angeschlossen..." Dialog und danach nichts mehr? Der Dialog mit der Frage müsste ja in jedem Fall noch kommen.
3) Das Skript bricht in jedem Fall in der Zeile "exit $backupergebnis" ab, autobackup.sh wird also nie richtig beendet. Darum vielleicht auch die Meldung, dass in /media/backup bereits etwas gemountet ist.

Viele Grüße

klinux
Beiträge: 202
Registriert: Mi 21. Jul 2010, 11:36

Re: efaLive-Autobackup - Passwortschutz hinzufügen

Beitrag von klinux » So 20. Okt 2013, 11:00

Hallo Torben,

ich habe die beiden Skripte jetzt mal hier angehängt. Bei mir funktioniert es damit unter efaLive 2.1 ohne Probleme.

Viele Grüße
Dateianhänge
backuppasswd.zip
Modifiziertes autobackup.sh und autopasswd.sh für efaLive 2.1. Beide nach /usr/lib/efalive/bin/ entpacken. Evtl müssen die Skripte nach dem Entpacken noch ausführbar gemacht werden.
(2.53 KiB) 361-mal heruntergeladen

t-man
Beiträge: 8
Registriert: Do 20. Jun 2013, 21:59

Re: efaLive-Autobackup - Passwortschutz hinzufügen

Beitrag von t-man » So 20. Okt 2013, 22:52

Moin!

Ich habe gerade deine beiden Skripte ausprobiert und es funktioniert nun wie gewünscht... (zumindest fast, aber das ist was anderes, bekomme ich selber hin). Es werden alle Dialogfenster angezeigt und passt soweit, VIELEN DANK!!!

Und zu dem Problem beim direkten reinkopieren hast du natürlich Recht, ich habe nicht über die weitreichende Wrikung des exits gedacht, bzw. dass es ja einen relevanten Unterschied macht, ob ich das Skript reinkopiere oder extra lasse. Ich weiß auch nicht, was mich da geritten hat.

1) weiß ich, war zur vorübergehenden Vereinfachung, habe ich inzwischen wieder umgestellt.
2) und 3) haben sich dann ja erledigt.

Danke nochmal! Ich werde jetzt noch ein bisschen modifizieren und dann kommt es zur neuen Saison zum Einsatz. :-)

t-man
Beiträge: 8
Registriert: Do 20. Jun 2013, 21:59

Re: efaLive-Autobackup - Passwortschutz hinzufügen

Beitrag von t-man » Sa 26. Okt 2013, 13:10

Moin!

Ich habe inzwischen mein Konzept zum Verändern des Autobackups geändert, denn es kam dann der Wunsch auf, dass man beim Anstecken eines USB-Sticks ja vielleicht auch Statistiken darauf erstellen kann und manchmal gerne nachschauen (-> Dateibrowser) möchte, was auf dem Stick drauf ist. Zumindest entspricht das der Nutzung unseres Bootshaus-PC. Das ganze sollte natürlich auch noch automatisch beim Anstecken eines Sticks starten.

Daher habe ich dann mal die ganze autobackup.sh umgekrempelt und den originalen Teil hauptsächlich noch als eine Option drin. Die modifizierte Version stellt nun zu Anfang die Frage, was gemacht werden soll und führt dann weiter durch die gewählte Option.

Beim Backup habe ich eine Passwortabfrage integriert, damit nicht unbedingt unsere kleinen Spielkinder den ganzen Datensatz mitnehmen und dann andere nach Datenschutz zu schreien beginnen. Dieses Passwort lässt sich über ein kleines Skript, das in einer der Konsolen (TTY) ausgeführt werden muss, ändern.

Als Dateibrowser ist der bereits vorhandene Thunar in Verwendung. Dieser Greift nach Auswahl dieser Option auf den dafür gemounteten Stick zu (soweit ich das durchblicken konnte mit Schreibrechten wohl nur (?) auf dem Stick, bin nicht ganz sicher!).

Beim Erstellen von Statistiken bin ich nicht ganz so weit gekommen, wie ich gehofft hatte. Nun wird der Stick gemountet und darauf ein vorgegebener Ordner erstellt, in den man dann über die normale efa-Statistik-Funktion manuell noch die Backups erstellen muss. Danach wechselt man zurück und lässt den Stick wieder unmounten (der Ordner wird analog zum Autobackup mit dem Datum versehen).
Schöner wäre es hier natürlich, wenn man direkt in diesem Dialog auswählen könnte, welche Statistik man erstellen möchte. Das ist mir aber leider noch nicht gelungen, denn ich habe zwar die efaCLI durchgesehen und weiß, dass man damit per Kommando Statistiken erstellen kann, jedoch müsste man die Statistiken dann ständig im Auto-Skript nachführen, denn bei uns kommen da ab und an mal welche dazu oder wieder weg, wenn mal wieder ein Sportkurs da ist oder dergleichen.
Daher wäre es für diesen letzten Schliff erforderlich, die möglichen definierten Statistiken per Kommandozeile/ Skript abfragen zu können. Das könnte man wiederum als Auswahl darstellen und dann gewünschte Menge anhaken und per CLI auf den Stick erstellen.

Gibt es diese Möglichkeit bereits irgendwie und ich habe sie nur nicht finden können? Ich würde sie auch aus einer config. Datei rauslesen, weiß aber nicht, wo ich dafür suchen muss.
Alternativ könnte auch direkt das normale Statistik-Fenster aufgerufen werden (so wie wenn man das auf den Mitte-Buttons aklickt) und dann darüber laufen, aber auch das habe ich nicht finden können.

Wenn es dazu eine Möglichkeit gibt, arbeite ich das gerne noch mit ein, ansonsten bin ich soweit erstmal mit dem Ergebnis der letzten Tage zufrieden, da alles funktioniert, was als Ergänzung unsererseits gewünscht war.
Den aktuellen Stand, den ich für efaLive-Version 2.1.0_10 entwickelt habe, hänge ich diesem Post an. Wer mag, kann sie sich ansehen oder auch verwenden - natürlich auf eigene Gefahr! In dem im zip enthaltenen ReadMe stehen auch die "Installationshinweise" und an welche Stellen welche Dateien am Ende stehen sollten.

Torben
Dateianhänge
USB-Skript-TG.zip
Geänderter Dialog für efaLive, der bei Anschluss eines USB-Laufwerkes startet, Infos in der ReadMe und Installation über die install...-Datei.
(6.72 KiB) 384-mal heruntergeladen

electria
Beiträge: 126
Registriert: Mi 11. Sep 2013, 10:56
Wohnort: Gelsenkirchen
Kontaktdaten:

Re: efaLive-Autobackup - Passwortschutz hinzufügen

Beitrag von electria » Di 19. Nov 2013, 15:55

Hi,

ich finde es eine super Idee mit dem Passwort beim automatischen Backup. Nur leider hat man kompletten Zugriff auf die Daten über den Dateibrowser. Außerdem finde ich dauert es genauso lang wie über das efalive-setup->Speichermedien->Backup erstellen. Wobei deine Lösung hat den Vorteil, dass nicht jeder gleich am ganzen Setup rum spielen kann.

Meine Idee dazu wäre über die Seriennummer vom USB-Stick zu gehen, z.B. über "udevadm info -a -n /dev/sdX | grep serial", um damit das Autobackup zu autorisieren. Man könnte so ein paar USB-Sticks erlauben ein Backup zu starten.

Wegen den Statistiken abfragen geht z.B. über "./efaCLI.sh admin@localhost/rvg -cmd 'statistics list all' ". Dürfte bestimmt auch einen einfacher Weg geben, als dann aus den Ausgaben das passende raus zu schneiden.

Grüßle
Ralf

Antworten