├── README.md ├── expect ├── passwd.txt ├── expect_scp.sh ├── expect.sh ├── login.exp1 └── login.exp ├── system_status ├── Readme.txt ├── show_disks.sh ├── loadavg.sh ├── xen.sh ├── iostat.sh ├── vmstat.sh ├── System_info.sh ├── swap.sh ├── memory.sh ├── cpu.sh └── disk.sh ├── elk ├── kibana-cn.sh ├── elk6.sh └── install-filebeat.sh ├── go └── go.sh ├── lnmp ├── index.html ├── scripts │ ├── showcolor.sh │ ├── tuning │ │ ├── tuning.sh │ │ └── network.sh │ ├── mysql.sh │ ├── mysql_innodb.sh │ ├── nginx.sh │ └── php.sh ├── readme ├── lnmp.sh ├── config └── init.sh ├── disk ├── auto_disk_lvm.sh ├── auto_fdisk.sh └── auto_disk_ssd_aliyun.sh ├── node.js └── node.js.sh ├── zabbix ├── README.md ├── agent-install.sh └── server-install.sh ├── keepalived └── keepalived.sh └── mysql ├── mariadb_auto_install.sh └── mariadb.sh /README.md: -------------------------------------------------------------------------------- 1 | # SRE_Script 2 | 3 | 整理之前在实验室做运维的时候编写的一些shell脚本,自动化的进行安装。 4 | -------------------------------------------------------------------------------- /expect/passwd.txt: -------------------------------------------------------------------------------- 1 | 192.168.10.11 root zijian123 2 | 192.168.10.12 root zijian123 3 | -------------------------------------------------------------------------------- /system_status/Readme.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/strugglehonor/SRE_Script/HEAD/system_status/Readme.txt -------------------------------------------------------------------------------- /elk/kibana-cn.sh: -------------------------------------------------------------------------------- 1 | [[ -f /usr/bin/git ]] || { echo 'install git';yum install -y git &>/dev/null; } 2 | git clone https://github.com/anbai-inc/Kibana_Hanization.git 3 | cd Kibana_Hanization 4 | python main.py /usr/share/kibana 5 | 6 | #重启kibana 7 | systemctl restart kibana 8 | -------------------------------------------------------------------------------- /expect/expect_scp.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/expect -f 2 | set ip [lindex $argv 0] 3 | set timeout 1200 4 | spawn /usr/bin/scp -r 192.168.10.10:/data/www/ /data/ 5 | expect { 6 | "(yes/no)?" {send "yes\r"} 7 | "*password:" {send "www.aqzt.com\r"} 8 | } 9 | expect "password:" 10 | send "123456\r" 11 | -------------------------------------------------------------------------------- /elk/elk6.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | ##添加Elasticsearch 源 3 | cat > /etc/yum.repos.d/elk6.repo<>/etc/profile< 2 | 12 | -------------------------------------------------------------------------------- /expect/login.exp: -------------------------------------------------------------------------------- 1 | #!/usr/bin/expect 2 | set timeout 10 3 | set ipaddress [lindex $argv 0] 4 | set username [lindex $argv 1] 5 | set passwd [lindex $argv 2] 6 | spawn ssh-copy-id -i /root/.ssh/id_rsa.pub $username@$ipaddress 7 | expect { 8 | #first connect, no public key in ~/.ssh/known_hosts 9 | "Are you sure you want to continue connecting (yes/no)?" { 10 | send "yes\r" 11 | expect "password:" 12 | send "$passwd\r" 13 | } 14 | #already has public key in ~/.ssh/known_hosts 15 | "password:" { 16 | send "$passwd\r" 17 | } 18 | "Now try logging into the machine" { 19 | #it has authorized, do nothing! 20 | } 21 | } 22 | expect eof 23 | -------------------------------------------------------------------------------- /disk/auto_disk_lvm.sh: -------------------------------------------------------------------------------- 1 | #/bin/bash 2 | ######################################### 3 | ## Linux系统LVM逻辑卷创建过程以及自动化脚本 4 | ## centos 6 5 | ######################################### 6 | 7 | partition=/data # 定义最终挂载的名称 8 | vgname=vg # 定义逻辑卷组的名称 9 | lvname=lvm # 定义逻辑卷的名称 10 | code='b c d e f g h i k j l' # 根据分区的实际情况修改 11 | 12 | disk= 13 | for i in $code 14 | do 15 | fdisk /dev/sd$i << EOF # 这里自动化完成了所有分区fdisk苦逼的交互步骤 16 | n 17 | p 18 | 1 19 | 1 20 | 21 | t 22 | 8e 23 | w 24 | EOF 25 | disk="$disk /dev/sd${i}1" # 将所有分区拼起来 26 | done 27 | 28 | pvcreate $disk 29 | vgcreate $vgname $disk 30 | lvcreate -l 100%VG -n $lvmname $vgname 31 | mkfs.ext4 /dev/$vgname/$lvmname 32 | 33 | mkdir -p $partition 34 | echo "/dev/$vgname/$lvmname $partition ext4 noatime,acl,user_xattr 1 2' >> /dev/fstab 35 | mount -a 36 | df -h -------------------------------------------------------------------------------- /elk/install-filebeat.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | ##添加Elasticsearch 源 3 | cat > /etc/yum.repos.d/elk.repo< /etc/filebeat/filebeat.yml<loadtemp 8 | load=`sed -n 1p loadtemp|awk '{print substr($(NF-2),1,4)}'` 9 | 10 | elif [ "$os" = "SunOS" ] 11 | then 12 | uptime>loadtemp 13 | load=`sed -n 1p loadtemp|awk '{print substr($(NF-2),1,4)}'` 14 | 15 | elif [ "$os" = "HP-UX" ] 16 | then 17 | uptime>loadtemp 18 | load=`sed -n 1p loadtemp|awk '{print substr($(NF-2),1,4)}'` 19 | 20 | elif [ "$os" = "AIX" ] 21 | then 22 | uptime>loadtemp 23 | load=`sed -n 1p loadtemp|awk '{print substr($(NF-2),1,4)}'` 24 | 25 | elif [ "$os" = "SCO_SV" ] || [ "$os" = "UnixWare" ] 26 | then 27 | uptime>loadtemp 28 | load=`sed -n 1p loadtemp|awk '{print substr($(NF-2),1,4)}'` 29 | 30 | fi 31 | status_text=`cat loadtemp` 32 | echo "Load Average=$load" 33 | echo "status_text=Uptime:$status_text" 34 | 35 | exit 0 36 | -------------------------------------------------------------------------------- /system_status/xen.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | os=`uname` 3 | total=0 4 | name=0 5 | id=0 6 | mem=0 7 | vcpu=0 8 | state=0 9 | time=0 10 | #temp=`xm list` 11 | if [ "$os" = "linux" ] || [ "$os" = "Linux" ] 12 | then 13 | name=`xm list|sed -n '2p'|awk '{print $1}'` 14 | id=`xm list|sed -n '2p'|awk '{print $2}'` 15 | mem=`xm list|sed -n '2p'|awk '{print $3}'` 16 | vcpu=`xm list|sed -n '2p'|awk '{print $4}'` 17 | state=`xm list|sed -n '2p'|awk '{print $5}'` 18 | time=`xm list|sed -n '2p'|awk '{print $6}'` 19 | 20 | fi 21 | 22 | 23 | 24 | echo "Xen-1(name)=$name" 25 | echo "Xen-1(id)=$id" 26 | echo "Xen-1(mem)=$mem" 27 | echo "Xen-1(vcpu)=$vcpu" 28 | echo "Xen-1(state)=$state" 29 | echo "Xen-1(time)=$time" 30 | echo "status_text=Xen-1(name):{0},Xen-1(id):{1},Xen-1(mem):{2},Xen-1(vcpu):{3},Xen-1(state):{4},Xen-1(time):{5};;;${name};;;${id};;;${mem};;;${vcpu};;;${state};;;${time}" 31 | exit 0 32 | -------------------------------------------------------------------------------- /node.js/node.js.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | ## 2016-06-06 3 | ## http://www.aqzt.com 4 | ##email: ppabc@qq.com 5 | ##robert yu 6 | ##centos 6 7 | 8 | yum -y install gcc+ gcc-c++ 9 | 10 | ##访问https://github.com/creationix/nvm查看 11 | curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.31.1/install.sh | bash 12 | ##Haraka指定版本 13 | nvm install v0.10.33 14 | ##指定版本v4.4.4 15 | nvm install v4.4.4 16 | npm install -g pm2 17 | pm2 list 18 | 19 | 20 | ##修改环境变量方法 21 | ##vi /etc/profile 22 | ##export PATH=/root/.nvm/versions/node/v4.4.5/bin:/usr/local/jdk/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/opt/dell/srvadmin/bin:/opt/dell/srvadmin/sbin:/root/bin 23 | ##export PATH=$PATH:/root/.nvm/versions/node/v4.4.4/bin 24 | 25 | 26 | ##修改npm源地址 27 | npm config set registry http://registry.npm.taobao.org 28 | ##或者 29 | echo "registry=http://registry.npm.taobao.org" > /root/.npmrc 30 | 31 | ##查看npm源地址 32 | npm config get registry 33 | 34 | 35 | -------------------------------------------------------------------------------- /lnmp/scripts/showcolor.sh: -------------------------------------------------------------------------------- 1 | # color funiction 2 | color(){ 3 | # show color text 4 | # color colorname "color text" 5 | case $1 in 6 | blk) 7 | echo -en "\E[1;30m" 8 | ;; 9 | red) 10 | echo -en "\E[1;31m" 11 | ;; 12 | grn) 13 | echo -en "\E[1;32m" 14 | ;; 15 | yel) 16 | echo -en "\E[1;33m" 17 | ;; 18 | blu) 19 | echo -en "\E[1;34m" 20 | ;; 21 | mag) 22 | echo -en "\E[1;35m" 23 | ;; 24 | cyn) 25 | echo -en "\E[1;36m" 26 | ;; 27 | whi) 28 | echo -en "\E[1;37m" 29 | ;; 30 | dgrn) 31 | echo -en "\E[0;32m" 32 | ;; 33 | dyel) 34 | echo -en "\E[0;33m" 35 | ;; 36 | dblu) 37 | echo -en "\E[0;34m" 38 | ;; 39 | dmag) 40 | echo -en "\E[0;35m" 41 | ;; 42 | dcyn) 43 | echo -en "\E[0;36m" 44 | ;; 45 | dwhi) 46 | echo -en "\E[0;37m" 47 | ;; 48 | res) 49 | echo -en "\E[0m" 50 | ;; 51 | nor) 52 | echo -en "" 53 | ;; 54 | esac 55 | } 56 | 57 | -------------------------------------------------------------------------------- /lnmp/scripts/tuning/tuning.sh: -------------------------------------------------------------------------------- 1 | # turning system 2 | ulimit -HSn 65536 3 | echo -ne " 4 | * soft nofile 65536 5 | * hard nofile 65536 6 | " >>/etc/security/limits.conf 7 | 8 | 9 | # /etc/sysctl.conf 10 | cat >>/etc/sysctl.conf< /dev/null 2>&1 3 | if [ $? -ne 0 ] 4 | then 5 | echo "error_text=iostat command not found!" 6 | exit 0 7 | fi 8 | 9 | if [ $# -lt 1 ] 10 | then 11 | echo "error_text=diskname argument not specified!" 12 | exit 13 | fi 14 | 15 | os=`uname` 16 | diskname=$1 17 | rb=0 18 | wb=0 19 | trans=0 20 | wt=0 21 | bt=0 22 | if [ "$os" = "linux" ] || [ "$os" = "Linux" ] 23 | then 24 | output=`iostat 1 3 |grep $diskname|tail -1` 25 | rb=`echo $output|awk '{printf $3}'` 26 | wb=`echo $output|awk '{printf $4}'` 27 | wt=`echo $output|awk '{printf $9}'` 28 | bt=`echo $output|awk '{printf $10}'` 29 | elif [ "$os" = "SunOS" ] 30 | then 31 | output=`iostat -xnp 2 2 |grep $diskname|tail -1` 32 | rb=`echo $output|awk '{printf $3}'` 33 | wb=`echo $output|awk '{printf $4}'` 34 | wt=`echo $output|awk '{printf $9}'` 35 | bt=`echo $output|awk '{printf $10}'` 36 | elif [ "$os" = "AIX" ] 37 | then 38 | output=`iostat -d 1 3 | grep $diskname | tail -1` 39 | rb=`echo $output | awk '{ print $5 }'` 40 | wb=`echo $output | awk '{ print $6 }'` 41 | trans=`echo $output | awk '{ print $4 }'` 42 | fi 43 | echo "Read bytes=$rb" 44 | echo "Write bytes=$wb" 45 | echo "Number of transactions being serviced=$trans" 46 | echo "Wait time=$wt" 47 | echo "Busy time=$bt" 48 | 49 | -------------------------------------------------------------------------------- /zabbix/README.md: -------------------------------------------------------------------------------- 1 | # Quick-Installation-ZABBIX 2 | 3 | ## zabbix安装脚本 4 | ### 脚本作者:火星小刘 5 | ### web:www.huoxingxiaoliu.com 6 | ### email:xtlyk@163.com 7 | 8 | * 要求纯净centos6/7系统(强烈建议用7,用6的话安装非常缓慢) 9 | * 关闭防火墙 10 | * 关闭selinux 11 | * php>=5.6 12 | 13 | #### 运行**server-install.sh**安装zabbix服务器端 14 | 由于zabbix3需要php5.6以上,因此脚本会删除原有php环境从新安装 15 | 16 | **mysql默认root密码123321** 17 | **zabbix数据库名称zabbix** 18 | **zabbix数据库用户名zabbix** 19 | **zabbix数据库密码zabbix** 20 | 21 | #### 在被监控终端运行**agent-install.sh**安装 22 | 23 | ## 更新日志 24 | 25 | ### 2017-06-01更新 26 | 1. 删除graphtrees 27 | 28 | ### 2017-05-02更新 29 | 1. 升级zabbix到3.0.9 30 | 31 | ### 2017-02-28更新 32 | 1. 升级zabbix到3.0.8 33 | 34 | ### 2016-12-29更新 35 | 1. 升级zabbix到3.0.7 36 | 37 | ### 2016-12-09更新 38 | 1. 升级zabbix到3.0.6 39 | 40 | ### 2016-07-25更新 41 | 1. 升级zabbix到3.0.5 42 | 43 | ### 2016-07-25更新 44 | 1. 升级zabbix到3.0.4 45 | 46 | ### 2016-06-10更新 47 | 1. 增加centos7支持 48 | 2. 添加zabbix_java启动 49 | 50 | ### 2016-06-09更新 51 | 1. 升级zabbix到3.0.3 52 | 2. 添加吴兆松的**graphtrees**插件 53 | [graphtrees github](https://github.com/OneOaaS/graphtrees) 54 | [graphtrees 实现效果](http://t.cn/RqAeAxT) 55 | 56 | ### 2015-11-20更新 57 | 1. agent-install.sh增加wget安装 58 | 2. 升级zabbix到2.4.7 59 | 3. server-install.sh复制zabbix-2.4.7.tar.gz到/var/www/html/zabbix,agent-install.sh从服务端调取zabbix-2.4.7.tar.gz安装包 60 | -------------------------------------------------------------------------------- /keepalived/keepalived.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # 3 | ### 4 | # Filename: install_keepalived.sh 5 | # Version: 1.0 6 | ### 7 | 8 | KEEPALIVED_USER="keepalived" 9 | KEEPALIVED_VERSION="1.2.24" 10 | KEEPALIVED_INSTALL_DIR="/usr/local" 11 | 12 | yum install -y kernel-devel openssl openssl-devel &> /dev/null 13 | ln -s /usr/src/kernels/`uname -r`/ /usr/src/linux 14 | 15 | # check keepalived user 16 | id -u ${KEEPALIVED_USER=} &> /dev/null 17 | [ $? -ne 0 ] && useradd -M -s /bin/bash ${KEEPALIVED_USER} 18 | 19 | # check tar file 20 | if [ ! -f keepalived-${KEEPALIVED_VERSION}.tar.gz ];then 21 | echo "keepalived tar file not exists." 22 | echo "download from offical website..." 23 | wget http://www.keepalived.org/software/keepalived-1.2.24.tar.gz 24 | else 25 | tar xf keepalived-${KEEPALIVED_VERSION}.tar.gz 26 | fi 27 | 28 | # comline keepalived 29 | pushd keepalived-${KEEPALIVED_VERSION} 30 | ./configure --sysconf=/etc &> /dev/null 31 | make &> /dev/null 32 | make install &> /dev/null 33 | popd 34 | /bin/cp /usr/local/sbin/keepalived /usr/bin/ 35 | 36 | # config log 37 | sed -i 's@^KEEPALIVED_OPTIONS=.*@KEEPALIVED_OPTIONS="-D -d -S 0"@' /etc/sysconfig/keepalived 38 | #cat >> "local0.* /var/log/keepalived/keepalived.log" /etc/rsyslog.conf 39 | cat > /etc/rsyslog.d/keepalived.conf << EOF 40 | local0.* /var/log/keepalived.log 41 | &~ 42 | EOF 43 | /etc/init.d/rsyslog restart &> /dev/null 44 | 45 | # man config 46 | 47 | # 48 | /etc/init.d/keepalived start 49 | chmod +x /etc/init.d/keepalived 50 | chkconfig keepalived on -------------------------------------------------------------------------------- /zabbix/agent-install.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | sleep 3 3 | zabbixdir=`pwd` 4 | zabbix_version=3.2.11 5 | ip=`ip addr |grep inet |egrep -v "inet6|127.0.0.1" |awk '{print $2}' |awk -F "/" '{print $1}'` 6 | echo "当前目录为:$zabbixdir" 7 | echo "本机ip为:$ip" 8 | #cat $zabbixdir/Readme 9 | read -p "what's zabbix-server-IP ?:" ServerIP 10 | echo "zabbix服务器ip为:$ServerIP" 11 | read -p "zabbix-server-IP is $ServerIP yes or no:" isY 12 | if [ "${isY}" != "y" ] && [ "${isY}" != "Y" ] && [ "${isY}" != "yes" ] && [ "${isY}" != "YES" ];then 13 | exit 1 14 | fi 15 | echo "安装相关组件" 16 | yum install -y ntpdate gcc gcc-c++ wget pcre* unixODBC unixODBC-devel 17 | echo "同步服务器时间" 18 | ntpdate asia.pool.ntp.org 19 | echo "创建zabbix用户" 20 | groupadd zabbix 21 | useradd -g zabbix zabbix 22 | 23 | echo "安装zabbix-agent" 24 | sleep 3 25 | wget http://netix.dl.sourceforge.net/project/zabbix/ZABBIX%20Latest%20Stable/$zabbix_version/zabbix-${zabbix_version}.tar.gz 26 | #wget http://$ServerIP/zabbix/zabbix-${zabbix_version}.tar.gz 27 | tar zxvf $zabbixdir/zabbix-${zabbix_version}.tar.gz 28 | cd $zabbixdir/zabbix-${zabbix_version} 29 | echo `pwd` 30 | ./configure --prefix=/usr/local/zabbix/ --enable-agent 31 | sleep 3 32 | make 33 | make install 34 | echo "配置zabbix server ip为 $ServerIP" 35 | sed -i "s/Server=127.0.0.1/Server=$ServerIP/g" /usr/local/zabbix/etc/zabbix_agentd.conf 36 | echo "创建启动init" 37 | cp $zabbixdir/zabbix-${zabbix_version}/misc/init.d/tru64/zabbix_agentd /etc/init.d/ 38 | chmod +x /etc/init.d/zabbix_agentd 39 | sed -i "s:DAEMON=/usr/local/sbin/zabbix_agentd:DAEMON=/usr/local/zabbix/sbin/zabbix_agentd:g" /etc/init.d/zabbix_agentd 40 | echo "启动zabbix_agentd" 41 | /etc/init.d/zabbix_agentd restart 42 | -------------------------------------------------------------------------------- /lnmp/readme: -------------------------------------------------------------------------------- 1 | Version 1.0.8 2 | +--------------------------------------------------------------------------------+ 3 | | === Welcome to lnmp for CentOS/RHEL Installation! === | 4 | +--------------------------------------------------------------------------------+ 5 | | This Installation Released by WWW . | 6 | +--------------------------------------------------------------------------------+ 7 | | Easy to install lnmp! | 8 | +--------------------------------------------------------------------------------+ 9 | | Copyright: (C) 2010 WWW Inc. All rights reserved. | 10 | +--------------------------------------------------------------------------------+ 11 | 12 | You can run: 13 | ./lnmp.sh 14 | 15 | +--------------------------------------------------------------------------------+ 16 | | === Installation Document Description === | 17 | +--------------------------------------------------------------------------------+ 18 | |lnmp SCRIPTS : /etc/init.d/lnmp start | 19 | |MySQL SCRIPTS : /etc/init.d/mysql start | 20 | |MySQL DATAPATH : /data/mysql/3306 | 21 | |SOFTWARE PATH : /usr/local/software_name | 22 | +--------------------------------------------------------------------------------+ 23 | | Easy to install lnmp! Have Fun^_^! http://www.paopao8.com | 24 | +--------------------------------------------------------------------------------+ 25 | 26 | Manager MySQL 27 | mysql -S /tmp/mysql.sock -uroot -p 28 | 29 | %changelog% 30 | suhosin 31 | apc 32 | Eaccelerator 33 | upgrade php5.2.14 to php5.2.17p1 34 | 35 | 36 | -------------------------------------------------------------------------------- /system_status/vmstat.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | os=`uname` 3 | run_queue=0 4 | blocked=0 5 | swapped=0 6 | vmexec=`which vmstat | awk '{print $1}'` 7 | if [ "$vmexec" = "no" ] 8 | then 9 | echo "error_text=vmstat command not found!" 10 | exit 0 11 | fi 12 | 13 | if [ "$os" = "linux" ] || [ "$os" = "Linux" ] 14 | then 15 | temp=`vmstat |tail -1` 16 | run_queue=`echo $temp |awk '{printf("%s\n",$1)}'` 17 | blocked=`echo $temp |awk '{printf("%s\n",$2)}'` 18 | swapped=`echo $temp |awk '{printf("%s\n",$3)}'` 19 | 20 | elif [ "$os" = "AIX" ] || [ "$os" = "aix" ] 21 | then 22 | temp=`vmstat 1 5 |tail -1` 23 | run_queue=`echo $temp |awk '{printf("%s\n",$1)}'` 24 | blocked=`echo $temp |awk '{printf("%s\n",$2)}'` 25 | swapped=0 26 | 27 | elif [ "$os" = "HP-UX" ] 28 | then 29 | temp=`vmstat 1 5 |tail -1` 30 | run_queue=`echo $temp |awk '{printf("%s\n",$1)}'` 31 | blocked=`echo $temp |awk '{printf("%s\n",$2)}'` 32 | swapped=`echo $temp |awk '{printf("%s\n",$3)}'` 33 | 34 | elif [ "$os" = "SCO_SV" ] || [ "$os" = "UnixWare" ] 35 | then 36 | temp=`vmstat 1 5 |tail -1` 37 | run_queue=`echo $temp |awk '{printf("%s\n",$1)}'` 38 | blocked=`echo $temp |awk '{printf("%s\n",$2)}'` 39 | swapped=`echo $temp |awk '{printf("%s\n",$3)}'` 40 | 41 | else 42 | temp=`vmstat 1 5 |tail -1` 43 | run_queue=`echo $temp |awk '{printf("%s\n",$1)}'` 44 | blocked=`echo $temp |awk '{printf("%s\n",$2)}'` 45 | swapped=`echo $temp |awk '{printf("%s\n",$3)}'` 46 | fi 47 | 48 | echo "Run queue length=$run_queue" 49 | echo "Blocked processes=$blocked" 50 | echo "Runnable but swapped processes=$swapped" 51 | if [ "$os" = "AIX" ] || [ "$os" = "aix" ] 52 | then 53 | echo "status_text=Processes run:{0}, blocked:{1};;;${run_queue};;;${blocked}" 54 | else 55 | echo "status_text=Processes run:{0}, blocked:{1}, swapped:{2};;;${run_queue};;;${blocked};;;${swapped}" 56 | fi 57 | 58 | exit 59 | 60 | 61 | -------------------------------------------------------------------------------- /system_status/System_info.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | disk_info () 3 | { 4 | echo "======================disk info========================" 5 | df -ThP|column -t 6 | } 7 | 8 | cpu_info () 9 | { 10 | echo "=======================cpu info========================" 11 | echo "cpu processor is $(grep "processor" /proc/cpuinfo |wc -l)" 12 | echo "cpu mode name is $(grep "model name" /proc/cpuinfo |uniq|awk '{print $4,$5,$6,$7,$8,$9}')" 13 | grep "cpu MHz" /proc/cpuinfo |uniq |awk '{print $1,$2":"$4}' 14 | awk '/cache size/ {print $1,$2":"$4$5}' /proc/cpuinfo |uniq 15 | } 16 | 17 | mem_info () 18 | { 19 | echo "=====================memory info========================" 20 | MemTotal=$(awk '/MemTotal/ {print $2}' /proc/meminfo) 21 | MemFree=$(awk '/MemFree/ {print $2}' /proc/meminfo) 22 | Buffers=$(awk '/^Buffers:/ {print $2}' /proc/meminfo) 23 | Cached=$(awk '/^Cached:/ {print $2}' /proc/meminfo) 24 | FreeMem=$(($MemFree/1024+$Buffers/1024+$Cached/1024)) 25 | UsedMem=$(($MemTotal/1024-$FreeMem)) 26 | echo "Total memory is $(($MemTotal/1024)) MB" 27 | echo "Free memory is ${FreeMem} MB" 28 | echo "Used memory is ${UsedMem} MB" 29 | } 30 | 31 | load_info () 32 | { 33 | echo "=====================load info==========================" 34 | Load1=$(awk '{print $1}' /proc/loadavg) 35 | Load5=$(awk '{print $2}' /proc/loadavg) 36 | Load10=$(awk '{print $3}' /proc/loadavg) 37 | echo "Load in 1 min is $Load1" 38 | echo "Load in 5 min is $Load5" 39 | echo "Load in 10 min is $Load10" 40 | } 41 | 42 | network_info () 43 | { 44 | echo "=====================network info=======================" 45 | network=$(ifconfig |grep "inet addr" |grep -v "127.0.0.1" |awk '{print $2}'|sed "s/addr://g") 46 | echo "network eth0 IP is $network" 47 | } 48 | 49 | network_card_info () 50 | { 51 | echo "=====================network_card_info===================" 52 | card=$(ip a|awk -F "inet|/" '/inet.*brd/ {print $2}') 53 | echo "Network card is $card" 54 | } 55 | 56 | 57 | 58 | disk_info 59 | cpu_info 60 | mem_info 61 | load_info 62 | network_info 63 | network_card_info 64 | -------------------------------------------------------------------------------- /lnmp/scripts/tuning/network.sh: -------------------------------------------------------------------------------- 1 | # welcome 2 | cat << EOF 3 | +--------------------------------------------------------------+ 4 | | === Welcome to Centos System init === | 5 | +--------------------------------------------------------------+ 6 | EOF 7 | 8 | # disable ipv6 9 | cat << EOF 10 | +--------------------------------------------------------------+ 11 | | === Welcome to Disable IPV6 === | 12 | +--------------------------------------------------------------+ 13 | EOF 14 | echo "alias net-pf-10 off" >> /etc/modprobe.conf 15 | echo "alias ipv6 off" >> /etc/modprobe.conf 16 | /sbin/chkconfig --level 35 ip6tables off 17 | echo "ipv6 is disabled!" 18 | 19 | # disable selinux 20 | sed -i '/SELINUX/s/enforcing/disabled/' /etc/selinux/config 21 | echo "selinux is disabled,you must reboot!" 22 | 23 | # vim 24 | sed -i "8 s/^/alias vi='vim'/" /root/.bashrc 25 | cat >/root/.vimrc<> /tmp/crontab2.tmp 69 | echo '15 1 * * * /usr/sbin/ntpdate ntp.api.bz;/usr/sbin/hwclock -w > /dev/null 2>&1' >> /tmp/crontab2.tmp 70 | crontab /tmp/crontab2.tmp 71 | rm /tmp/crontab2.tmp 72 | 73 | echo -e "\033[32;49;1mInitialization complete" 74 | echo -en "\033[39;49;0m" 75 | 76 | -------------------------------------------------------------------------------- /mysql/mariadb_auto_install.sh: -------------------------------------------------------------------------------- 1 | INSTALL_DIR="/opt/app" 2 | DATA_DIR="/opt/data" 3 | MARIADB_GROUP="mysql" 4 | MARIADB_USER="mysql" 5 | MARIADB_VERSION="10.2.14" 6 | ROOT_PASSWD="root" 7 | #mariadb-10.2.14-linux-x86_64.tar.gz 8 | TAR_NAME="mariadb-${MARIADB_VERSION}-linux-x86_64.tar.gz" 9 | UNTAR_NAME="mariadb-${MARIADB_VERSION}-linux-x86_64" 10 | 11 | # check mariadb user 12 | echo -n "check MariaDB user... " 13 | id -u ${MARIADB_USER} &> /dev/null 14 | if [ $? -ne 0 ];then 15 | groupadd ${MARIADB_GROUP} 16 | useradd -g ${MARIADB_GROUP} ${MARIADB_USER} 17 | fi 18 | echo "ok" 19 | 20 | # check install dir 21 | [ ! -d "${INSTALL_DIR}" ] && mkdir -p ${INSTALL_DIR} 22 | [ ! -d "${DATA_DIR}" ] && mkdir -p ${DATA_DIR} 23 | 24 | # check mariadb file 25 | if [ ! -f ${TAR_NAME} ];then 26 | wget http://mirrors.tuna.tsinghua.edu.cn/mariadb//mariadb-${MARIADB_VERSION}/bintar-linux-x86_64/mariadb-${MARIADB_VERSION}-linux-x86_64.tar.gz 27 | fi 28 | 29 | # untar file 30 | echo -n "untar file ..." 31 | tar -xf ${TAR_NAME} -C ${INSTALL_DIR} 32 | ln -s ${INSTALL_DIR}/${UNTAR_NAME} ${INSTALL_DIR}/mysql 33 | ln -s ${INSTALL_DIR}/${UNTAR_NAME} /usr/local/mysql 34 | echo "ok" 35 | 36 | # init db and config 37 | echo -n "init db..." 38 | ${INSTALL_DIR}/mysql/scripts/mysql_install_db --user=${MARIADB_USER} --basedir=${INSTALL_DIR}/mysql --datadir=${DATA_DIR} 39 | [ $? -ne 0 ] && exit 1 40 | cp ${INSTALL_DIR}/mysql/support-files/mysql.server /etc/init.d/mysqld 41 | echo "ok" 42 | 43 | [ -f /etc/my.cnf ] && mv /etc/my.cnf{,.ori} 44 | \cp -rf $(cd `dirname $0` && pwd)/my.cnf /etc/my.cnf 45 | 46 | # set server id 47 | IPADDR=$(/sbin/ifconfig eth0|grep "inet addr"|awk '{print $2}'|awk -F":" '{print $2}') 48 | SERVER_ID=$(echo $IPADDR|awk -F"." '{print $4}') 49 | sed -i "s#server-id = .*#server-id = ${SERVER_ID}#g" /etc/my.cnf 50 | sed -i "s#datadir = .*#datadir = ${DATA_DIR}#g" /etc/my.cnf 51 | 52 | # set purview 53 | chown -R root ${INSTALL_DIR}/${UNTAR_NAME} 54 | chown -R ${MARIADB_USER} ${DATA_DIR} 55 | chmod +x /etc/init.d/mysqld 56 | 57 | # start mariadb 58 | ${INSTALL_DIR}/mysql/bin/mysqld_safe --user=${MARIADB_USER} & &> /dev/null 59 | [ $? -ne 0 ] && exit 1 || echo "mariadb started ok" 60 | 61 | # set root passwd 62 | sleep 10 63 | ${INSTALL_DIR}/mysql/bin/mysqladmin -uroot password "${ROOT_PASSWD}" 64 | if [ $? -ne 0 ];then 65 | echo "change password for root failed!" 66 | exit 1 67 | else 68 | echo "change password for root to :${ROOT_PASSWD}" 69 | fi 70 | 71 | # 72 | chkconfig mysqld on 73 | ln -sv ${INSTALL_DIR}/mysql/include /usr/include/mysql 74 | echo '/${INSTALL_DIR}/mysql/lib' > /etc/ld.so.conf.d/mysql.conf 75 | ldconfig 76 | 77 | # set path 78 | echo -n "set path... " 79 | cat >> /etc/profile << EOF 80 | # mariadb path 81 | PATH=\$PATH:${INSTALL_DIR}/mysql/bin 82 | export PATH 83 | EOF 84 | echo "ok" 85 | . /etc/profile 86 | 87 | echo "mariadb installed successfully!" -------------------------------------------------------------------------------- /disk/auto_fdisk.sh: -------------------------------------------------------------------------------- 1 | #/bin/bash 2 | ######################################### 3 | ## LINUX自动分区 处理单块磁盘有未分区空间 2016-09-01 4 | ## http://www.aqzt.com 5 | ## email: ppabc@qq.com 6 | ## robert yu 7 | ## centos 6 8 | ######################################### 9 | 10 | count=0 11 | tmp1=/tmp/tmp1.log 12 | tmp2=/tmp/tmp2.log 13 | >$tmp1 14 | >$tmp2 15 | fstab_file=/etc/fstab 16 | 17 | #check lock file ,one time only let the script run one time 18 | LOCKfile=/tmp/.$(basename $0) 19 | if [ -f "$LOCKfile" ] 20 | then 21 | echo -e "\033[1;40;31mThe script is already exist,please next time to run this script.\033[0m" 22 | exit 23 | else 24 | echo -e "\033[40;32mStep 1.No lock file,begin to create lock file and continue.\033[40;37m" 25 | touch $LOCKfile 26 | fi 27 | 28 | #check user 29 | if [ $(id -u) != "0" ] 30 | then 31 | echo -e "\033[1;40;31mError: You must be root to run this script, please use root to install this script.\033[0m" 32 | rm -rf $LOCKfile 33 | exit 1 34 | fi 35 | 36 | #check disk partition 37 | check_disk() 38 | { 39 | >$LOCKfile 40 | device_list=$(fdisk -l|grep "dev"|grep "sd"|awk -F [:] '{print $1}' |awk '{print $2}' |awk -F: '{print $1}' |head -n 1) 41 | fdisk -l|grep "sda" |grep "dev" |grep Linux |grep "sd"|awk '{print $1}' >$tmp1 42 | } 43 | 44 | #check os 45 | check_os() 46 | { 47 | os_release=$(grep "CentOS" /etc/issue 2>/dev/null) 48 | os_release_2=$(grep "CentOS" /etc/redhat-release 2>/dev/null) 49 | if [ "$os_release" ] && [ "$os_release_2" ] 50 | then 51 | os_release=CentOS 52 | modify_env 53 | fi 54 | } 55 | 56 | #install ext4 57 | modify_env() 58 | { 59 | #yum install e4fsprogs parted -y 60 | #modprobe ext4 61 | echo ext4 62 | } 63 | 64 | #fdisk ,formating and create the file system 65 | fdisk_fun() 66 | { 67 | fdisk -S 56 $1 << EOF 68 | n 69 | e 70 | 71 | 72 | n 73 | 74 | 75 | p 76 | 77 | 78 | wq 79 | 80 | EOF 81 | 82 | sleep 5 83 | #mkfs.ext4 ${1}1 84 | } 85 | 86 | #config /etc/fstab and mount device 87 | main() 88 | { 89 | 90 | fdisk_fun $device_list 91 | 92 | fdisk -l|grep "sda" |grep "dev" |grep Linux |grep "sd"|awk '{print $1}' >$tmp2 93 | #partprobe 94 | for i in `grep -F -v -f $tmp1 $tmp2 | sort | uniq` 95 | do 96 | 97 | partx -a $device_list 98 | partx -a $i $device_list 99 | mkfs -t ext4 $i 100 | if [ ! -d /data ];then 101 | mkdir -p /data 102 | mount $i /data 103 | echo "$i /data ext4 defaults 1 2" >>$fstab_file 104 | else 105 | if [ ! -d /data1 ];then 106 | mkdir -p /data1 107 | mount $i /data1 108 | echo "$i /data1 ext4 defaults 1 2" >>$fstab_file 109 | fi 110 | fi 111 | 112 | done 113 | 114 | } 115 | 116 | #=========start script=========== 117 | echo -e "\033[40;32mStep 2.Begin to check free disk.\033[40;37m" 118 | check_os 119 | check_disk 120 | main 121 | df -h 122 | 123 | -------------------------------------------------------------------------------- /system_status/swap.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | os=`uname` 3 | tempfile1=swap.tmp 4 | tempfile2=swap.tmp.1 5 | tempfile3=swap.tmp.3 6 | rm -rf $tempfile1 7 | rm -rf $tempfile2 8 | 9 | temp1=0 10 | temp2=0 11 | total=0 12 | free=0 13 | used=0 14 | util=0 15 | 16 | if [ "$os" = "linux" ] || [ "$os" = "Linux" ] 17 | then 18 | swapon -s | grep /dev > $tempfile1 19 | 20 | cat $tempfile1 | awk '{ print $3 }' > $tempfile2 21 | for var in `cat $tempfile2` 22 | do 23 | total=`expr $total + $var` 24 | done 25 | 26 | cat $tempfile1 | awk '{ print $4 }' > $tempfile2 27 | for var in `cat $tempfile2` 28 | do 29 | used=`expr $used + $var` 30 | done 31 | 32 | free=`expr $total - $used` 33 | util=`expr $used \* 100 / $total` 34 | total=`expr $total / 1024` 35 | used=`expr $used / 1024` 36 | free=`expr $free / 1024` 37 | 38 | elif [ "$os" = "SunOS" ] 39 | then 40 | swap -l | grep /dev > $tempfile1 41 | 42 | cat $tempfile1 | awk '{ print $4 }' > $tempfile2 43 | for var in `cat $tempfile2` 44 | do 45 | total=`expr $total + $var` 46 | done 47 | 48 | cat $tempfile1 | awk '{ print $5 }' > $tempfile2 49 | for var in `cat $tempfile2` 50 | do 51 | free=`expr $free + $var` 52 | done 53 | 54 | total=`expr $total / 2` 55 | free=`expr $free / 2` 56 | used=`expr $total - $free` 57 | util=`expr $used \* 100 / $total` 58 | total=`expr $total / 1024` 59 | used=`expr $used / 1024` 60 | free=`expr $free / 1024` 61 | 62 | elif [ "$os" = "AIX" ] || [ "$os" = "aix" ] 63 | then 64 | temp1=`lsps -s | tail -1 | awk '{print $1}'` 65 | total=`echo $temp1 | awk '{gsub("MB"," "); print $0}'` 66 | 67 | temp2=`lsps -s | tail -1 | awk '{print $2}'` 68 | util=`echo $temp2 | awk '{gsub("%"," "); print $0}'` 69 | 70 | used=`lsps -s | tail -1 | awk '{print ($1 * $2 / 100)}'` 71 | 72 | 73 | 74 | elif [ "$os" = "HP-UX" ] 75 | then 76 | swapinfo | grep /dev > $tempfile1 77 | cat $tempfile1 | awk '{ print $2 }' > $tempfile2 78 | for var in `cat $tempfile2` 79 | do 80 | total=`expr $total + $var` 81 | done 82 | 83 | cat $tempfile1 | awk '{ print $3 }' > $tempfile2 84 | for var in `cat $tempfile2` 85 | do 86 | used=`expr $used + $var` 87 | done 88 | 89 | free=`expr $total - $used` 90 | util=`expr $used \* 100 / $total` 91 | total=`expr $total / 1024` 92 | used=`expr $used / 1024` 93 | free=`expr $free / 1024` 94 | 95 | elif [ "$os" = "SCO_SV" ] || [ "$os" = "UnixWare" ] 96 | then 97 | swap -l | grep /dev > $tempfile1 98 | 99 | cat $tempfile1 | awk '{ print $4 }' > $tempfile2 100 | for var in `cat $tempfile2` 101 | do 102 | total=`expr $total + $var` 103 | done 104 | 105 | cat $tempfile1 | awk '{ print $5 }' > $tempfile2 106 | for var in `cat $tempfile2` 107 | do 108 | free=`expr $free + $var` 109 | done 110 | 111 | total=`expr $total / 2` 112 | free=`expr $free / 2` 113 | used=`expr $total - $free` 114 | util=`expr $used \* 100 / $total` 115 | total=`expr $total / 1024` 116 | used=`expr $used / 1024` 117 | free=`expr $free / 1024` 118 | else 119 | echo "tobe done" 120 | fi 121 | 122 | echo "Total Swap=$total " 123 | echo "Used Swap=$used" 124 | echo "Swapspace Utilization=$util" 125 | 126 | exit 127 | -------------------------------------------------------------------------------- /lnmp/lnmp.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin 4 | IP=`/sbin/ifconfig eth0 | grep 'inet addr:' | cut -d: -f2 | awk '{ print $1}'` 5 | export PATH 6 | 7 | # Check if user is root 8 | if [ $(id -u) != "0" ]; then 9 | printf "Error: You must be root to run this script!\n" 10 | exit 1 11 | fi 12 | 13 | #read config 14 | . config 15 | 16 | #init color function 17 | . scripts/showcolor.sh 18 | 19 | #init 20 | . init.sh 21 | 22 | # 23 | # function to install nginx 24 | # must specify $1 25 | # $1 can be "with_php" or "without_php" 26 | # 27 | Install_Nginx(){ 28 | is_install $NGINX_PREFIX d 29 | if [ $checked_env == 0 ];then 30 | check_env 31 | $checked_env == 1 32 | fi 33 | make_dir $NGINX_ROOT 34 | . scripts/nginx.sh 35 | nginx_download 36 | nginx_install 37 | nginx_main_conf 38 | nginx_fastcgi_params 39 | #\cp -rf conf/nginx/conf_example $NGINX_PREFIX/conf/ 40 | make_dir $NGINX_PREFIX/conf/vhosts 41 | nginx_test_conf 42 | nginx_init_script "/etc/init.d/nginx" 43 | chmod a+x /etc/init.d/nginx 44 | if [ $1 == "without_php" ];then 45 | if [ ! -f $NGINX_ROOT/test.html ];then 46 | echo "It works!" >$NGINX_ROOT/test.html 47 | fi 48 | else 49 | if [ ! -f $NGINX_ROOT/test.php ];then 50 | echo "" >$NGINX_ROOT/test.php 51 | fi 52 | fi 53 | chkconfig --add nginx 54 | chkconfig nginx on 55 | clear_packages_dir 56 | } 57 | 58 | # 59 | # function to install MySQL 60 | # it's a simple function :) 61 | # 62 | Install_MySQL(){ 63 | is_install mysql c 64 | is_install $MYSQL_PREFIX d 65 | is_install /etc/my.cnf f 66 | 67 | check_env 68 | . scripts/mysql.sh 69 | mysql_download 70 | mysql_install 71 | chkconfig --add mysqld 72 | chkconfig mysqld on 73 | clear_packages_dir 74 | } 75 | 76 | Install_MySQL_innodb(){ 77 | is_install mysql c 78 | is_install $MYSQL_PREFIX d 79 | is_install /etc/my.cnf f 80 | 81 | check_env 82 | . scripts/mysql_innodb.sh 83 | mysql_download 84 | mysql_install 85 | chkconfig --add mysqld 86 | chkconfig mysqld on 87 | clear_packages_dir 88 | } 89 | # 90 | # function to install Nginx and PHP 91 | # 92 | Install_PHP(){ 93 | if [ "$PHP_CACHE"x == "x" ];then 94 | select_php_cache 95 | fi 96 | is_install php c 97 | is_install $PHP_PREFIX d 98 | 99 | check_env 100 | . scripts/php.sh 101 | php_lib_download 102 | php_download 103 | php_lib_install 104 | if [ ! -d $MYSQL_PREFIX ];then 105 | yum -y install mysql mysql-devel 106 | php_install without_mysql 107 | else 108 | php_install with_mysql 109 | fi 110 | php_ext_install 111 | php_config 112 | php_cache $PHP_CACHE 113 | php_fastcgi_init_script 114 | chmod a+x /etc/init.d/fastcgi 115 | chkconfig --add fastcgi 116 | chkconfig fastcgi on 117 | clear_packages_dir 118 | } 119 | 120 | # 121 | # function to install lnmp 122 | # 123 | Install_lnmp(){ 124 | select_php_cache 125 | Install_MySQL 126 | Install_PHP 127 | Install_Nginx with_php 128 | optimze_system 129 | lnmp_complete 130 | clear_packages_dir 131 | } 132 | 133 | CHECKED_ENV=0 134 | copyright 135 | 136 | 137 | 138 | -------------------------------------------------------------------------------- /system_status/memory.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | os=`uname` 3 | mem=0 4 | if [ "$os" = "linux" ] || [ "$os" = "Linux" ] 5 | then 6 | which sar > /dev/null 2>&1 7 | if [ $? -ne 0 ] 8 | then 9 | which free > /dev/null 2>&1 10 | if [ $? -ne 0 ] 11 | then 12 | echo "error_text='sar'and 'free' commands not found!" 13 | exit 14 | else 15 | total=`free | grep Mem: | awk '{ print $2 }'` 16 | used=`free | grep Mem: | awk '{ print $3 }'` 17 | mem=`echo|awk '{print ((c1*100)/c2) }' c1=$used c2=$total` 18 | fi 19 | else 20 | sar -r 1 3 > sar_memory_out 2>&1 21 | cat sar_memory_out | grep Average > memory_temp 22 | used=`sed -n 1p memory_temp | awk '{ print $3 }'` 23 | free=`sed -n 1p memory_temp | awk '{ print $2 }'` 24 | mem=`sed -n 1p memory_temp |awk '{ print $4 }'` 25 | 26 | total=`echo|awk '{print (c1+c2)}' c1=$used c2=$free` 27 | fi 28 | 29 | elif [ "$os" = "SunOS" ] 30 | then 31 | vmexec=`which vmstat | awk '{print $1}'` 32 | if [ "$vmexec" = "no" ] 33 | then 34 | echo "error_text=vmstat command not found!" 35 | exit 0 36 | fi 37 | total=`prtconf | grep "Mem" | awk '{print $3}'` 38 | t=`echo $total | awk '{print $1}'` 39 | total_kb=`echo|awk '{print (c1*1024) }' c1=$t` 40 | 41 | vmstat_output=`/bin/vmstat 1 2 | tail -1` 42 | free=`echo $vmstat_output | awk '{print $5;}'` 43 | 44 | used_kb=`echo|awk '{print (c1-c2) }' c1=$total_kb c2=$free` 45 | used_pg=`echo|awk '{print (c1-c2*4) }' c1=$total_kb c2=$free` 46 | 47 | if [ $used_kb -gt $t ] && [ $used_pg -gt 0 ] 48 | then 49 | used=$used_pg 50 | else 51 | used=$used_kb 52 | fi 53 | mem=`echo|awk '{print ((c1*100)/c2) }' c1=$used c2=$total_kb` 54 | 55 | # change unit into KB 56 | total=$total_kb 57 | 58 | elif [ "$os" = "AIX" ] 59 | then 60 | svmon_out=`svmon -G | grep -i memory` 61 | total=`echo $svmon_out | awk '{ print ($2 * 4)}'` 62 | used=`echo $svmon_out | awk '{ print ($3 * 4)}'` 63 | mem=`echo|awk '{printf("%0.2f",((c1*100)/c2)) }' c1=$used c2=$total` 64 | 65 | elif [ "$os" = "HP-UX" ] 66 | then 67 | vmexec=`which vmstat | awk '{print $1}'` 68 | if [ "$vmexec" = "no" ] 69 | then 70 | echo "error_text=vmstat command not found!" 71 | exit 0 72 | fi 73 | DMESG=`/sbin/dmesg | /usr/bin/grep 'Physical.*lockable.*available'` 74 | total=`echo ${DMESG} | /usr/bin/awk '{print $2}'` 75 | 76 | VMSTAT=`$vmexec 1 2 | /usr/bin/tail -1` 77 | 78 | free=`echo $VMSTAT | /usr/bin/awk '{print $5;}'` 79 | free=`/usr/bin/expr $free \* 4` 80 | 81 | used=`expr $total \- $free` 82 | mem=`expr $used \* 100 / $total` 83 | 84 | else 85 | vmexec=`which vmstat | awk '{print $1}'` 86 | if [ "$vmexec" = "no" ] 87 | then 88 | echo "error_text=vmstat command not found!" 89 | exit 0 90 | fi 91 | total=`prtconf | grep "Mem" | awk '{print $3}'` 92 | vmstat_output=`/bin/vmstat 1 2 | tail -1` 93 | free=`echo $vmstat_output | awk '{print $5;}'` 94 | total=`echo|awk '{print (c1*1024) }' c1=$total` 95 | used=`echo|awk '{print (c1-c2) }' c1=$total c2=$free` 96 | mem=`echo|awk '{print ((c1*100)/c2) }' c1=$used c2=$total` 97 | fi 98 | total=`echo | awk '{printf ("%.0f", c1/1024) }' c1=$total ` 99 | used=`echo | awk '{printf ("%.0f", c1/1024) }' c1=$used` 100 | mem=`echo | awk '{printf ("%.0f", c1) }' c1=$mem` 101 | echo "Used Memory=${used}" 102 | echo "Free Memory=${free}" 103 | echo "Total Memory=${total}" 104 | echo "Memory Utilization=$mem" 105 | 106 | exit 0 107 | -------------------------------------------------------------------------------- /system_status/cpu.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | os=`uname` 3 | total=0 4 | idle=0 5 | system=0 6 | user=0 7 | nice=0 8 | mem=0 9 | vmexec=`which vmstat | awk '{print $1}'` 10 | if [ "$vmexec" = "no" ] 11 | then 12 | echo "error_text=Please check vmstat execute path" 13 | exit 14 | else 15 | if [ "$os" = "linux" ] || [ "$os" = "Linux" ] 16 | then 17 | which sar > /dev/null 2>&1 18 | if [ $? -ne 0 ] 19 | then 20 | ver=`vmstat -V | awk '{printf $3}'` 21 | if [ "$ver" = "2.0.11" ] || [ "$ver" = "2.0.7" ] || [ "$ver" = "2.0.6" ] 22 | then 23 | nice=0 24 | temp=`vmstat 1 3 |tail -1` 25 | user=`echo $temp |awk '{printf("%s\n",$14)}'` 26 | system=`echo $temp |awk '{printf("%s\n",$15)}'` 27 | idle=`echo $temp |awk '{printf("%s\n",$16)}'` 28 | total=`echo|awk '{print (c1+c2)}' c1=$system c2=$user` 29 | 30 | elif [ "$ver" = "2.0.13" ] 31 | then 32 | nice=0 33 | temp=`vmstat 1 3 |tail -1` 34 | user=`echo $temp |awk '{printf("%s\n",$13)}'` 35 | system=`echo $temp |awk '{printf("%s\n",$14)}'` 36 | idle=`echo $temp |awk '{printf("%s\n",$15)}'` 37 | total=`echo|awk '{print (c1+c2)}' c1=$system c2=$user` 38 | else 39 | nice=0 40 | temp=`vmstat 1 3 |tail -1` 41 | user=`echo $temp |awk '{printf("%s\n",$13)}'` 42 | system=`echo $temp |awk '{printf("%s\n",$14)}'` 43 | idle=`echo $temp |awk '{printf("%s\n",$15)}'` 44 | total=`echo|awk '{print (c1+c2)}' c1=$system c2=$user` 45 | 46 | 47 | fi 48 | else 49 | #save load data to temporary file 50 | sar -u 1 3 > sar_cpu_output 2>&1 51 | grep -i "Usage" sar_cpu_output > /dev/null 52 | if [ $? -eq 0 ] 53 | then 54 | sar -U 1 3 > sar_cpu_output 2>&1 55 | fi 56 | cat sar_cpu_output | grep Average > cputemp 57 | 58 | #calculate the load data 59 | user=`sed -n 1p cputemp|awk '{ print $3 }'` 60 | nice=`sed -n 1p cputemp|awk '{ print $4 }'` 61 | system=`sed -n 1p cputemp|awk '{ print $5 }'` 62 | idle=`sed -n 1p cputemp|awk '{ print $6 }'` 63 | total=`echo|awk '{print (c1+c2)}' c1=$system c2=$user` 64 | fi 65 | 66 | elif [ "$os" = "SunOS" ] 67 | then 68 | nice=0 69 | temp=`vmstat 1 3 |tail -1` 70 | user=`echo $temp |awk '{printf("%s\n",$20)}'` 71 | system=`echo $temp |awk '{printf("%s\n",$21)}'` 72 | idle=`echo $temp |awk '{printf("%s\n",$22)}'` 73 | total=`echo|awk '{print (c1+c2)}' c1=$system c2=$user` 74 | 75 | elif [ "$os" = "HP-UX" ] 76 | then 77 | nice=0 78 | temp=`vmstat 1 3 |tail -1` 79 | user=`echo $temp |awk '{printf("%s\n",$16)}'` 80 | system=`echo $temp |awk '{printf("%s\n",$17)}'` 81 | idle=`echo $temp |awk '{printf("%s\n",$18)}'` 82 | total=`echo|awk '{print (c1+c2)}' c1=$system c2=$user` 83 | 84 | elif [ "$os" = "SCO_SV" ] || [ "$os" = "UnixWare" ] 85 | then 86 | nice=0 87 | temp=`vmstat 1 3 |tail -1` 88 | user=`echo $temp |awk '{printf("%s\n",$18)}'` 89 | system=`echo $temp |awk '{printf("%s\n",$19)}'` 90 | idle=`echo $temp |awk '{printf("%s\n",$20)}'` 91 | total=`echo|awk '{print (c1+c2)}' c1=$system c2=$user` 92 | 93 | elif [ "$os" = "AIX" ] || [ "$os" = "aix" ] 94 | then 95 | temp=`vmstat 1 3 |tail -1` 96 | user=`echo $temp |awk '{printf("%s\n",$14)}'` 97 | system=`echo $temp |awk '{printf("%s\n",$15)}'` 98 | idle=`echo $temp |awk '{printf("%s\n",$16)}'` 99 | total=`echo|awk '{print (c1+c2)}' c1=$system c2=$user` 100 | 101 | else 102 | echo "error_text=Unsupported platform: $os" 103 | exit 104 | fi 105 | 106 | echo "Total CPU Utilization=$total" 107 | echo "CPU Utilization (user)=$user" 108 | echo "CPU Utilization (system)=$system" 109 | echo "CPU Utilization (nice)=$nice" 110 | echo "CPU Utilization (idle)=$idle" 111 | 112 | fi 113 | exit 0 -------------------------------------------------------------------------------- /disk/auto_disk_ssd_aliyun.sh: -------------------------------------------------------------------------------- 1 | #/bin/bash 2 | ######################################### 3 | #Function: auto fdisk 4 | #Usage: bash auto_fdisk.sh 5 | #Author: Customer service department 6 | #Company: Alibaba Cloud Computing 7 | #Version: 4.0 8 | ######################################### 9 | 10 | count=0 11 | tmp1=/tmp/.tmp1 12 | tmp2=/tmp/.tmp2 13 | >$tmp1 14 | >$tmp2 15 | fstab_file=/etc/fstab 16 | 17 | #check lock file ,one time only let the script run one time 18 | LOCKfile=/tmp/.$(basename $0) 19 | if [ -f "$LOCKfile" ] 20 | then 21 | echo -e "\033[1;40;31mThe script is already exist,please next time to run this script.\033[0m" 22 | exit 23 | else 24 | echo -e "\033[40;32mStep 1.No lock file,begin to create lock file and continue.\033[40;37m" 25 | touch $LOCKfile 26 | fi 27 | 28 | #check user 29 | if [ $(id -u) != "0" ] 30 | then 31 | echo -e "\033[1;40;31mError: You must be root to run this script, please use root to install this script.\033[0m" 32 | rm -rf $LOCKfile 33 | exit 1 34 | fi 35 | 36 | #check disk partition 37 | check_disk() 38 | { 39 | >$LOCKfile 40 | device_list=$(fdisk -l|grep "Disk"|grep "/dev"|awk '{print $2}'|awk -F: '{print $1}'|grep "vd") 41 | for i in `echo $device_list` 42 | do 43 | device_count=$(fdisk -l $i|grep "$i"|awk '{print $2}'|awk -F: '{print $1}'|wc -l) 44 | echo 45 | if [ $device_count -lt 2 ] 46 | then 47 | now_mount=$(df -h) 48 | if echo $now_mount|grep -w "$i" >/dev/null 2>&1 49 | then 50 | echo -e "\033[40;32mThe $i disk is mounted.\033[40;37m" 51 | else 52 | echo $i >>$LOCKfile 53 | echo "You have a free disk,Now will fdisk it and mount it." 54 | fi 55 | fi 56 | done 57 | disk_list=$(cat $LOCKfile) 58 | if [ "X$disk_list" == "X" ] 59 | then 60 | echo -e "\033[1;40;31mNo free disk need to be fdisk.Exit script.\033[0m" 61 | rm -rf $LOCKfile 62 | exit 0 63 | else 64 | echo -e "\033[40;32mThis system have free disk :\033[40;37m" 65 | for i in `echo $disk_list` 66 | do 67 | echo "$i" 68 | count=$((count+1)) 69 | done 70 | fi 71 | } 72 | 73 | #check os 74 | check_os() 75 | { 76 | os_release=$(grep "Aliyun Linux release" /etc/issue 2>/dev/null) 77 | os_release_2=$(grep "Aliyun Linux release" /etc/aliyun-release 2>/dev/null) 78 | if [ "$os_release" ] && [ "$os_release_2" ] 79 | then 80 | if echo "$os_release"|grep "release 5" >/dev/null 2>&1 81 | then 82 | os_release=aliyun5 83 | modify_env 84 | fi 85 | fi 86 | } 87 | 88 | #install ext4 89 | modify_env() 90 | { 91 | modprobe ext4 92 | yum install e4fsprogs -y 93 | } 94 | 95 | #fdisk ,formating and create the file system 96 | fdisk_fun() 97 | { 98 | fdisk -S 56 $1 << EOF 99 | n 100 | p 101 | 1 102 | 103 | 104 | wq 105 | EOF 106 | 107 | sleep 5 108 | mkfs.ext4 ${1}1 109 | } 110 | 111 | #make directory 112 | make_dir() 113 | { 114 | echo -e "\033[40;32mStep 4.Begin to make directory\033[40;37m" 115 | now_dir_count=$(ls /|grep "alidata*"|awk -F "data" '{print $2}'|sort -n|tail -1) 116 | if [ "X$now_dir_count" == "X" ] 117 | then 118 | for j in `seq $count` 119 | do 120 | echo "/alidata$j" >>$tmp1 121 | mkdir /alidata$j 122 | done 123 | else 124 | for j in `seq $count` 125 | do 126 | k=$((now_dir_count+j)) 127 | echo "/alidata$k" >>$tmp1 128 | mkdir /alidata$k 129 | done 130 | fi 131 | } 132 | 133 | #config /etc/fstab and mount device 134 | main() 135 | { 136 | for i in `echo $disk_list` 137 | do 138 | echo -e "\033[40;32mStep 3.Begin to fdisk free disk.\033[40;37m" 139 | fdisk_fun $i 140 | echo "${i}1" >>$tmp2 141 | done 142 | make_dir 143 | >$LOCKfile 144 | paste $tmp2 $tmp1 >$LOCKfile 145 | echo -e "\033[40;32mStep 5.Begin to write configuration to /etc/fstab and mount device.\033[40;37m" 146 | while read a b 147 | do 148 | if grep -v ^# $fstab_file|grep ${a} >/dev/null 149 | then 150 | sed -i "s=${a}*=#&=" $fstab_file 151 | fi 152 | echo "${a} $b ext4 defaults 0 0" >>$fstab_file 153 | done <$LOCKfile 154 | mount -a 155 | } 156 | 157 | #=========start script=========== 158 | echo -e "\033[40;32mStep 2.Begin to check free disk.\033[40;37m" 159 | check_os 160 | check_disk 161 | main 162 | df -h 163 | rm -rf $LOCKfile $tmp1 $tmp2 164 | -------------------------------------------------------------------------------- /system_status/disk.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | if [ $# -lt 1 ] 3 | then 4 | echo "error_text=diskname argument not specified!" 5 | exit 6 | fi 7 | 8 | os=`uname` 9 | diskname=$1 10 | diskutil="5" 11 | awk_cmd="awk" 12 | disk_size="" 13 | used="" 14 | disk_size_mb="-1" 15 | used_mb="-1" 16 | 17 | #get pure disk name 18 | which nawk > /dev/null 2>&1 19 | if [ $? -eq 0 ] 20 | then 21 | awk_cmd="nawk" 22 | fi 23 | tempfile=`echo $diskname|$awk_cmd '{gsub("/",""); print $0}'` 24 | tempfile="disk_$tempfile.temp" 25 | 26 | if [ "$os" = "linux" ] || [ "$os" = "Linux" ] 27 | then 28 | df $diskname >$tempfile 29 | if [ $? -ne 0 ] 30 | then 31 | echo "error_text=$diskname not found" 32 | rm $tempfile 33 | exit 0 34 | fi 35 | temp=`cat $tempfile |tail -1` 36 | diskutil=`echo $temp|awk '{printf("%s",$5)}'|awk '{gsub("%",""); print $0}'` 37 | disk_size=`cat $tempfile |tail -1 | awk '{print $2}'` 38 | disk_size_mb=`expr $disk_size / 1024` 39 | disk_size=`echo | awk '{ printf("%.2f",(c1/1024.0)) }' c1=$disk_size_mb` 40 | disk_size="${disk_size}GB" 41 | 42 | used=`cat $tempfile |tail -1 | awk '{print $3}'` 43 | used_mb=`expr $used / 1024` 44 | used=`echo | awk '{ printf("%.2f",(c1/1024.0)) }' c1=$used_mb` 45 | used="${used}GB" 46 | 47 | 48 | elif [ "$os" = "SunOS" ] 49 | then 50 | df -k $diskname > $tempfile 51 | if [ $? -ne 0 ] 52 | then 53 | echo "error_text=$diskname not found" 54 | exit 0 55 | fi 56 | diskutil=`cat $tempfile |tail -1 | awk '{print $5}' | cut -f1 -d %` 57 | disk_size=`cat $tempfile |tail -1 | awk '{print $2}'` 58 | disk_size_mb=`expr $disk_size / 1024` 59 | disk_size=`echo | awk '{ printf("%.2f",(c1/1024.0)) }' c1=$disk_size_mb` 60 | disk_size="${disk_size}GB" 61 | 62 | 63 | used=`cat $tempfile |tail -1 | awk '{print $3}'` 64 | used_mb=`expr $used / 1024` 65 | used=`echo | awk '{ printf("%.2f",(c1/1024.0)) }' c1=$used_mb` 66 | used="${used}GB" 67 | 68 | 69 | 70 | elif [ "$os" = "HP-UX" ] 71 | then 72 | #df -k $diskname > /dev/null 73 | df -k $diskname > $tempfile 74 | if [ $? -ne 0 ] 75 | then 76 | echo "error_text=$diskname not found" 77 | exit 0 78 | fi 79 | #temp=`df -k $diskname |tail -1` 80 | temp=`cat $tempfile |tail -1` 81 | diskutil=`echo $temp|awk '{printf("%s",$1)}'|awk '{gsub("%"," "); print $0}'` 82 | diskutil=`echo $diskutil|awk '{gsub(" ",""); print $0}'` 83 | echo "Disk Utilization=${diskutil}" 84 | echo "Total Size=-1" 85 | echo "Used Size=-1" 86 | echo "Avail Size=-1" 87 | echo "status_text=Disk Utilization: {0}%;;;${diskutil}" 88 | exit 89 | 90 | elif [ "$os" = "SCO_SV" ] || [ "$os" = "UnixWare" ] 91 | then 92 | #df -k $diskname > /dev/null 93 | df -k $diskname > $tempfile 94 | if [ $? -ne 0 ] 95 | then 96 | echo "error_text=$diskname not found" 97 | exit 0 98 | fi 99 | #temp=`df -k $diskname |tail -1` 100 | temp=`cat $tempfile |tail -1` 101 | diskutil=`echo $temp|awk '{printf("%s",$4)}'|awk '{gsub("%"," "); print $0}'` 102 | diskutil=`echo $diskutil|awk '{gsub(" ",""); print $0}'` 103 | echo "Disk Utilization=${diskutil}" 104 | echo "Total Size=-1" 105 | echo "Used Size=-1" 106 | echo "Avail Size=-1" 107 | echo "status_text=Disk Utilization: {0}%;;;${diskutil}" 108 | exit 109 | 110 | elif [ "$os" = "OSF1" ] 111 | then 112 | df $diskname > $tempfile 113 | if [ $? -ne 0 ] 114 | then 115 | echo "error_text=$diskname not found" 116 | exit 0 117 | fi 118 | temp=`cat $tempfile |tail -1` 119 | diskutil=`echo $temp|awk '{printf("%s",$5)}'|awk '{gsub("%"," "); print $0}'` 120 | diskutil=`echo $diskutil|awk '{gsub(" ",""); print $0}'` 121 | echo "Disk Utilization=${diskutil}" 122 | echo "Total Size=-1" 123 | echo "Used Size=-1" 124 | echo "Avail Size=-1" 125 | echo "status_text=Disk Utilization: {0}%;;;${diskutil}" 126 | exit 127 | 128 | elif [ "$os" = "AIX" ] || [ "$os" = "aix" ] 129 | then 130 | #df -k $diskname > /dev/null 131 | df -k $diskname > $tempfile 132 | if [ $? -ne 0 ] 133 | then 134 | echo "error_text=$diskname not found" 135 | exit 0 136 | fi 137 | #temp=`df -k $diskname |tail -1` 138 | temp=`cat $tempfile |tail -1` 139 | diskutil=`echo $temp|awk '{printf("%s",$4)}'|awk '{gsub("%"," "); print $0}'` 140 | echo "Disk Utilization=${diskutil}" 141 | echo "Total Size=-1" 142 | echo "Used Size=-1" 143 | echo "Avail Size=-1" 144 | echo "status_text=Disk Utilization: {0}%;;;${diskutil}" 145 | exit 146 | 147 | else 148 | echo "error_text=Unsupported platform: $os" 149 | exit 150 | fi 151 | 152 | rm $tempfile 153 | avail_mb=`expr $disk_size_mb - $used_mb` 154 | avail=`echo | awk '{ printf("%.2f",(c1/1024.0)) }' c1=$avail_mb` 155 | avail="${avail}GB" 156 | echo "Disk Utilization=${diskutil}" 157 | echo "Total Size=$disk_size_mb" 158 | echo "Used Size=$used_mb" 159 | echo "Avail Size=$avail_mb" 160 | -------------------------------------------------------------------------------- /lnmp/scripts/mysql.sh: -------------------------------------------------------------------------------- 1 | mysql_download(){ 2 | if [ -s packages/$MYSQL_VERSION.tar.gz ]; then 3 | echo "$MYSQL_VERSION [found]" 4 | else 5 | echo "Error: $MYSQL_VERSION not found!!!download now......" 6 | wget http://www.paopao8.com/docs/soft/lnmp/packages/$MYSQL_VERSION.tar.gz -P packages/ 7 | fi 8 | } 9 | 10 | mysql_my_cnf(){ 11 | cat > $MYSQL_DATA_DIR/$MYSQL_PORT/my.cnf < /dev/null 2>&1 145 | \cp $MYSQL_VERSION/support-files/mysql.server /etc/rc.d/init.d/mysqld > /dev/null 2>&1 146 | chmod 755 /etc/rc.d/init.d/mysqld 147 | chkconfig --add mysqld 148 | rm -rf /usr/bin/mysql* > /dev/null 2>&1 149 | cd $MYSQL_PREFIX/bin/ 150 | for i in *; do ln -s $MYSQL_PREFIX/bin/$i /usr/bin/$i; done 151 | cd - 152 | cd ../ 153 | } 154 | 155 | mysql_complete(){ 156 | cat << EOF 157 | +-----------------------------------------------------------------+ 158 | MYSQL INSTALL COMPLETE ! 159 | MYSQL SCRIPTS: /etc/init.d/mysqld start 160 | LISTEN PORT: $MYSQL_PORT 161 | +-----------------------------------------------------------------+ 162 | EOF 163 | } 164 | 165 | -------------------------------------------------------------------------------- /lnmp/scripts/mysql_innodb.sh: -------------------------------------------------------------------------------- 1 | mysql_download(){ 2 | if [ -s packages/$MYSQL_VERSION.tar.gz ]; then 3 | echo "$MYSQL_VERSION [found]" 4 | else 5 | echo "Error: $MYSQL_VERSION not found!!!download now......" 6 | wget http://www.paopao8.com/docs/soft/lnmp/packages/$MYSQL_VERSION.tar.gz -P packages/ 7 | fi 8 | } 9 | 10 | mysql_my_cnf(){ 11 | cat > $MYSQL_DATA_DIR/$MYSQL_PORT/my.cnf < /dev/null 2>&1 145 | \cp $MYSQL_VERSION/support-files/mysql.server /etc/rc.d/init.d/mysqld > /dev/null 2>&1 146 | chmod 755 /etc/rc.d/init.d/mysqld 147 | chkconfig --add mysqld 148 | rm -rf /usr/bin/mysql* > /dev/null 2>&1 149 | cd $MYSQL_PREFIX/bin/ 150 | for i in *; do ln -s $MYSQL_PREFIX/bin/$i /usr/bin/$i; done 151 | cd - 152 | cd ../ 153 | } 154 | 155 | mysql_complete(){ 156 | cat << EOF 157 | +-----------------------------------------------------------------+ 158 | MYSQL INSTALL COMPLETE ! 159 | MYSQL SCRIPTS: /etc/init.d/mysqld start 160 | LISTEN PORT: $MYSQL_PORT 161 | +-----------------------------------------------------------------+ 162 | EOF 163 | } 164 | 165 | 166 | -------------------------------------------------------------------------------- /zabbix/server-install.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | #sleep 10 4 | zabbix_version=3.0.9 5 | zabbixdir=`pwd` 6 | ip=`ip addr |grep inet |egrep -v "inet6|127.0.0.1" |awk '{print $2}' |awk -F "/" '{print $1}'` 7 | release=`cat /etc/redhat-release | awk -F "release" '{print $2}' |awk -F "." '{print $1}' |sed 's/ //g'` 8 | 9 | cat $zabbixdir/README.md 10 | 11 | #sleep 10 12 | echo "当前目录为:$zabbixdir" 13 | echo "本机ip为:$ip" 14 | echo "安装mysql、apache、php等相关组件" 15 | sleep 3 16 | 17 | if [ $release = 7 ];then 18 | rpm -Uvh http://mirrors.isu.net.sa/pub/fedora/fedora-epel/7/x86_64/e/epel-release-7-6.noarch.rpm 19 | yum -y install php-xml unixODBC unixODBC-devel php-xmlrpc php-mbstring php-mhash patch java-devel wget unzip libxml2 libxml2-devel httpd mariadb mariadb-devel mariadb-server php php-mysql php-common php-mbstring php-gd php-odbc php-pear curl curl-devel net-snmp net-snmp-devel perl-DBI php-xml ntpdate php-bcmath zlib-devel glibc-devel curl-devel gcc automake libidn-devel openssl-devel net-snmp-devel rpm-devel OpenIPMI-devel 20 | systemctl start mariadb.service 21 | elif [ $release = 6 ];then 22 | yum remove php.x86_64 php-cli.x86_64 php-common.x86_64 php-gd.x86_64 php-ldap.x86_64 php-mbstring.x86_64 php-mcrypt.x86_64 php-mysql.x86_64 php-pdo.x86_64 -y 23 | rpm -Uvh http://mirrors.isu.net.sa/pub/fedora/fedora-epel/6/i386/epel-release-6-8.noarch.rpm 24 | rpm -Uvh http://mirror.webtatic.com/yum/el6/latest.rpm 25 | yum install unixODBC unixODBC-devel patch java-devel wget unzip libxml2 libxml2-devel httpd mysql mysql-server curl curl-devel net-snmp net-snmp-devel perl-DBI ntpdate zlib-devel mysql-devel glibc-devel gcc-c++ gcc automake mysql libidn-devel openssl-devel net-snmp-devel rpm-devel OpenIPMI-devel php56w.x86_64 php56w-cli.x86_64 php56w-common.x86_64 php56w-gd.x86_64 php56w-ldap.x86_64 php56w-mbstring.x86_64 php56w-mcrypt.x86_64 php56w-mysql.x86_64 php56w-pdo.x86_64 php56w-bcmath php56w-xml -y 26 | service mysqld start 27 | fi 28 | 29 | echo "同步服务器时间" 30 | ntpdate asia.pool.ntp.org 31 | echo "创建zabbix用户" 32 | groupadd zabbix 33 | useradd -g zabbix zabbix 34 | sleep 5 35 | 36 | 37 | echo "设置数据库root密码,默认为123321" 38 | sleep 3 39 | mysqladmin -uroot password "123321" 40 | 41 | 42 | echo "创建zabbix数据库,和用户名密码" 43 | echo "create database IF NOT EXISTS zabbix default charset utf8 COLLATE utf8_general_ci;" | mysql -uroot -p123321 44 | echo "grant all privileges on zabbix.* to zabbix@'localhost' identified by 'zabbix';" | mysql -uroot -p123321 45 | echo "flush privileges;" | mysql -uroot -p123321 46 | 47 | echo "安装zabbix-${zabbix_version}" 48 | sleep 3 49 | if [ ! -f zabbix-${zabbix_version}.tar.gz ];then 50 | wget http://netix.dl.sourceforge.net/project/zabbix/ZABBIX%20Latest%20Stable/${zabbix_version}/zabbix-${zabbix_version}.tar.gz 51 | fi 52 | 53 | tar zxvf $zabbixdir/zabbix-${zabbix_version}.tar.gz 54 | cd $zabbixdir/zabbix-${zabbix_version} 55 | echo `pwd` 56 | ./configure --prefix=/usr/local/zabbix/ --enable-server --enable-agent --with-mysql --with-net-snmp --with-libcurl --with-libxml2 --enable-java 57 | sleep 3 58 | 59 | CPU_NUM=$(cat /proc/cpuinfo | grep processor | wc -l) 60 | if [ $CPU_NUM -gt 1 ];then 61 | make -j$CPU_NUM 62 | else 63 | make 64 | fi 65 | 66 | make install 67 | mkdir /var/www/html/zabbix 68 | cp -r $zabbixdir/zabbix-${zabbix_version}/frontends/php/* /var/www/html/zabbix 69 | cp $zabbixdir/simkai.ttf /var/www/html/zabbix/fonts 70 | sed -i "s/DejaVuSans/simkai/g" /var/www/html/zabbix/include/defines.inc.php 71 | 72 | #cd /var/www/html/zabbix 73 | #wget https://raw.githubusercontent.com/OneOaaS/graphtrees/master/graphtree3-0-1.patch 74 | #patch -Np0 /var/www/html/zabbix/conf/zabbix.conf.php < 100 | END 101 | 102 | echo "导入zabbix数据库" 103 | sleep 3 104 | 105 | cd $zabbixdir/zabbix-${zabbix_version} 106 | mysql -uzabbix -pzabbix -hlocalhost zabbix < database/mysql/schema.sql 107 | mysql -uzabbix -pzabbix -hlocalhost zabbix < database/mysql/images.sql 108 | mysql -uzabbix -pzabbix -hlocalhost zabbix < database/mysql/data.sql 109 | echo "创建启动init" 110 | sleep 3 111 | cp misc/init.d/tru64/zabbix_agentd /etc/init.d/ 112 | cp misc/init.d/tru64/zabbix_server /etc/init.d/ 113 | chmod +x /etc/init.d/zabbix_* 114 | sed -i 's:DAEMON=/usr/local/sbin/zabbix_server:DAEMON=/usr/local/zabbix/sbin/zabbix_server:g' /etc/init.d/zabbix_server 115 | sed -i 's:DAEMON=/usr/local/sbin/zabbix_agentd:DAEMON=/usr/local/zabbix/sbin/zabbix_agentd:g' /etc/init.d/zabbix_agentd 116 | sed -i 's:DBUser=root:DBUser=zabbix:g' /usr/local/zabbix/etc/zabbix_server.conf 117 | sed -i '/# DBPassword=/a\DBPassword=zabbix' /usr/local/zabbix/etc/zabbix_server.conf 118 | echo "设置php.ini相关参数" 119 | sleep 3 120 | cp /etc/php.ini /etc/php.ini.zabbixbak 121 | sed -i 's/max_execution_time = 30/max_execution_time = 300/g' /etc/php.ini 122 | sed -i '/max_input_time =/s/60/300/' /etc/php.ini 123 | sed -i '/mbstring.func_overload = 0/a\mbstring.func_overload = 1' /etc/php.ini 124 | sed -i '/post_max_size =/s/8M/32M/' /etc/php.ini 125 | sed -i '/;always_populate_raw_post_data = -1/a\always_populate_raw_post_data = -1' /etc/php.ini 126 | sed -i '/;date.timezone =/a\date.timezone = PRC' /etc/php.ini 127 | 128 | echo "设置apache" 129 | sleep 3 130 | sed -i '/#ServerName www.example.com:80/a\ServerName zabbix' /etc/httpd/conf/httpd.conf 131 | if [ $release = 7 ];then 132 | systemctl start httpd.service 133 | elif [ $release = 6 ];then 134 | service httpd start 135 | fi 136 | 137 | 138 | echo "启动zabbix" 139 | /etc/init.d/zabbix_server restart 140 | /etc/init.d/zabbix_agentd restart 141 | /usr/local/zabbix/sbin/zabbix_java/startup.sh 142 | 143 | echo "数据库默认root密码zabbix123321;zabbix-Database name:zabbix/User:zabbix/Password:zabbix" 144 | cp $zabbixdir/zabbix-${zabbix_version}.tar.gz /var/www/html/zabbix 145 | echo "打开http://$ip/zabbix,进行下一步安装" 146 | -------------------------------------------------------------------------------- /lnmp/config: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | ###nginx install config 3 | NGINX_ROOT="/data/www/wwwroot" 4 | NGINX_PORT=80 5 | NGINX_USER=daemon 6 | NGINX_GROUP=daemon 7 | NGINX_VERSION="nginx-1.2.4" 8 | NGINX_PREFIX="/usr/local/nginx" 9 | NGINX_PCRE_VERSION="pcre-8.31" 10 | NGINX_COMPILE_COMMAND="./configure \ 11 | --user=$CONF_WWW_USER \ 12 | --group=$CONF_WWW_GROUP \ 13 | --prefix=$NGINX_PREFIX \ 14 | --with-http_stub_status_module \ 15 | --with-http_ssl_module \ 16 | --with-http_sub_module \ 17 | --with-md5=/usr/lib \ 18 | --with-sha1=/usr/lib \ 19 | --with-pcre=../$NGINX_PCRE_VERSION \ 20 | --with-http_gzip_static_module" 21 | 22 | ###MySQL install config 23 | MYSQL_PORT=3306 24 | MYSQL_USER=mysql 25 | MYSQL_GROUP=mysql 26 | MYSQL_DATA_DIR="/data/mysql" 27 | MYSQL_VERSION="mysql-5.1.66" 28 | MYSQL_PREFIX="/usr/local/$MYSQL_VERSION" 29 | MYSQL_COMPILE_COMMAND="./configure \ 30 | --prefix=$MYSQL_PREFIX \ 31 | --with-server-suffix=-WWW \ 32 | --with-plugins=partition,blackhole,csv,heap,innobase,myisam,myisammrg \ 33 | --with-charset=utf8 \ 34 | --with-mysqld-user=$CONF_MYSQL_USER \ 35 | --with-collation=utf8_general_ci \ 36 | --with-extra-charsets=gbk,gb2312,utf8,ascii \ 37 | --with-big-tables \ 38 | --with-fast-mutexes \ 39 | --with-zlib-dir=bundled \ 40 | --enable-assembler \ 41 | --enable-profiling \ 42 | --enable-local-infile \ 43 | --enable-thread-safe-client \ 44 | --with-readline \ 45 | --with-pthread \ 46 | --with-embedded-server \ 47 | --with-client-ldflags=-all-static \ 48 | --with-mysqld-ldflags=-all-static \ 49 | --without-geometry \ 50 | --without-debug \ 51 | --without-ndb-debug" 52 | ###PHP Lib install config 53 | PHP_LIBICONV_VERSION="libiconv-1.14" 54 | PHP_LIBMCRYPT_VERSION="libmcrypt-2.5.8" 55 | PHP_MHASH_VERSION="mhash-0.9.9.9" 56 | PHP_MCRYPT_VERSION="mcrypt-2.6.8" 57 | PHP_SUHOSIN_VERSION="suhosin-patch-5.2.17-0.9.7" 58 | ###PHP install config 59 | ##Php 60 | PHP_VERSION="php-5.2.17" 61 | PHP_FPM_USER="daemon" 62 | PHP_FPM_GROUP="daemon" 63 | PHP_FPM_MAX_CHILDREN=256 64 | PHP_FPM_MAX_REQUESTS=1024 65 | PHP_FPM_VERSION="$PHP_VERSION-fpm-0.5.14" 66 | PHP_PREFIX="/usr/local/$PHP_VERSION" 67 | PHP_COMPILE_COMMAND_WITH_MYSQL="./configure \ 68 | --prefix=$PHP_PREFIX \ 69 | --with-config-file-path=$PHP_PREFIX/etc \ 70 | --enable-suhosin \ 71 | --enable-fpm \ 72 | --enable-fastcgi \ 73 | --enable-force-cgi-redirect \ 74 | --disable-rpath \ 75 | --enable-discard-path \ 76 | --with-mysql=$MYSQL_PREFIX \ 77 | --with-mysqli=$MYSQL_PREFIX/bin/mysql_config \ 78 | --with-pdo-mysql=$MYSQL_PREFIX \ 79 | --with-sqlite \ 80 | --with-pdo-sqlite \ 81 | --with-iconv-dir=/usr/local \ 82 | --with-freetype-dir \ 83 | --with-jpeg-dir \ 84 | --with-png-dir \ 85 | --with-gd \ 86 | --with-zlib \ 87 | --with-libxml-dir \ 88 | --with-curl \ 89 | --with-curlwrappers \ 90 | --with-openssl \ 91 | --with-mhash \ 92 | --with-xmlrpc \ 93 | --with-mcrypt \ 94 | --with-ldap \ 95 | --with-ldap-sasl \ 96 | --enable-xml \ 97 | --enable-safe-mode \ 98 | --enable-bcmath \ 99 | --enable-shmop \ 100 | --with-pear \ 101 | --with-gmp \ 102 | --enable-sysvsem \ 103 | --enable-inline-optimization \ 104 | --enable-mbregex \ 105 | --enable-mbstring \ 106 | --enable-gd-native-ttf \ 107 | --enable-ftp \ 108 | --enable-pcntl \ 109 | --enable-sockets \ 110 | --enable-zip \ 111 | --enable-soap \ 112 | --enable-pdo \ 113 | --disable-debug \ 114 | --disable-ipv6" 115 | PHP_COMPILE_COMMAND_WITHOUT_MYSQL="./configure \ 116 | --prefix=$PHP_PREFIX \ 117 | --with-config-file-path=$PHP_PREFIX/etc \ 118 | --enable-suhosin \ 119 | --enable-fpm \ 120 | --enable-fastcgi \ 121 | --enable-force-cgi-redirect \ 122 | --disable-rpath \ 123 | --enable-discard-path \ 124 | --with-mysql \ 125 | --with-mysqli \ 126 | --with-sqlite \ 127 | --with-pdo-sqlite \ 128 | --with-iconv-dir=/usr/local \ 129 | --with-freetype-dir \ 130 | --with-jpeg-dir \ 131 | --with-png-dir \ 132 | --with-gd \ 133 | --with-zlib \ 134 | --with-libxml-dir \ 135 | --with-curl \ 136 | --with-curlwrappers \ 137 | --with-openssl \ 138 | --with-mhash \ 139 | --with-xmlrpc \ 140 | --with-mcrypt \ 141 | --with-ldap \ 142 | --with-ldap-sasl \ 143 | --enable-xml \ 144 | --enable-safe-mode \ 145 | --enable-bcmath \ 146 | --enable-shmop \ 147 | --enable-sysvsem \ 148 | --enable-inline-optimization \ 149 | --enable-mbregex \ 150 | --enable-mbstring \ 151 | --enable-gd-native-ttf \ 152 | --enable-ftp \ 153 | --enable-pcntl \ 154 | --enable-sockets \ 155 | --enable-zip \ 156 | --enable-soap \ 157 | --enable-pdo \ 158 | --disable-debug \ 159 | --disable-ipv6" 160 | ##other php extsion 161 | PHP_MC_EXT_VERSION="memcache-2.2.6" 162 | PHP_MCD_EXT_VERSION="memcached-1.0.2" 163 | PHP_MCD_VERSION="memcached-1.4.5" 164 | PHP_MCD_PREFIX="/usr/local/$PHP_MCD_VERSION" 165 | PHP_LIB_VERSION="libevent-1.4.13-stable" 166 | PHP_LIBMC_VERSION="libmemcached-0.44" 167 | PHP_LIBMC_PREFIX="/usr/local/libmemcached" 168 | PHP_IMAGICK_VERSION="imagick-3.0.1" 169 | PHP_IMAGICK_SOFT="ImageMagick" 170 | PHP_IMAGICK_SOFT_VERSION="ImageMagick-6.7.1-10" 171 | PHP_IMAGICK_COMPILE_COMMAND="./configure \ 172 | --enable-shared \ 173 | --with-modules \ 174 | --without-x \ 175 | --with-gs-font-dir=default \ 176 | --with-perl=yes \ 177 | --with-xml=yes \ 178 | --with-zlib=yes \ 179 | --with-jpeg=yes" 180 | PHP_APC_VERSION="APC-3.1.6" 181 | PHP_XCACHE_VERSION="xcache-3.0.0" 182 | PHP_ZEND_VERSION="ZendOptimizer-3.3.9-linux-glibc23-x86_64" 183 | PHP_EAC_VERSION="eaccelerator-0.9.6.1" 184 | 185 | 186 | -------------------------------------------------------------------------------- /mysql/mariadb.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | PATH=/bin:/sbin:/usr/bin:/usr/sbin:/opt/bin:/opt/sbin:~/bin 3 | export PATH 4 | # Check if user is root 5 | if [ $(id -u) != "0" ]; then 6 | echo "Error: You must be root to run this script, please use root to install" 7 | exit 1 8 | fi 9 | clear 10 | echo "=========================================================================" 11 | echo "A tool to auto-compile & install MariaDB 10.1.16 on Redhat/CentOS Linux " 12 | echo "=========================================================================" 13 | cur_dir=$(pwd) 14 | #set mysql root password 15 | echo "===========================" 16 | $PASSWD=$1 17 | mysqlrootpwd=$PASSWD 18 | echo -e "Please input the root password of mysql:" 19 | read -p "(Default password: MANAGER):" mysqlrootpwd 20 | if [ "$mysqlrootpwd" = "" ]; then 21 | mysqlrootpwd=$PASSWD 22 | fi 23 | echo "===========================" 24 | echo "MySQL root password:$mysqlrootpwd" 25 | echo "===========================" 26 | #which MySQL Version do you want to install? 27 | echo "===========================" 28 | isinstallmysql56="n" 29 | echo "Install MariaDB 10.1.16,Please input y" 30 | read -p "(Please input y , n):" isinstallmysql56 31 | case "$isinstallmysql56" in 32 | y|Y|Yes|YES|yes|yES|yEs|YeS|yeS) 33 | echo "You will install MySQL 5.6.25" 34 | isinstallmysql56="y" 35 | ;; 36 | *) 37 | echo "INPUT error,You will exit install MariaDB 10.1.16" 38 | isinstallmysql56="n" 39 | exit 40 | esac 41 | get_char() 42 | { 43 | SAVEDSTTY=`stty -g` 44 | stty -echo 45 | stty cbreak 46 | #dd if=/dev/tty bs=1 count=1 2> /dev/null 47 | stty -raw 48 | stty echo 49 | stty $SAVEDSTTY 50 | } 51 | echo "" 52 | echo "Press any key to start...or Press Ctrl+c to cancel" 53 | char=`get_char` 54 | # Initialize the installation related content. 55 | function InitInstall() 56 | { 57 | cat /etc/issue 58 | uname -a 59 | MemTotal=`free -m | grep Mem | awk '{print $2}'` 60 | echo -e "\n Memory is: ${MemTotal} MB " 61 | #Set timezone 62 | rm -rf /etc/localtime 63 | ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime 64 | #Delete Old Mysql program 65 | rpm -qa|grep mysql 66 | rpm -e mysql 67 | #Disable SeLinux 68 | if [ -s /etc/selinux/config ]; then 69 | sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config 70 | fi 71 | setenforce 0 72 | } 73 | #Installation of depend on and optimization options. 74 | function InstallDependsAndOpt() 75 | { 76 | cd $cur_dir 77 | cat >>/etc/security/limits.conf<> /etc/sysctl.conf 84 | } 85 | #Install MySQL 86 | function InstallMySQL56() 87 | { 88 | echo "============================Install MariaDB 10.1.16==================================" 89 | cd $cur_dir 90 | #Backup old my.cnf 91 | #rm -f /etc/my.cnf 92 | if [ -s /etc/my.cnf ]; then 93 | mv /etc/my.cnf /etc/my.cnf.`date +%Y%m%d%H%M%S`.bak 94 | fi 95 | #mysql directory configuration 96 | groupadd mysql -g 512 97 | useradd -u 512 -g mysql -s /sbin/nologin -d /home/mysql mysql 98 | tar xvf /root/mariadb-10.1.16-linux-x86_64.tar.gz 99 | mv /root/mariadb-10.1.16-linux-x86_64 /usr/local/mysql 100 | mkdir -p /data/mysql 101 | mkdir -p /log/mysql 102 | chown -R mysql:mysql /data/mysql 103 | chown -R mysql:mysql /usr/local/mysql 104 | chown -R mysql:mysql /log 105 | SERVERID=`ifconfig eth0 | grep "inet addr" | awk '{ print $2}'| awk -F. '{ print $3$4}'` 106 | cat >>/etc/my.cnf<> /etc/ld.so.conf.d/mysql-x86_64.conf<> /etc/profile < /tmp/mysql_sec_script<&1 | tee /root/mysql-install.log 230 | CheckAndDownloadFiles 2>&1 | tee -a /root/mysql-install.log 231 | InstallDependsAndOpt 2>&1 | tee -a /root/mysql-install.log 232 | InstallMySQL56 2>&1 | tee -a /root/mysql-install.log 233 | CheckInstall 2>&1 | tee -a /root/mysql-install.log -------------------------------------------------------------------------------- /lnmp/scripts/nginx.sh: -------------------------------------------------------------------------------- 1 | nginx_download(){ 2 | for i in "$NGINX_VERSION.tar.gz" "$NGINX_PCRE_VERSION.tar.gz" 3 | do 4 | if [ -s packages/$i ]; then 5 | echo "$i [found]" 6 | else 7 | echo "Error: $i not found!!!download now......" 8 | wget http://www.paopao8.com/docs/soft/lnmp/packages/$i -P packages/ 9 | fi 10 | done 11 | } 12 | 13 | nginx_install(){ 14 | cd packages/ 15 | tar zxvf $NGINX_PCRE_VERSION.tar.gz 16 | cd $NGINX_PCRE_VERSION 17 | ./configure && make && make install 18 | cd ../ 19 | 20 | tar zxvf $NGINX_VERSION.tar.gz 21 | cd $NGINX_VERSION 22 | $NGINX_COMPILE_COMMAND 23 | 24 | make -j8 && make install 25 | cd ../../ 26 | pwd 27 | } 28 | 29 | nginx_main_conf(){ 30 | cat > $NGINX_PREFIX/conf/nginx.conf < $NGINX_PREFIX/conf/fastcgi_params < $NGINX_PREFIX/conf/vhosts/test.conf < /etc/init.d/nginx < /dev/null 2>&1 296 | then 297 | printf "Nginx is down!!!\n" 298 | else 299 | printf "Nginx is running now!\n" 300 | fi 301 | } 302 | 303 | if [ "\$1" = "start" ]; then 304 | function_start 305 | elif [ "\$1" = "stop" ]; then 306 | function_stop 307 | elif [ "\$1" = "reload" ]; then 308 | function_reload 309 | elif [ "\$1" = "restart" ]; then 310 | function_restart 311 | elif [ "\$1" = "kill" ]; then 312 | function_kill 313 | elif [ "\$1" = "status" ]; then 314 | function_status 315 | else 316 | echo -en "\033[32;49;1m Usage: nginx {start|stop|reload|restart|kill|status}\n" 317 | echo -en "\033[39;49;0m" 318 | fi 319 | EOF 320 | } 321 | 322 | -------------------------------------------------------------------------------- /lnmp/init.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | copyright(){ 4 | clear 5 | color grn 6 | cat << EOF 7 | +--------------------------------------------------------------------------------+ 8 | | === Welcome to lnmp for CentOS/RHEL Installation! === | 9 | +--------------------------------------------------------------------------------+ 10 | | This Installation Released by WWW . | 11 | +--------------------------------------------------------------------------------+ 12 | | Easy to install lnmp! | 13 | +--------------------------------------------------------------------------------+ 14 | | Copyright: (C) 2012 WWW Inc. All rights reserved. | 15 | +--------------------------------------------------------------------------------+ 16 | EOF 17 | 18 | color res 19 | read -p "Now, I'll install lnmp, Press Enter to continue: " lnmp 20 | case "$lnmp" in 21 | '') 22 | show_option 23 | ;; 24 | *) 25 | exit 0 26 | ;; 27 | esac 28 | } 29 | select_php_cache(){ 30 | cat << EOF 31 | Which php cache module you want to install: 32 | (A): APC; 33 | (C): XCACHE; 34 | (E): Eaccelerator; 35 | EOF 36 | read -p "Please select a php cache module (A,E,C Default: A): > " PHP_CACHE 37 | case "$PHP_CACHE" in 38 | ""|A|a) 39 | PHP_CACHE="a" 40 | ;; 41 | E|e) 42 | PHP_CACHE="e" 43 | ;; 44 | C|c) 45 | PHP_CACHE="c" 46 | ;; 47 | *) 48 | select_php_cache; 49 | ;; 50 | esac 51 | } 52 | 53 | show_option(){ 54 | cat << EOF 55 | Install Option: 56 | (N): Only compile and install Nginx; 57 | (M): Only compile and install MySQL; 58 | (I): Only compile and install MySQL innodb; 59 | (P): Only compile and install PHP; 60 | (A): Compile and install lnmp(Nginx+MySQL+PHP); 61 | (Q): Quit; 62 | EOF 63 | read -p "Please select an option (N,M,P,A,Q Default: A): > " OPTION 64 | case "$OPTION" in 65 | ""|A|a) 66 | Install_lnmp 67 | lnmp_complete lnmp 68 | exit 0; 69 | ;; 70 | M|m) 71 | Install_MySQL 72 | lnmp_complete mysql 73 | exit 0; 74 | ;; 75 | I|i) 76 | Install_MySQL_innodb 77 | lnmp_complete mysql 78 | exit 0; 79 | ;; 80 | P|p) 81 | Install_PHP 82 | lnmp_complete php 83 | exit 0; 84 | ;; 85 | N|n) 86 | Install_Nginx without_php 87 | lnmp_complete nginx 88 | exit 0; 89 | ;; 90 | Q|q) 91 | exit 0; 92 | ;; 93 | *) 94 | show_option; 95 | ;; 96 | esac 97 | } 98 | 99 | check_env(){ 100 | #install rpms 101 | if [ $CHECKED_ENV == 0 ];then 102 | yum -y install dialog ntp vim-enhanced vixie-cron gcc gcc-c++ gcc-g77 flex bison autoconf automake glibc \ 103 | glibc-devel glib2 glib2-devel bzip2 bzip2-devel ncurses ncurses-devel libtool* zlib-devel \ 104 | libxml2-devel libjpeg-devel libpng-devel libtiff-devel fontconfig-devel freetype-devel \ 105 | libXpm-devel gettext-devel curl curl-devel pam-devel e2fsprogs-devel krb5-devel libidn \ 106 | libidn-devel openssl openssl-devel openldap openldap-devel \ 107 | nss_ldap openldap-clients openldap-servers php-gmp gmp gmp* patch 108 | CHECKED_ENV=1 109 | sleep 2 110 | fi 111 | clear 112 | } 113 | 114 | make_dir(){ 115 | if [ ! -d $1 ];then 116 | mkdir -p $1 117 | fi 118 | } 119 | 120 | clear_packages_dir(){ 121 | echo "find" 122 | #find packages/* -type d|xargs rm -rf 123 | #find packages/ -name "*.patch"|xargs rm -rf 124 | } 125 | 126 | is_install(){ 127 | if [ "$CONTINUE" == "a" ];then 128 | return 129 | fi 130 | if [ "$2"x == "x" ];then 131 | echo "error!" 132 | exit 1; 133 | fi 134 | if [ $2 == "d" ];then 135 | if [ -d $1 ];then 136 | read -p "$1 already exists, Continue? (y/n/a(yes to all)): " CONTINUE 137 | else 138 | CONTINUE="y" 139 | fi 140 | elif [ $2 == "c" ];then 141 | command -v $1 >/dev/null && read -p "$1 already exists, Continue? (y/n/a(yes to all)): " CONTINUE || CONTINUE="y" 142 | elif [ $2 == "f" ];then 143 | if [ -f $1 ];then 144 | read -p "$1 already exists, Continue? (y/n/a(yes to all)): " CONTINUE 145 | else 146 | CONTINUE="y" 147 | fi 148 | fi 149 | case "$CONTINUE" in 150 | y) 151 | ;; 152 | n) 153 | exit 0; 154 | ;; 155 | a) 156 | ;; 157 | *) 158 | is_install $1 $2; 159 | ;; 160 | esac 161 | } 162 | optimze_system(){ 163 | . scripts/tuning/network.sh 164 | . scripts/tuning/tuning.sh 165 | } 166 | lnmp_complete(){ 167 | if [[ $1 == "lnmp" ]];then 168 | /etc/rc.d/init.d/mysqld start 169 | /etc/init.d/nginx start 170 | /etc/init.d/fastcgi start 171 | color red 172 | echo "Congratulations! lnmp configuration complete!" 173 | color dred 174 | echo "You can visit http://$IP/test.php" 175 | color dgrn 176 | cat << EOF 177 | +--------------------------------------------------------------------------------+ 178 | | === Installation Document Description === | 179 | +--------------------------------------------------------------------------------+ 180 | MySQL SCRIPTS : /etc/init.d/mysqld start 181 | NGINX SCRIPTS : /etc/init.d/nginx start 182 | FASTCGI SCRIPTS : /etc/init.d/fastcgi start 183 | MySQL DATAPATH : $MYSQL_DATA_DIR/$MYSQL_PORT 184 | MYSQL PATH : $MYSQL_PREFIX 185 | MYSQL LISTEN PORT : $MYSQL_PORT 186 | PHP PATH : $PHP_PREFIX 187 | PHP CONFIG : $PHP_PREFIX/etc 188 | NGINX PATH : $NGINX_PREFIX 189 | NGINX LISTEN PORT : $NGINX_PORT 190 | NGINX DOCUMENTROOT : $NGINX_ROOT 191 | +--------------------------------------------------------------------------------+ 192 | | Easy to install lnmp! Have Fun^_^! http://www.paopao8.com | 193 | +--------------------------------------------------------------------------------+ 194 | EOF 195 | echo -en "\033[39;49;0m" 196 | elif [[ $1 == "mysql" ]];then 197 | /etc/rc.d/init.d/mysqld start 198 | color red 199 | echo "Congratulations! MySQL configuration complete!" 200 | color dgrn 201 | cat << EOF 202 | +--------------------------------------------------------------------------------+ 203 | | === Installation Document Description === | 204 | +--------------------------------------------------------------------------------+ 205 | MySQL SCRIPTS : /etc/init.d/mysqld start 206 | MySQL DATAPATH : $MYSQL_DATA_DIR/$MYSQL_PORT 207 | MYSQL PATH : $MYSQL_PREFIX 208 | MYSQL LISTEN PORT : $MYSQL_PORT 209 | +--------------------------------------------------------------------------------+ 210 | | Easy to install lnmp! Have Fun^_^! http://www.paopao8.com | 211 | +--------------------------------------------------------------------------------+ 212 | EOF 213 | echo -en "\033[39;49;0m" 214 | elif [[ $1 == "php" ]];then 215 | /etc/init.d/fastcgi start 216 | color red 217 | echo "Congratulations! PHP configuration complete!" 218 | color dgrn 219 | cat << EOF 220 | +--------------------------------------------------------------------------------+ 221 | | === Installation Document Description === | 222 | +--------------------------------------------------------------------------------+ 223 | FASTCGI SCRIPTS : /etc/init.d/fastcgi start 224 | PHP PATH : $PHP_PREFIX 225 | PHP CONFIG : $PHP_PREFIX/etc 226 | +--------------------------------------------------------------------------------+ 227 | | Easy to install lnmp! Have Fun^_^! http://www.paopao8.com | 228 | +--------------------------------------------------------------------------------+ 229 | EOF 230 | echo -en "\033[39;49;0m" 231 | elif [[ $1 == "nginx" ]];then 232 | /etc/init.d/nginx start 233 | if [ $NGINX_PORT == "80" ];then 234 | URL=$IP 235 | else 236 | URL=$IP:$NGINX_PORT 237 | fi 238 | color red 239 | echo "Congratulations! Nginx configuration complete!" 240 | color dred 241 | echo "You can visit http://$URL/test.html" 242 | color dgrn 243 | cat << EOF 244 | +--------------------------------------------------------------------------------+ 245 | | === Installation Document Description === | 246 | +--------------------------------------------------------------------------------+ 247 | NGINX SCRIPTS : /etc/init.d/nginx start 248 | NGINX PATH : $NGINX_PREFIX 249 | NGINX LISTEN PORT : $NGINX_PORT 250 | NGINX DOCUMENTROOT : $NGINX_ROOT 251 | +--------------------------------------------------------------------------------+ 252 | | Easy to install lnmp! Have Fun^_^! http://www.paopao8.com | 253 | +--------------------------------------------------------------------------------+ 254 | EOF 255 | echo -en "\033[39;49;0m" 256 | fi 257 | } 258 | 259 | check_sucess(){ 260 | if [ $2 == "0" ];then 261 | return 262 | else 263 | color red 264 | echo "Some error occurred when install $1" 265 | echo -en "\033[39;49;0m" 266 | exit 1 267 | fi 268 | } 269 | 270 | 271 | 272 | -------------------------------------------------------------------------------- /lnmp/scripts/php.sh: -------------------------------------------------------------------------------- 1 | php_lib_download(){ 2 | for i in "$PHP_LIBICONV_VERSION.tar.gz" "$PHP_LIBMCRYPT_VERSION.tar.gz" "$PHP_MHASH_VERSION.tar.gz" "$PHP_MCRYPT_VERSION.tar.gz" 3 | do 4 | if [ -s packages/$i ]; then 5 | echo "$i [found]" 6 | else 7 | echo "Error: $i not found!!!download now......" 8 | wget http://www.paopao8.com/docs/soft/lnmp/packages/$i -P packages/ 9 | fi 10 | done 11 | } 12 | php_lib_install(){ 13 | cd packages/ 14 | tar zxvf $PHP_LIBICONV_VERSION.tar.gz 15 | cd $PHP_LIBICONV_VERSION 16 | ./configure --prefix=/usr/local && make && make install 17 | cd .. 18 | 19 | 20 | tar zxvf $PHP_LIBMCRYPT_VERSION.tar.gz 21 | cd $PHP_LIBMCRYPT_VERSION/ 22 | ./configure --prefix=/usr && make && make install 23 | 24 | cd libltdl/ 25 | ./configure --enable-ltdl-install 26 | make && make install 27 | cd ../../ 28 | 29 | tar zxvf $PHP_MHASH_VERSION.tar.gz 30 | cd $PHP_MHASH_VERSION 31 | ./configure --prefix=/usr && make && make install 32 | ldconfig 33 | cd ../ 34 | 35 | ln -s /usr/local/lib/libmcrypt.la /usr/lib/libmcrypt.la 36 | ln -s /usr/local/lib/libmcrypt.so /usr/lib/libmcrypt.so 37 | ln -s /usr/local/lib/libmcrypt.so.4 /usr/lib/libmcrypt.so.4 38 | ln -s /usr/local/lib/libmcrypt.so.4.4.8 /usr/lib/libmcrypt.so.4.4.8 39 | ln -s /usr/local/lib/libmhash.a /usr/lib/libmhash.a 40 | ln -s /usr/local/lib/libmhash.la /usr/lib/libmhash.la 41 | ln -s /usr/local/lib/libmhash.so /usr/lib/libmhash.so 42 | ln -s /usr/local/lib/libmhash.so.2 /usr/lib/libmhash.so.2 43 | ln -s /usr/local/lib/libmhash.so.2.0.1 /usr/lib/libmhash.so.2.0.1 44 | 45 | #ln -sf lib 46 | ln -sf /usr/lib64/libjpeg.so /usr/lib/ 47 | ln -sf /usr/lib64/libpng.so /usr/lib/ 48 | ln -sf /usr/lib64/libldap* /usr/lib/ 49 | 50 | 51 | tar zxvf $PHP_MCRYPT_VERSION.tar.gz 52 | cd $PHP_MCRYPT_VERSION 53 | /sbin/ldconfig 54 | ./configure --prefix=/usr && make && make install 55 | cd .. 56 | 57 | echo "/usr/lib" >> /etc/ld.so.conf 58 | echo "/usr/local/lib" >> /etc/ld.so.conf 59 | ldconfig 60 | 61 | cd ../ 62 | } 63 | 64 | php_download(){ 65 | for i in "$PHP_VERSION.tar.gz" \ 66 | "$PHP_FPM_VERSION.diff.gz" \ 67 | "$PHP_SUHOSIN_VERSION.patch.gz" \ 68 | "$PHP_MAX_INPUT_VARS.patch.gz" \ 69 | "$PHP_APC_VERSION.tgz" \ 70 | "$PHP_EAC_VERSION.tar.bz2" \ 71 | "$PHP_LIB_VERSION.tar.gz" \ 72 | "$PHP_MC_EXT_VERSION.tgz" \ 73 | "$PHP_MCD_EXT_VERSION.tgz" \ 74 | "$PHP_MCD_VERSION.tar.gz" \ 75 | "$PHP_LIBMC_VERSION.tar.gz" \ 76 | "$PHP_IMAGICK_SOFT.tar.gz" \ 77 | "$PHP_IMAGICK_VERSION.tgz" 78 | do 79 | if [ -s packages/$i ]; then 80 | echo "$i [found]" 81 | else 82 | echo "Error: $i not found!!!download now......" 83 | wget http://www.paopao8.com/docs/soft/lnmp/packages/$i -P packages/ 84 | fi 85 | done 86 | } 87 | 88 | php_fastcgi_init_script(){ 89 | cat > /etc/init.d/fastcgi < $PHP_PREFIX/etc/php-fpm.conf < 163 | 164 | 165 | All relative paths in this config are relative to php's install prefix 166 | 167 |
168 | 169 | Pid file 170 | $PHP_PREFIX/logs/php-fpm.pid 171 | 172 | Error log file 173 | $PHP_PREFIX/logs/php-fpm.log 174 | 175 | Log level 176 | notice 177 | 178 | When this amount of php processes exited with SIGSEGV or SIGBUS ... 179 | 10 180 | 181 | ... in a less than this interval of time, a graceful restart will be initiated. 182 | Useful to work around accidental curruptions in accelerator's shared memory. 183 | 1m 184 | 185 | Time limit on waiting child's reaction on signals from master 186 | 5s 187 | 188 | Set to 'no' to debug fpm 189 | yes 190 | 191 |
192 | 193 | 194 | 195 |
196 | 197 | Name of pool. Used in logs and stats. 198 | default 199 | 200 | Address to accept fastcgi requests on. 201 | Valid syntax is 'ip.ad.re.ss:port' or just 'port' or '/path/to/unix/socket' 202 | 127.0.0.1:9000 203 | 204 | 205 | 206 | Set listen(2) backlog 207 | -1 208 | 209 | Set permissions for unix socket, if one used. 210 | In Linux read/write permissions must be set in order to allow connections from web server. 211 | Many BSD-derrived systems allow connections regardless of permissions. 212 | 213 | 214 | 0666 215 | 216 | 217 | Additional php.ini defines, specific to this pool of workers. 218 | 219 | /usr/sbin/sendmail -t -i 220 | 0 221 | 222 | 223 | Unix user of processes 224 | $PHP_FPM_USER 225 | 226 | Unix group of processes 227 | $PHP_FPM_GROUP 228 | 229 | Process manager settings 230 | 231 | 232 | Sets style of controling worker process count. 233 | Valid values are 'static' and 'apache-like' 234 | static 235 | 236 | Sets the limit on the number of simultaneous requests that will be served. 237 | Equivalent to Apache MaxClients directive. 238 | Equivalent to PHP_FCGI_CHILDREN environment in original php.fcgi 239 | Used with any pm_style. 240 | $PHP_FPM_MAX_CHILDREN 241 | 242 | Settings group for 'apache-like' pm style 243 | 244 | 245 | Sets the number of server processes created on startup. 246 | Used only when 'apache-like' pm_style is selected 247 | 20 248 | 249 | Sets the desired minimum number of idle server processes. 250 | Used only when 'apache-like' pm_style is selected 251 | 5 252 | 253 | Sets the desired maximum number of idle server processes. 254 | Used only when 'apache-like' pm_style is selected 255 | 35 256 | 257 | 258 | 259 | 260 | 261 | The timeout (in seconds) for serving a single request after which the worker process will be terminated 262 | Should be used when 'max_execution_time' ini option does not stop script execution for some reason 263 | '0s' means 'off' 264 | 30s 265 | 266 | The timeout (in seconds) for serving of single request after which a php backtrace will be dumped to slow.log file 267 | '0s' means 'off' 268 | 5s 269 | 270 | The log file for slow requests 271 | logs/slow.log 272 | 273 | Set open file desc rlimit 274 | 65535 275 | 276 | Set max core size rlimit 277 | 0 278 | 279 | Chroot to this directory at the start, absolute path 280 | 281 | 282 | Chdir to this directory at the start, absolute path 283 | 284 | 285 | Redirect workers' stdout and stderr into main error log. 286 | If not set, they will be redirected to /dev/null, according to FastCGI specs 287 | yes 288 | 289 | How much requests each process should execute before respawn. 290 | Useful to work around memory leaks in 3rd party libraries. 291 | For endless request processing please specify 0 292 | Equivalent to PHP_FCGI_MAX_REQUESTS 293 | $PHP_FPM_MAX_REQUESTS 294 | 295 | Comma separated list of ipv4 addresses of FastCGI clients that allowed to connect. 296 | Equivalent to FCGI_WEB_SERVER_ADDRS environment in original php.fcgi (5.2.2+) 297 | Makes sense only with AF_INET listening socket. 298 | 127.0.0.1 299 | 300 | Pass environment variables like LD_LIBRARY_PATH 301 | All \$VARIABLEs are taken from current environment 302 | 303 | \$HOSTNAME 304 | /usr/local/bin:/usr/bin:/bin 305 | /tmp 306 | /tmp 307 | /tmp 308 | \$OSTYPE 309 | \$MACHTYPE 310 | 2 311 | 312 | 313 |
314 | 315 |
316 | 317 |
318 | EOF 319 | } 320 | php_install() { 321 | 322 | cd packages/ 323 | 324 | #gzip -d $PHP_SUHOSIN_VERSION.patch.gz 325 | tar zxvf $PHP_VERSION.tar.gz 326 | gzip -cd $PHP_FPM_VERSION.diff.gz | patch -d $PHP_VERSION -p1 327 | cd $PHP_VERSION 328 | #patch -p 1 -i ../$PHP_SUHOSIN_VERSION.patch 329 | patch -p1 < ../php-5.2.17-max-input-vars.patch 330 | 331 | if [ $1 == "with_mysql" ];then 332 | $PHP_COMPILE_COMMAND_WITH_MYSQL 333 | check_sucess php $? 334 | else 335 | machine=`uname -m` 336 | if [ $machine == "x86_64" ];then 337 | export LDFLAGS=-L/usr/lib64/mysql 338 | fi 339 | $PHP_COMPILE_COMMAND_WITHOUT_MYSQL 340 | check_sucess php $? 341 | fi 342 | 343 | make ZEND_EXTRA_LIBS='-liconv' -j8 344 | make install 345 | cp -Rf php.ini-dist $PHP_PREFIX/etc/php.ini 346 | cd ../../ 347 | 348 | php_fpm_conf 349 | } 350 | 351 | php_ext_install() { 352 | 353 | cd packages/ 354 | tar zxvf $PHP_LIB_VERSION.tar.gz 355 | cd $PHP_LIB_VERSION 356 | ./configure && make -j9 && make install 357 | cd .. 358 | 359 | tar zxvf $PHP_MCD_VERSION.tar.gz 360 | cd $PHP_MCD_VERSION 361 | ./configure --prefix=$PHP_MCD_PREFIX 362 | make -j9 && make install 363 | cd .. 364 | 365 | # php mecache.so 366 | tar zxvf $PHP_MC_EXT_VERSION.tgz 367 | cd $PHP_MC_EXT_VERSION 368 | $PHP_PREFIX/bin/phpize 369 | ./configure --with-php-config=$PHP_PREFIX/bin/php-config 370 | make -j8 && make install 371 | cd .. 372 | # php memached.so 373 | tar zxvf $PHP_LIBMC_VERSION.tar.gz 374 | cd $PHP_LIBMC_VERSION 375 | ./configure --prefix=$PHP_LIBMC_PREFIX --with-memcached=$PHP_MCD_PREFIX/bin/memcached 376 | make -j9 && make install 377 | cd .. 378 | 379 | tar zxvf $PHP_MCD_EXT_VERSION.tgz 380 | cd $PHP_MCD_EXT_VERSION 381 | $PHP_PREFIX/bin/phpize 382 | ./configure --with-php-config=$PHP_PREFIX/bin/php-config --with-libmemcached-dir=$PHP_LIBMC_PREFIX 383 | make -j9 && make install 384 | cd ../ 385 | 386 | # imagic 387 | tar zxvf $PHP_IMAGICK_SOFT.tar.gz 388 | cd $PHP_IMAGICK_SOFT_VERSION/ 389 | $PHP_IMAGICK_COMPILE_COMMAND 390 | make -j9 && make install 391 | cd .. 392 | 393 | tar zxvf $PHP_IMAGICK_VERSION.tgz 394 | cd $PHP_IMAGICK_VERSION/ 395 | $PHP_PREFIX/bin/phpize 396 | ./configure --with-php-config=$PHP_PREFIX/bin/php-config 397 | make -j9 && make install 398 | 399 | cd ../../ 400 | } 401 | # % config php % 402 | php_config() { 403 | sed -i '/expose_php/ {s/On/Off/g};/magic_quo tes_gpc/ {s/On/Off/g};/upload_max_filesize/ {s/.*/upload_max_filesize = 10M/};/output_buffering/ {s/Off/On/g}' $PHP_PREFIX/etc/php.ini 404 | sed -i 's/error_reporting = E_ALL \& ~E_NOTICE/error_reporting = E_WARNING \& E_ERROR/g' $PHP_PREFIX/etc/php.ini 405 | sed -i '/display_errors/ {s/On/Off/g};/log_errors/ {s/Off/On/g};/short_open_tag/ {s/Off/On/g}' $PHP_PREFIX/etc/php.ini 406 | sed -i "s#;error_log = filename#error_log = /tmp/php-error.log#g" $PHP_PREFIX/etc/php.ini 407 | sed -i "s#;always_populate_raw_post_data = On#always_populate_raw_post_data = On#g" $PHP_PREFIX/etc/php.ini 408 | 409 | cat >>$PHP_PREFIX/etc/php.ini<>$PHP_PREFIX/etc/php.ini<>$PHP_PREFIX/etc/php.ini<>$PHP_PREFIX/etc/php.ini<