Advertisement
Guest User

Untitled

a guest
Jun 30th, 2017
84
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 2.43 KB | None | 0 0
  1. #!/bin/sh
  2. # Cisteni databaze od starych accountu
  3. # arg1 - (default 30) - pocet dni po ktere nebyly accounty pouzivane
  4.  
  5. # Konfigurace
  6. DB_HOST="localhost";
  7. DB_REALM="realmd";
  8. DB_MANGOS="characters";
  9. DB_USER="root";
  10. DB_PASS="heslo";
  11.  
  12. # Minimalne deset dni
  13. if [ "${1}" != "" ] && [ ${1} -gt 1 ];
  14. then
  15.     # Ziska accounty starsi nez $arg dni
  16.     mysql -h ${DB_HOST} -u ${DB_USER} -p${DB_PASS} -D ${DB_REALM} -e "SELECT id,username,last_login,joindate FROM account WHERE last_login<DATE_SUB(NOW(),INTERVAL ${1} DAY) AND joindate<=last_login";
  17.  
  18.     # Kontrola
  19.     echo -n " Souhlasite s vymazanim? a/n : ";
  20.     read ans;
  21.     # Ziskam idcka
  22.     if [ "${ans}" != "a" ];
  23.     then
  24.         exit;
  25.     fi
  26.     echo;
  27.  
  28.     guids=$(mysql -h ${DB_HOST} -u ${DB_USER} -p${DB_PASS} -D ${DB_REALM} -e "SELECT id FROM account WHERE last_login<DATE_SUB(NOW(),INTERVAL ${1} DAY) AND joindate<=last_login");
  29.     guids=${guids:2};
  30.  
  31.     # Pro kazde guid
  32.     for guid in ${guids[@]};
  33.     do
  34.         echo "Mazu hrace account=${guid}";
  35.  
  36.         # Get character guids
  37.         chguids=$(mysql -h ${DB_HOST} -u ${DB_USER} -p${DB_PASS} -D ${DB_MANGOS} -e "SELECT guid FROM \`character\` WHERE account='${guid}' AND level < 61");
  38.         chguids=${chguids:4};
  39.  
  40.         # Kontrola prazdnych accountu
  41.         if [ "${chguids}" != "" ];
  42.         then
  43.  
  44.         # Smaz vsechny data linkovane na guid characteru
  45.         for chguid in ${chguids[@]};
  46.         do
  47.             echo "  Mazu character guid=${chguid}";
  48.             # Tabulky
  49.             tnames=(
  50.                 character_action
  51.                 character_aura
  52.                 character_homebind
  53.                 character_inventory
  54.                 character_kill
  55.                 character_queststatus
  56.                 character_reputation
  57.                 character_social
  58.                 character_spell
  59.                 character_spell_cooldown
  60.                 character_ticket
  61.                 character_tutorial
  62.                 character
  63.                 );
  64.             # Ze vsech specifikovanych smaze data linkovane na guid characteru
  65.             echo -n "   Cistim tabulku character_*: ";
  66.             for tname in ${tnames[@]}; do
  67.                 echo -ne "${tname//character_/},";
  68.                 mysql -h ${DB_HOST} -u ${DB_USER} -p${DB_PASS} -D ${DB_MANGOS} -e "DELETE FROM \`${tname}\` WHERE guid='${chguid}'" > /dev/null;
  69.             done
  70.  
  71.             # Vyjimka kvuli neuniformni DB
  72.             echo -ne "pet,";
  73.             mysql -h ${DB_HOST} -u ${DB_USER} -p${DB_PASS} -D ${DB_MANGOS} -e "DELETE FROM \`character_pet\` WHERE owner='${chguid}'" > /dev/null;
  74.         done
  75.  
  76.         fi 
  77.  
  78.         # Smaze z realmu
  79.         mysql -h ${DB_HOST} -u ${DB_USER} -p${DB_PASS} -D ${DB_REALM} -e "DELETE FROM \`account\` WHERE id='${guid}'";     
  80.     done
  81.  
  82.  
  83.  
  84.  
  85. else
  86.     echo "Prilis kratky pocet dni.";
  87. fi
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement