Automatisation création de compte mail dans mysql
Par lmns972 le mardi, juillet 27 2010, 11:36 - Scripts - Lien permanent
Je me lance dans le scripting car en tant que sysadmin il est important d'être fainéant (chuttt) . Alors si vous avez suivi mes précédents billets ici et ici .
La création des utilisateurs ne se fait pas de façon automatique. Avec ce petit script on pourra se reposer (du moins faire autres choses).
/* #!/bin/bash user=db_user db=db_name pass=our_password uid=5000 gid=5000 home=/var/vmail/%d/%n usage () { echo "Usage :syntaxe : $0 [options] --create Create User --delete Delete User --print Print user exit 1 } #Function create user createuser() { read -p "Enter the domain_id : " domain_id read -p "Enter quota user : " quotauser email="$1" passuser=$(apg -m 10 |head -n 1) create=`echo "INSERT INTO virtual_users (id,domain_id,password,email,quota_kb,quota_messages,gid,uid,home) VALUES (NULL,"$domain_id",MD5('"$passuser"'),'"$email"',"$quotauser","0","$gid","$uid",'"$home"')" | mysql -u "$user" -p"$pass" "$db" ` echo "$email":"$passuser" } #Function delete user deleteuser() { delete=`echo "DELETE FROM virtual_users WHERE email='"$1"'" | mysql -u "$user" -p"$pass" "$db"` } #Print User printuser() { print=`echo "select email, domain_id FROM virtual_users where email='"$1"'" | mysql -u "$user" -p"$pass" "$db"` numberline=`echo "$print" | wc -l ` if [ "$numberline" -eq 1 ] then echo "User does not exist " else echo "$print" fi } compt=0 case "$1" in --print) shift printuser "$1" ;; --create) args=`expr "$#" - 1 ` while [ "$compt" -lt "$args" ] ; do shift createuser "$1" compt=`expr "$compt" + 1 ` done ;; --delete) args=`expr "$#" - 1 ` while [ "$compt" -lt "$args" ] ; do shift deleteuser "$1" compt=`expr "$compt" + 1 ` done ;; *) usage ;; esac */
Il y a encore quelques améliorations à apporter comme ne plus poser de questions (read -p) , création de liste de diffusion.
Si vous avez des remarques n'hésitez pas. Vaudrait mieux que je prenne de bonne habitude vu que je débute 

Commentaires
Merci pour ce code.
A bientôt.
de rien.