Bonjour à tous,

Je cherche un script .sql qui ferait un select sur un "champ" 'user_real_name' pour test de présence et un delete du user trouvé par ce select avec une 'log' de cette suppression.
Voilà le script que j'utilise, il fait bien le select, mais ne le supprime pas et bien sûr je n'ai aucune log

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
 if [[ "$1" == "--dry-run" ]]
      4 then
      5         echo "Running in test MODE..."
      6 elif [[ "$1" == "--run" ]]
      7 then
      8         echo "Running in RUN MODE..."
      9 else
     10         echo "Usage: $0 [--test-run][--run]"
     11         echo "Mass delete users"
     12         echo "Use --test-run to test"
     13         echo "Use --run to execute"
     14         exit 1
     15 fi
     16
     17 MW_ROOT=/xxx/xxx/xxxxx
     18 MWDB_PREFIX='xxxx_'
     19
     20 DB="xxxx"
     21 DATABASE_HOST="xxxxxx"
     22 DATABASE_PORT="xxxx"
     23 DATABASE_USER="xxxxx"
     24 DATABASE_PASSWD="xxxxx"
     25 SQL_FICHIERS="  SELECT user_id, user_name
     26                                 FROM xxxx_user
     27                                 WHERE (user_real_name = 'S00xxxxx' or user_real_name = 'S00xxxxx' or user_real_name = 'S00xxxxx' )
     28                                 ;"
     29 SQL_UNBLOCK="delete from test_ipblocks;"
     30
     31
     32 #Unblock blocked user
     33 echo $SQL_UNBLOCK | php -f $MW_ROOT/maintenance/sql.php
     34
     35
     36
     37 #Build user list to delete
     38
     39 tmp=tmp_1452;
     40
     41 rm -fr $tmp;
     42 echo $SQL_FICHIERS | php -f $MW_ROOT/maintenance/sql.php > $tmp
     43
     44 #Récupere les utilsiateurs qui sont a supprimer, et pour chacun d'eux, on appelle le fichier itceUserMergeDelete.php en passant en paramètes l'id du suer et son nom
     45 mysql -h$DATABASE_HOST -P$DATABASE_PORT -u$DATABASE_USER -p$DATABASE_PASSWD -B --exec="connect $WIKI_DB; $SQL_FICHIERS" | while read user_id user_name;
     46 do
     47         php -f  $MW_ROOT/utils/Scripts/xxxxMergeDelete.php $user_id "$user_name"
     48         echo "$user_name ----> Delete"
     49 done
     50 #echo $SQL_FICHIERS | php -f $MW_ROOT/maintenance/sql.php | awk -f script.awk | awk '{print "php $MW_ROOT/utils/Scripts/UserMergeDelete.php" $0 }' >> test.txt;
     51
     52 rm -fr $tmp;
J'ai bien évidement, pour des raisons de confidentialité remplacé les vraies valeurs par des "xxxxx", mais ce script n'a pas d'erreur de syntaxe, il ne fait pas le delete des users.