Automatisation création de compte mail dans mysql

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).

  1. /*
  2. #!/bin/bash
  3. user=db_user
  4. db=db_name
  5. pass=our_password
  6. uid=5000
  7. gid=5000
  8. home=/var/vmail/%d/%n
  9. usage ()
  10. {
  11. echo « Usage :syntaxe : $0 [options]
  12. –create Create User
  13. –delete Delete User
  14. –print Print user
  15. exit 1
  16. }
  17. #Function create user
  18. createuser()
  19. {
  20. read -p « Enter the domain_id :  » domain_id
  21. read -p « Enter quota user :  » quotauser
  22. email= »$1« 
  23. passuser=$(apg -m 10 |head -n 1)
  24. 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 » `
  25. echo « $email« : »$passuser« 
  26. }
  27. #Function delete user
  28. deleteuser()
  29. {
  30. delete=`echo « DELETE FROM virtual_users WHERE email=' »$1″‘ » | mysql -u « $user » -p »$pass » « $db »`
  31. }
  32. #Print User
  33. printuser()
  34. {
  35. print=`echo « select email, domain_id FROM virtual_users where email=' »$1″‘ » | mysql -u « $user » -p »$pass » « $db »`
  36. numberline=`echo « $print » | wc -l `
  37. if [ « $numberline » -eq 1 ]
  38. then
  39. echo « User does not exist « 
  40. else
  41. echo « $print« 
  42. fi
  43. }
  44. compt=0
  45. case « $1 » in
  46. –print)
  47. shift
  48. printuser « $1« 
  49. ;;
  50. –create)
  51. args=`expr « $# » – 1 `
  52. while [ « $compt » -lt « $args » ] ;
  53. do
  54. shift
  55. createuser « $1 »
  56. compt=`expr « $compt » + 1 `
  57. done
  58. ;;
  59. –delete)
  60. args=`expr « $# » – 1 `
  61. while [ « $compt » -lt « $args » ] ;
  62. do
  63. shift
  64. deleteuser « $1« 
  65. compt=`expr « $compt » + 1 `
  66. done
  67. ;;
  68. *)
  69. usage
  70. ;;
  71. esac
  72. */

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 😉

Related posts

2 Thoughts to “Automatisation création de compte mail dans mysql”

  1. Merci pour ce code.

    A bientôt.

Leave a Comment