Speicherplatz-Userzuordnung im Dateimanager

Deutsches Benutzerforum

Speicherplatz-Userzuordnung im Dateimanager

Postby eco.karsten » Thu Aug 09, 2012 1:56 pm

Servus,

ich würde gerne ein Bash-Skript schreiben, welches mir für jeden Benutzer von Tine anzeigt, wieviel Byte an Daten er im Dateimanager abgelegt hat.

Mein Problem ist, dass ich jetzt nicht weiß, wie ich aus den Dateinamen im Filemanager-Speicherort, bspw. /srv/tine/files/ff9/e1fe61ccd4e2110477d47056390d001389fca, über die Datenbank auf den Benutzer rückschließen kann, dem die Datei "gehört".

In welche Tabelle muss ich denn da rein, um mit dem Dateinamen rückwärts den Benutzer rauszufinden?
eco.karsten
 
Posts: 2
Joined: Thu Aug 09, 2012 1:49 pm

Re: Speicherplatz-Userzuordnung im Dateimanager

Postby ph_il » Mon Aug 13, 2012 12:23 pm

vermutlich ist tine20_tree_filerevisions die richtige für dich. da steht der hash (dateiname), der benutzer (created_by) und die size drinne.
Philipp Schüle
Tine 2.0 Core Developer

Visit http://www.tine20.com (commercial support, consulting and development)
Visit http://www.officespot20.com (Tine 2.0 hosting)
User avatar
ph_il
Tine 2.0 Core Developer
 
Posts: 3450
Joined: Fri Mar 07, 2008 11:41 am

Re: Speicherplatz-Userzuordnung im Dateimanager

Postby eco.karsten » Tue Sep 11, 2012 9:11 am

Danke für den Tip.

Für die Analen - so hab ich das jetzt gemacht. Ist nicht schön, sollte aber tun. Jemand der deutlich besser MySQL "spricht" kann das natürlich besser und wahrscheinlich in einer Zeile...

Code: Select all
#!/bin/bash


set -x


# 1GB = 1 073 741 824 bytes
MAX_SIZE=1073741824;
MAX_SIZE_GIGA="1";
SYSTEM="`hostname -f`";
SEND_EMAIL="0";


mysql -u root --batch -e "SELECT created_by FROM tine20_tree_filerevisions;" tine20 | grep -v "created_by" | sort -u > /tmp/tine_filemanager_users;

echo -e " The following users created more than $MAX_SIZE_GIGA Gigabyte of files in the Tine Filemanager:\n\n" > "/tmp/admin_email";

for USER_ID in `cat /tmp/tine_filemanager_users`; do
   mysql -u root --batch -e "SELECT size FROM tine20_tree_filerevisions WHERE created_by = '${USER_ID}';" tine20 | grep -v "size" > /tmp/tine_filemanager_users_file_sizes;

   # Size is in bytes.

   TOTAL=0;
   for FILE_SIZE in `cat /tmp/tine_filemanager_users_file_sizes`; do
      TOTAL_TMP=$(( TOTAL + FILE_SIZE ));
      TOTAL="${TOTAL_TMP}";
   done;

   if [ ${TOTAL} -gt ${MAX_SIZE} ]; then
      EMAIL_ADDR=`mysql -u root --batch -e "SELECT email FROM tine20_accounts WHERE id = '${USER_ID}';" tine20 | grep -v "email"`;

      echo -e " The total size of all files created by you in the filemanager of Tine exceeds the allowed size of $MAX_SIZE_GIGA Gigabyte.\n\n Please delete some files. Contact the IT support if you need assistance.\n\n Do NOT reply to this email. It has been generated automatically." | mail -s "[$SYSTEM] Warning - Tine Filemanager Size Limit Exceeded" "${EMAIL_ADDR}";

      echo -e "   * ${EMAIL_ADDR}" >> "/tmp/admin_email";
      SEND_EMAIL="1";
   fi
done


if [ "$SEND_EMAIL" = "1" ]; then
   cat "/tmp/admin_email" | mail -s "[$SYSTEM] Tine Filemanager Size Limit Check Script Report" maintenance@company.eu;
fi


rm -f /tmp/tine_filemanager_users /tmp/tine_filemanager_users_file_sizes /tmp/admin_email;
eco.karsten
 
Posts: 2
Joined: Thu Aug 09, 2012 1:49 pm

Re: Speicherplatz-Userzuordnung im Dateimanager

Postby ph_il » Mon Sep 17, 2012 12:20 pm

hallo karsten,

sieht doch sehr brauchbar aus.

magst du das eventuell dem projekt zu verfügung stellen? dazu wäre es schön, wenn du uns eine CLA senden könntest (siehe http://www.tine20.org/wiki/index.php/Be ... oper_/_CLA).

vermutlich wird im Filemanager auch eine quota-funktion kommen, aber so lange es die nicht gibt, kann das skript gute dienste leisten.
Philipp Schüle
Tine 2.0 Core Developer

Visit http://www.tine20.com (commercial support, consulting and development)
Visit http://www.officespot20.com (Tine 2.0 hosting)
User avatar
ph_il
Tine 2.0 Core Developer
 
Posts: 3450
Joined: Fri Mar 07, 2008 11:41 am


Return to Deutsch [German]

Who is online

Users browsing this forum: Google [Bot] and 10 guests

Startseite
NewsDemoDownloadForumWikiBlog
Support
Support at first hand!
If the forum does not help anymore ... Professional support is available directly from our Tine2.0 core Developers.

more »