centos ftp mysql_CentOS脚本:自动添加站点、FTP、MySQL

#!/bin/bash

# 说明:站点添加工具[独立代码、数据库]

# 日期:2012-03-31 22:31:21 [6]

# 用法: x dn.ext

# 补充:mpm-itk、vsftpd、mysql

#    需要手动删除mysql数据库、vsftpd用户

# buildhttpdpwd buildmysqlpwd 用于根据域名计算密码

# 作者:/

# 显示帮助

if [ -z "$1" ]; then

echo " Usage: `basename $0` domainName comment"

exit

fi

cd /root/bin/

# 变量配置

DATE=`date +%Y%m%d%H%M%S`

USER_PWD=`buildhttpdpwd $1`

USER_QUOTA=204800

FOLDER="/var/www/WebSite/$1"

HTTPD_CONF="/etc/httpd/webSite/"$1".conf"

HTTPD_USER=${1//./_}

HTTPD_GROUP="ftp"

## 如果名称超过16个字符时自动截断(MYSQL用户名最长16字符)

USER_LENGTH=`expr length "$1"`

if [ 16 -lt $USER_LENGTH ]; then

HTTPD_USER=${HTTPD_USER:0:16}

echo "Tip: Domain over 16 characters in length, has been truncated"

fi

VSFTPD_USER=$HTTPD_USER

VSFTPD_USER_CONF="/etc/vsftpd/vusers/"$VSFTPD_USER

VSFTPD_USER_DB_FILE="/etc/vsftpd/vusers.db.info"

MYSQL_DB_USER="creater"

MYSQL_DB_PWD="Qa5yUTjtb6AswA4y"

DB_NAME=$HTTPD_USER

DB_USER=$HTTPD_USER

DB_PWD=`buildmysqlpwd $1`

# 家目录层数多时创建外层目录

PARENT_FOLDER=`dirname $FOLDER`

if [ ! -d $PARENT_FOLDER ]; then

mkdir -p $PARENT_FOLDER

if [ $? -ne 0 ]; then

echo $FOLDER"'s parent folder created failed."

exit

fi

fi

echo "webRoot://:@$FOLDER/"

# 添加用户

if [ -z "$2" ]; then

COMMENT=""

else

COMMENT="$2"

fi

useradd -s /bin/nologin -m -d $FOLDER -g $HTTPD_GROUP $HTTPD_USER -c "$COMMENT"

if [ $? -ne 0 ]; then

echo "user "$HTTPD_USER" added failed."

exit

fi

echo $USER_PWD | passwd $HTTPD_USER --stdin > /dev/null 2>&1

echo "osuser://$HTTPD_USER:$USER_PWD/"

# 设置磁盘配额

setquota -u $HTTPD_USER 0 $USER_QUOTA 0 0 /

echo "quota://"$USER_QUOTA"bytes"

# 生成默认提示页面

echo "$1, put file here first~">> $FOLDER/index.php

# 更改目录权限

chown -R $HTTPD_USER.$HTTPD_GROUP $FOLDER

chmod og-rwx -R $FOLDER

# 生成apache虚拟主机配置文件

echo "#By AutoCreater At "`date`> $HTTPD_CONF

echo "">> $HTTPD_CONF

echo " ServerName www.$1">> $HTTPD_CONF

echo " ServerAlias $1 $1.demo.upall.cn">> $HTTPD_CONF

echo " DocumentRoot \"$FOLDER\"">> $HTTPD_CONF

echo " ">> $HTTPD_CONF

echo " Options FollowSymLinks">> $HTTPD_CONF

echo " AllowOverride All">> $HTTPD_CONF

echo " Order Allow,Deny">> $HTTPD_CONF

echo " Allow from all">> $HTTPD_CONF

echo " ">> $HTTPD_CONF

echo " ">> $HTTPD_CONF

echo " AssignUserId $HTTPD_USER $HTTPD_GROUP">> $HTTPD_CONF

echo " ">> $HTTPD_CONF

echo "">> $HTTPD_CONF

echo "vhost://:@$HTTPD_CONF"

# 添加FTP用户

echo $HTTPD_USER>>/etc/vsftpd/chroot_list

# 以下四行添加虚拟用户时使用,现改为系统用户所以注释掉

#cp $VSFTPD_USER_DB_FILE $VSFTPD_USER_DB_FILE"."$DATE

#echo $VSFTPD_USER>> $VSFTPD_USER_DB_FILE

#echo $USER_PWD>> $VSFTPD_USER_DB_FILE

#/etc/vsftpd/makedb.sh

#echo "local_root=$FOLDER"> $VSFTPD_USER_CONF

#echo "anon_umask=007">> $VSFTPD_USER_CONF

#echo "write_enable=YES">> $VSFTPD_USER_CONF

#echo "anon_world_readable_only=NO">> $VSFTPD_USER_CONF

#echo "anon_upload_enable=YES">> $VSFTPD_USER_CONF

#echo "anon_mkdir_write_enable=YES">> $VSFTPD_USER_CONF

#echo "anon_other_write_enable=YES">> $VSFTPD_USER_CONF

echo "ftp://$VSFTPD_USER:$USER_PWD@116.255.205.145:55555/"

# 添加 mysql 数据库及用户

SQL="CREATE USER '$DB_USER'@'localhost' IDENTIFIED BY '$DB_PWD'; "

echo $SQL | mysql -u$MYSQL_DB_USER -p$MYSQL_DB_PWD -hlocalhost

SQL="GRANT USAGE ON *.* "

SQL="${SQL}TO '$DB_USER'@'localhost' IDENTIFIED BY '$DB_PWD' "

SQL="${SQL}WITH MAX_QUERIES_PER_HOUR 0 "

SQL="${SQL}MAX_CONNECTIONS_PER_HOUR 0 "

SQL="${SQL}MAX_UPDATES_PER_HOUR 0 "

SQL="${SQL}MAX_USER_CONNECTIONS 0 ; "

SQL="${SQL}CREATE DATABASE IF NOT EXISTS $DB_USER; "

SQL="${SQL}GRANT ALL PRIVILEGES ON $DB_USER.* TO '$DB_USER'@'localhost'; ";

echo "$SQL" | mysql -u$MYSQL_DB_USER -p$MYSQL_DB_PWD -hlocalhost

echo "mysql://$DB_USER:$DB_PWD@localhost:3306/$DB_USER/"

# 测试网址

echo "demoUrl://$1.demo.upall.cn/"

# 重启httpd、vsftpd

service httpd graceful

#service vsftpd restart

# 日志

echo "[`date +%Y\-%m\-%d\ %H:%M:%S`] dn:$1 usr:$HTTPD_USER pwd:$USER_PWD dir:$FOLDER" >> /root/bin/x_log

#--end--#

echo 补充客户信息:

chfn $HTTPD_USER

echo 请手动设置用户过期时间点,方法:chage -E 2013-6-15 userName

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
创建2台系统为centos7.5的云主机,其中一台作为Ansible的母机并命名为ansible,另一台云主机命名为node,通过http服务中的ansible.tar.gz软件包在ansible节点安装Ansible服务;并用这台母机,补全Ansible脚本(在HTTP中下载install_zabbix.tar.gz并解压到/root目录下),补全Ansible脚本使得执行install_zabbix.yaml可以在node节点上完成zabbix服务的安装。 ftp.repo: [zabbix] name=zabbix baseurl=file:///opt/Zabbix enabled=1 gpgcheck=0 [ftp_centos] name=ftp_centos baseurl=ftp://controller/centos enabled=1 gpgcheck=0 [root@ansible ~]# cat install_zabbix.yaml - hosts: zabbix remote_user: root tasks: - name: rm repo shell: rm -f /etc/yum.repos.d/* - name: cp repo copy: src=/etc/yum.repos.d/ftp.repo dest=/etc/yum.repos.d/ - name: cp zabbix copy: src=/opt/zabbix dest=/opt/ - name: yum install mariadb zabbix httpd yum: name=mariadb,mariadb-server,zabbix-server-mysql,zabbix-web-mysql,zabbix-agent,trousers state=present - name: start httpd service: name=httpd state=started enabled=yes - name: start mariadb service: name=mariadb state=started enabled=yes -name: mysql passwd shell: mysqladmin -u root password 123456 - name: grant shell: mysql -u root -p123456 -e "create database zabbix character set utf8 collate utf8_bin;" && mysql -u root -p123456 -e "grant all privileges on zabbix.* to zabbix@'%' identified by 'zabbix';" && mysql -u root -p123456 -e "grant all privileges on zabbix.* to zabbix@localhost identified by 'zabbix';" - name: sql shell: zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz |mysql -u zabbix -pzabbix zabbix - name: cp config copy: src=/etc/zabbix/zabbix_server.conf dest=/etc/zabbix/ - name: start zabbix service: name=zabbix-server state=started
06-10

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值