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.  
  10. usage ()
  11. {
  12. echo "Usage :syntaxe : $0 [options]
  13. --create Create User
  14. --delete Delete User
  15. --print Print user
  16. exit 1
  17. }
  18.  
  19. #Function create user
  20. createuser()
  21. {
  22. read -p "Enter the domain_id : " domain_id
  23. read -p "Enter quota user : " quotauser
  24. email="$1"
  25. passuser=$(apg -m 10 |head -n 1)
  26.  
  27. 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" `
  28.  
  29. echo "$email":"$passuser"
  30.  
  31. }
  32.  
  33. #Function delete user
  34. deleteuser()
  35. {
  36. delete=`echo "DELETE FROM virtual_users WHERE email='"$1"'" | mysql -u "$user" -p"$pass" "$db"`
  37. }
  38.  
  39. #Print User
  40. printuser()
  41. {
  42. print=`echo "select email, domain_id FROM virtual_users where email='"$1"'" | mysql -u "$user" -p"$pass" "$db"`
  43. numberline=`echo "$print" | wc -l `
  44.  
  45. if [ "$numberline" -eq 1 ]
  46. then
  47. echo "User does not exist "
  48. else
  49. echo "$print"
  50. fi
  51. }
  52.  
  53. compt=0
  54. case "$1" in
  55.  
  56. --print)
  57. shift
  58. printuser "$1"
  59. ;;
  60. --create)
  61.  
  62. args=`expr "$#" - 1 `
  63. while [ "$compt" -lt "$args" ] ;
  64. do
  65. shift
  66. createuser "$1"
  67. compt=`expr "$compt" + 1 `
  68. done
  69. ;;
  70. --delete)
  71. args=`expr "$#" - 1 `
  72. while [ "$compt" -lt "$args" ] ;
  73. do
  74. shift
  75. deleteuser "$1"
  76. compt=`expr "$compt" + 1 `
  77. done
  78. ;;
  79.  
  80. *)
  81. usage
  82. ;;
  83. esac
  84. */

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