自动添加项目、用户的脚本

回复 收藏

需求背景:  朋友的一台服务器,跑的lamp环境,上面有很多他客户的项目,每个项目就是一个网站。 而且他的客户也在不断增加,每次增加一个客户,就需要配置相应的mysql、ftp以及httpd. 这种工作是重复性非常强的,所以用脚本实现非常合适。下面给出我写的脚本,大家参考。

  1. #!/bin/bash

  2. webdir=/home/internet/www

  3. ftpudir=/etc/vsftpd/vuuser

  4. mysqlc="/usr/bin/mysql -uroot -xxxxxx"

  5. httpd_config_f="/usr/local/apache2/conf/extra/httpd-vhosts.conf"

  6. add_mysql_user()

  7. {

  8.         mysql_p=`mkpasswd -s 0 -l 12`

  9.         echo "$pro $mysql_p" >/tmp/$pro.txt

  10.         $mysqlc <<EOF

  11.         grant all on $p.* to "$pro"@'127.0.0.1' identified by "$mysql_p";

  12. EOF

  13. }

  14. add_ftp_user()

  15. {

  16.         ftp_p=`mkpasswd -s 0 -l 12`

  17.         echo "$pro" >> /root/login.txt

  18.         echo "$ftp_p" >> /root/login.txt

  19.         db_load -T -t hash -f /root/login.txt  /etc/vsftpd/vsftpd_login.db

  20.         cd $ftpudir

  21.         cp weike $pro   //这里的weike是一个文件,是之前的一个项目,可以作为配置模板

  22.         sed -i "s/weike/$pro/" $pro  //把里面的weike改为新的项目名字

  23.         /etc/init.d/vsftpd restart

  24. }

  25. config_httpd()

  26. {

  27.         mkdir $webdir/$pro

  28.         chown vsftpd:vsftpd $webdir/$pro

  29.         echo -e "<VirtualHost *:80> \n     DocumentRoot "/home/internet/www/$pro/" \n     ServerName $dom \n    #ServerAlias \n</VirtualHost> " >> $httpd_config_f

  30.         /usr/local/apache2/bin/apachectl graceful

  31. }

  32. read -p "input the project name: " pro

  33. read -p "input the domain: " dom

  34. add_mysql_user

  35. add_ftp_user

  36. config_httpd

2016-08-23 10:58 举报
已邀请:
0

u46306306

赞同来自:

学习了

0

kw是id

赞同来自:

学习学习

0

简单的开始

赞同来自:

为什么要用ftp啊,把你的项目放到apache站点下,把数据库设置好,重启apache不就好了,为什么要用到ftp呢,我自己的博客就这样搭建好的。

回复帖子,请先登录注册

退出全屏模式 全屏模式 回复
评分
可选评分理由: