Benutzer-Werkzeuge

Webseiten-Werkzeuge


 [[anwenderwiki:einsammeln_ohne_schulkonsole]] 

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

anwenderwiki:einsammeln_ohne_schulkonsole [2015/07/11 19:47] (aktuell)
Zeile 1: Zeile 1:
 +{{tag> Einsammeln Schulkonsole Skripte}}
 +
 +====== Einsammeln ohne Schulkonsole ======
 +Ohne Schulkonsole ist das Einsammeln von Schülerarbeiten mühsam, weil die Verzeichnisse weit verstreut liegen.
 +Das folgende Skript behebt diesen Mangel, indem es unter ''/​home/​students''​ die Verzeichnisse zusammenfasst.
 +
 +Das Skript erzeugt folgende Struktur unter ''/​home/​students'':​
 +<​code>​
 +__einsammeln-5a
 +  schueler1
 +  schueler2
 +__einsammeln-5b
 +...
 +</​code>​
 +
 +<​file>/​usr/​local/​bin/​link_einsammeln.sh</​file>​
 +
 +<​code>​
 +#!/bin/bash
 +# link_einsammeln.sh
 +# Verlinke die __einsammeln-Verzeichnisse unter /​home/​students
 +#
 +# Frank Schütte 2015
 +#
 +STUDENTS=/​home/​students
 +EDIR=__einsammeln
 +
 +PWD=`pwd`;
 +
 +if [ -n "​$1"​ -a "​$1"​ = "​-h"​ ]; then
 +  echo "​Verwendung:​ $0"
 +  echo " ​    ​-h ​ Hilfe"
 +  echo " ​    ​-v ​ verbose"​
 +  exit 0
 +fi
 +
 +[ -n "​$1"​ ] && VERBOSE=true
 +
 +[ -e "​$STUDENTS"​ ] || exit 1
 +
 +cd $STUDENTS
 +
 +remove_old_links(){
 +  for d in `ls`; do
 +  (
 +    [ "​$VERBOSE"​ = "​true"​ ] && echo "​Entferne Link-Verzeichnis ${EDIR}-$d..."​
 +    if [ -d ${EDIR}-$d ]; then
 +      cd ${EDIR}-$d;
 +      find . -type l -exec rm -f {} \;
 +      cd ..
 +      rmdir ${EDIR}-$d || return
 +    fi
 +  )
 +  done;
 +}
 +
 +create_new_links(){
 +  (
 +  [ -n "​$1"​ ] || return
 +  local DIR="​${EDIR}-$1"​
 +  mkdir $DIR || return
 +  chown root.teachers $DIR
 +  chmod 750 $DIR
 +  [ "​$VERBOSE"​ = "​true"​ ] && echo "​Erstelle Link-Verzeichnis $DIR..."​
 +  cd $DIR
 +  for schueler in `ls ../$1`; do
 +    [ -e ../​$1/​$schueler/​$EDIR ] && ln -sf ../​$1/​$schueler/​$EDIR $schueler
 +  done;
 +  )
 +}
 +
 +remove_old_links
 +
 +for d in `ls`; do
 +  create_new_links $d
 +done;
 +
 +cd $PWD
 +
 +exit 0
 +</​code>​
  
 [[anwenderwiki:einsammeln_ohne_schulkonsole]] anwenderwiki/einsammeln_ohne_schulkonsole.txt · Zuletzt geändert: 2015/07/11 19:47 (Externe Bearbeitung)