Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen RevisionVorhergehende Überarbeitung | |||
anwenderwiki:owncloud:schuljahreswechsel [2023/09/10 16:22] – [Noch nicht gelöschte Accounts anzeigen] tobias | anwenderwiki:owncloud:schuljahreswechsel [2023/09/10 16:24] (aktuell) – [Komplettes Skript vom Server aus] tobias | ||
---|---|---|---|
Zeile 92: | Zeile 92: | ||
<code bash update_clouddata.sh> | <code bash update_clouddata.sh> | ||
- | #!/bin/bash | + | # |
+ | # Copyright 2019-2023 Tobias Küchel < | ||
+ | # This piece of software is licensed under: | ||
+ | # SPDX-License-Identifier: | ||
+ | # ideas and pieces of this script from Max Führinger from the wiki | ||
- | lmnservername=" | + | ## no command line arguments: your cloudserver should be configured here: |
- | nextcloudservername="cleese" | + | cloudserver="cloud-ext" |
- | occ="/ | + | ## path to the occ command on the cloudserver |
+ | occcmd="/ | ||
+ | phpcmd=" | ||
+ | ## path to the data directory on the cloud server | ||
data="/ | data="/ | ||
+ | ## list of directories on $data/ which should not be considered for deletion | ||
+ | excludelist=" | ||
- | if [ `hostname` = "$lmnservername" ]; then | + | ## kopiere dieses Script auf den Cloudserver |
- | echo "copying | + | if [ `hostname |
- | scp $0 ${nextcloudservername}: | + | echo "Kopiere dieses Script |
- | ssh -t ${nextcloudservername} | + | scp $0 $cloudserver:$0 |
+ | ssh -t $cloudserver | ||
exit 0 | exit 0 | ||
fi | fi | ||
- | hardlist=`mktemp` | + | ############################################################################################## |
+ | homelist=`mktemp` | ||
pv --version > /dev/null | pv --version > /dev/null | ||
if [ $? -ne 0 ] ; then | if [ $? -ne 0 ] ; then | ||
- | apt install pv | + | apt install pv bc |
fi | fi | ||
- | echo -n "Erstelle Liste: " | + | simulate="" |
- | ls $data | grep -v " | + | if [ " |
- | echo `cat /tmp/userlist | + | echo " |
+ | simulate=" | ||
+ | fi | ||
+ | ### Zeige, frage und lösche alle User, die nicht mehr im LDAP sind: | ||
+ | echo -n "Users scheinbar nicht mehr im LDAP: " | ||
+ | $phpcmd $occcmd ldap:show-remnants | ||
+ | if [ -s / | ||
+ | | ||
- | echo "Checke, ob User noch in LDAP sind:" | + | lines=$(cat / |
- | for i in `cat /tmp/userlist` ; do | + | lines=$(echo "$lines * 2" |
- | | + | |
- | # not a local user? | + | |
- | if ! sudo -u www-data php $occ user:info "$i" | + | |
- | echo " | + | done | pv -l -s $lines |
- | fi | + | $phpcmd $occcmd ldap:show-remnants |
- | else | + | if ! diff / |
- | echo -n " | + | echo "HUCH. Bitte starte das Programm nochmal. Es schienen beim ersten Durchlauf LDAP-User nicht zu existieren, die nach einen Check doch existieren!\ |
+ | " | ||
+ | exit 0 | ||
fi | fi | ||
- | done | pv -s `cat / | ||
- | echo -n "Users nicht mehr im LDAP:" | + | |
- | sudo -u www-data php / | + | [[ -n $simulate ]] && echo "SIMULATION: würde in keinem Fall etwas löschen!" |
- | if [ -s / | + | echo -n " |
- | cat / | + | |
- | echo " | + | |
read | read | ||
if [ " | if [ " | ||
- | for i in `cat / | + | for i in `cat / |
- | | + | |
- | done | + | $simulate $phpcmd $occcmd |
+ | done | ||
fi | fi | ||
else | else | ||
echo " | echo " | ||
fi | fi | ||
+ | ### Erstelle eine Liste an Usern mit Dateien in der Cloud | ||
+ | echo -n " | ||
+ | ls $data | grep -v " | ||
+ | echo `cat / | ||
- | echo -n "Users in $hardlist, deren Home gelöscht werden könnte $data:" | + | ### Erstelle die Liste aller User mit Dateien, die nicht mehr im LDAP sind |
- | if [ -s $hardlist | + | echo " |
- | cat $hardlist | + | for i in `cat / |
+ | ## not an LDAP user? | ||
+ | if $phpcmd $occcmd ldap: | ||
+ | # not a local user? | ||
+ | if ! $phpcmd $occcmd user:info " | ||
+ | ## then add him to the list | ||
+ | echo " | ||
+ | fi | ||
+ | ## echo one byte | ||
+ | echo -n " | ||
+ | else | ||
+ | ## echo one byte | ||
+ | echo -n " | ||
+ | fi | ||
+ | done | pv -s `cat / | ||
+ | ### Zeige, frage und lösche alle User, die scheinbar noch Dateien in der Nextcloud haben | ||
+ | echo -n "Users in $homelist, deren Home gelöscht werden könnte $data: " | ||
+ | if [ -s $homelist | ||
+ | cat $homelist | ||
+ | [[ -n $simulate ]] && echo " | ||
echo " | echo " | ||
read | read | ||
if [ " | if [ " | ||
- | for i in `cat $hardlist`; do | + | for i in `cat $homelist`; do |
- | | + | |
done | done | ||
fi | fi | ||
Zeile 157: | Zeile 198: | ||
echo " | echo " | ||
fi | fi | ||
+ | exit 0 | ||
+ | rm / | ||
+ | rm / | ||
+ | rm $homelist | ||
+ | |||
+ | |||
</ | </ | ||
+ | |||
+ |