常用模块自动化安装脚本

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了常用模块自动化安装脚本相关的知识,希望对你有一定的参考价值。

python_mod_install.sh

#!/bin/bash

# 1.安装客户端

#wget https://pypi.python.org/packages/source/r/redis/redis-2.9.1.tar.gz

tar zxvf redis-2.9.1.tar.gz

cd redis-2.9.1/

python setup.py install

cd ..

mysql_python.sh

#!/bin/bash

#pip install MySQL-python

tar xzvf MySQL-python-1.2.3.tar.gz

cd MySQL-python-1.2.3

sed -i ‘s#mysql_config.path = "mysql_config"#mysql_config.path = "/usr/local/mysql/bin/mysql_config"#‘ setup_posix.py

python setup.py build

python setup.py install


redis.sh

#!/bin/bash

mkdir /usr/local/redis/

cp redis-2.8.6.tar.gz /usr/local/redis/redis-2.8.6.tar.gz

cd /usr/local/redis/

tar xzvf redis-2.8.6.tar.gz

cd /usr/local/redis/redis-2.8.6

make

sysctl vm.overcommit_memory=1

#/usr/local/redis/redis-2.8.6/src/redis-server /usr/local/redis/redis-2.8.6/redis.conf &

#vim /etc/sysctl.conf

ln -s /usr/local/redis/redis-2.8.6/src/redis-cli /bin/redis-cli


diskmon.sh


#!/bin/bash



function sendNotify()

{

                title=$1

                text=$2


                timestamp=$(date ‘+%s‘)

                key=$(echo -n "WEBDUDU_INTERFACE_9237426476824${timestamp}"|md5sum|cut -d ‘ ‘ -f1)


                ip=$(/sbin/ip -oneline route get 110.13.121.208|awk ‘{print $7}‘)

                ip2=$(ifconfig -a|awk ‘/(cast)/ {print $2}‘|cut -d‘:‘ -f2|head -1)


                text="${text} ip:${ip}_${ip2}"


                curl -d "type=web&timestamp=${timestamp}&key=${key}&title=${title}&context=${text}&type=web

                "                               "http://dundun.haoren.com/frontend/Interface/sendWarnMsg"

}





# 单位K

limit=$((2*1024*1024))

free=$(df |grep -w ".*\/"|awk ‘{print $(NF-2)}‘)


#echo $limit

#echo $free


if [ $free -lt $limit ]; then

        echo "太小"

        freeM=$(($free/1024))

        text="磁盘剩余空间不足2G,为${freeM}M"

        title="磁盘空间偏小"

        sendNotify $title $text

else

        echo "当前空间充足"


fi


install_service.sh

#!/bin/sh

./sys_ini.sh

./nginx_install.sh

./install_mysql.sh

cd mod/

./mod_install.sh

cd ..

./php_install.sh

cd /opt/lnmp/memcahed

./mem.sh

cd ..

/bin/cp -rf /opt/lnmp/conf/php.ini /usr/local/lib/

/bin/cp -rf /opt/lnmp/conf/nginx.conf /usr/local/nginx/conf/

/bin/cp -rf /opt/lnmp/conf/fcgi.conf /usr/local/nginx/conf/

/bin/cp -rf /opt/lnmp/conf/php-fpm.conf /usr/local/php/etc/ 


drwxr-xr-x 2 root root     4096 11月  3 2010 conf

-rwxr-xr-x 1 root root     2520 2月  14 2008 install_mysql.sh

-rwxr-xr-x 1 root root      378 10月 18 2010 install_service.sh

drwxr-xr-x 2 root root     4096 10月 18 2010 memcahed

drwxr-xr-x 2 root root     4096 10月 18 2010 mod

-rw-r--r-- 1 root root 24433261 12月  9 2008 mysql-5.0.45.tar.gz

drwxr-xr-x 8 1000 1000     4096 8月  19 12:27 nginx-0.8.15

-rw-r--r-- 1 root root   605698 9月  14 2009 nginx-0.8.15.tar.gz

-rwxr-xr-x 1 root root      652 10月 18 2010 nginx_install.sh

drwxrwxrwx 7 1169 1169     4096 8月  19 12:27 pcre-7.9

-rw-r--r-- 1 root root  1191330 6月  26 2009 pcre-7.9.tar.gz

-rw-r--r-- 1 root root   204248 3月   9 2010 php-5.2.8-fpm-0.5.10.diff.gz

-rw-r--r-- 1 root root 12427411 12月  9 2008 php-5.2.8.tar.gz

-rwxr-xr-x 1 root root      681 11月  3 2010 php_install.sh

-rwxr-xr-x 1 root root     1224 2月  14 2008 sys_ini.sh


sys_ini.sh

#!/bin/bash

/sbin/chkconfig anacron off 

/sbin/chkconfig autofs off

/sbin/chkconfig cups off

/sbin/chkconfig gpm off

/sbin/chkconfig iiim off

/sbin/chkconfig isdn off

/sbin/chkconfig nfs off

/sbin/chkconfig nfslock off

/sbin/chkconfig pcmcia off

/sbin/chkconfig portmap off

/sbin/chkconfig rhnsd off

/sbin/chkconfig rpcgssd off

/sbin/chkconfig xfs off

/sbin/chkconfig xinetd off

/sbin/chkconfig sendmail off

/sbin/chkconfig mysqld off

/sbin/chkconfig httpd off


service anacron stop

service autofs stop

service cups stop

service gpm stop

service iiim stop

service isdn stop

service nfs stop

service nfslock stop

service pcmcia stop

service portmap stop

service rhnsd stop

service rpcgssd stop

service xfs stop

service xinetd stop

service sendmail stop

service httpd stop

service mysqld stop 


echo "*       soft    nofile  40960" >>/etc/security/limits.conf

echo "*       hard    nofile  65535" >>/etc/security/limits.conf

echo "session    required     pam_limits.so">>/etc/pam.d/login


HOSTIP=`more /etc/sysconfig/network-scripts/ifcfg-eth0 |grep IPADDR|awk -F= ‘{print $2}‘`;echo "exec echo -ne \"\033]0;\${USER}@$HOSTIP:\${PWD/#\$HOME/~}\007\"" >/etc/sysconfig/bash-prompt-xterm;chmod +x /etc/sysconfig/bash-prompt-xterm


php_install.sh

#!/bin/bash

tar zxvf php-5.2.8.tar.gz

gzip -cd php-5.2.8-fpm-0.5.10.diff.gz | patch -d php-5.2.8 -p1

cd php-5.2.8

./configure --prefix=/usr/local/php --with-gd --with-jpeg-dir --with-zlib --with-png --with-freetype-dir --enable-magic-quotes --with-iconv --with-mbstring --with-mysql=/usr/local/mysql --enable-track-vars --enable-fastcgi --enable-fpm --enable-force-cgi-redirect --enable-ftp --with-config-file-path=/usr/local/lib --with-libxml-dir --with-openssl --enable-maintainer-zts 

cp php.ini-recommended /usr/local/lib/php.ini

make -j 4 

make install

cd ./ext/mbstring/

/usr/local/php/bin/phpize

./configure --with-php-config=/usr/local/php/bin/php-config

make

make install

nginx_install.sh

#!/bin/sh


#1、安装Nginx所需的pcre库

tar zxvf pcre-7.9.tar.gz

cd pcre-7.9/

./configure

make && make install

cd ../


#2、安装Nginx

tar zxvf nginx-0.8.15.tar.gz

cd nginx-0.8.15/

./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module 

make && make install

cd ../


#3、创建Nginx日志目录

#mkdir -p /usr/local/nginx/logs

#chmod +w /usr/local/nginx/logs


#4、创建Nginx配置文件

#cp /usr/local/nginx/conf/nginx.conf  /usr/local/nginx/conf/nginx.old

#rm -f /usr/local/nginx/conf/nginx.conf

#vi /usr/local/nginx/conf/nginx.conf


#5、启动Nginx

#ulimit -SHn 51200

#/usr/local/nginx/sbin/nginx

#/usr/local/php/sbin/php-fpm start


install_mysql.sh


#!/bin/bash


#首先确定你是root用户


tar zxf mysql-5.0.45.tar.gz


cd  mysql-5.0.45



#根据体统类型选择编译方式

#i386体系结构的

#CFLAGS="-O3 -mcpu=pentiumpro" CXX=gcc CXXFLAGS="-O3 -mcpu=pentiumpro -felide-constructors -fno-exceptions -fno-rtti" ./configure --with-raid --enable-thread-safe-client --enable-assembler  --with-server-suffix =" for >>>MySQL Database of Zebra by Yhc<<<" --without-debug --with-extra-charsets=complex --without-isam --prefix=/usr/local/mysql --without-bench

#64位系统,x86_64

CFLAGS="-O3 -m64" CXX=gcc CXXFLAGS="-O3 -m64 -felide-constructors -fno-exceptions -fno-rtti" ./configure --with-raid --enable-thread-safe-client --enable-assembler  --with-server-suffix =" for >>>MySQL Database of Zebra by Yhc<<<" --without-debug --with-extra-charsets=complex --without-isam --without-server --prefix=/usr/local/mysql --without-bench --with-archive-storage-engine 


#然后根据CPU数量进行编译

make -j 4 && make install


#添加用户

groupadd mysql && useradd -g mysql mysql


#创建目录

mkdir /usr/local/mysql/data && mkdir /usr/local/mysql/run && mkdir /usr/local/mysql/log && mkdir /usr/local/mysql/var


#更改mysql目录所有者

#chgrp mysql -R /usr/local/mysql && chown mysql -R /usr/local/mysql

#增加打开文件数量

ulimit -n 2048


#添加PATH

echo "PATH=\"/usr/local/mysql/bin:\$PATH\"" >> /etc/profile && export PATH="/usr/local/mysql/bin:$PATH"


#strip可执行文件

strip /usr/local/mysql/libexec/mysqld


#添加LIB PATH

echo "/usr/local/mysql/lib/mysql" >> /etc/ld.so.conf && ldconfig


#将my.cnf文件cp到/etc目录下

/bin/cp -r /usr/local/mysql/share/mysql/my-huge.cnf  /etc/my.cnf && chown mysql:mysql /etc/my.cnf  

cd /usr/local/mysql/bin

ln -s ./mysql ./test_mysql

ln -s ./mysqladmin ./adminmysql

ln -s ./mysql_install_db ./install_db_mysql

ln -s ./mysqld_safe ./safe_mysqld

#初始化Mysql表

cd /usr/local/mysql/bin

./install_db_mysql --user=mysql

chown -R root /usr/local/mysql && chown -R  mysql /usr/local/mysql/var && chgrp -R mysql /usr/local/mysql  

pkill -9  mysql

#su - mysql -c "mysqld_safe --skip-name-resolve --open-files-limit=20480 &"


#完成后,删除空的用户名帐号。

#/usr/local/mysql/bin/mysql -uroot -e "use mysql;delete from user where "User"=‘‘;"


#为本地帐户创建密码

#/usr/local/mysql/bin/mysql -uroot -e "set password for [email protected]"localhost" = password(‘123456‘);"

#/usr/local/mysql/bin/mysql -uroot -p123456 -e "use mysql;update user set Password=password(‘123456‘) where "Host"=‘localhost.localdomain‘;flush privileges;"


#关闭服务器

#su - mysql -c "mysqladmin -u root -pPASSWORD shutdown"



mod_install.sh

#!/bin/sh

tar zxf libpng-1.2.8-config.tar.gz

cd libpng-1.2.8-config

./configure

make

make install


cd ..


tar jxf freetype-2.1.10.pre-20050511.tar.bz2

cd freetype-2.1.10.pre-20050511

./configure

make

make install


cd ..


tar zxf jpegsrc.v6b.tar.gz

cd jpeg-6b

./configure --enable-shared

make

make install-lib


-rw-r--r-- 1 root root 1030233 8月   3 2005 freetype-2.1.10.pre-20050511.tar.bz2

-rw-r--r-- 1 root root  616196 8月  12 2005 jpegsrc.v6b.tar.gz

-rw-r--r-- 1 root root  695097 8月   3 2005 libpng-1.2.8-config.tar.gz

-rwxr-xr-x 1 root root     309 2月  14 2008 mod_install.sh


memcacheInstall.sh

#!/bin/bash

tar xzvf libevent-1.4.8-stable.tar.gz

cd libevent-1.4.8-stable

./configure --prefix=/usr

make 

make install


cd ..

tar zxvf memcached-1.2.6.tar.gz

cd memcached-1.2.6

./configure --with-libevent=/usr

make

make install


cd ..

tar zxvf  memcache-2.2.4.tgz

cd memcache-2.2.4

/usr/local/php/bin/phpize

./configure --enable-memcache --with-php-config=/usr/local/php/bin/php-config  --with-zlib-dir

make 

make install


-rw-r--r-- 1 root root 488054 12月  9 2008 libevent-1.4.8-stable.tar.gz

-rw-r--r-- 1 root root  35389 12月  9 2008 memcache-2.2.4.tgz

-rw-r--r-- 1 root root 217651 12月  9 2008 memcached-1.2.6.tar.gz

-rwxr-xr-x 1 root root    425 2月  14 2008 mem.sh



mysql_python.sh


#!/bin/bash

tar xzvf setuptools-0.6c11.tar.gz

cd setuptools-0.6c11

python setup.py build

python setup.py install


cd ..

tar xzvf MySQL-python-1.2.3.tar.gz

cd MySQL-python-1.2.3

sed -i ‘s#mysql_config.path = "mysql_config"#mysql_config.path = "/usr/local/mysql/bin/mysql_config"#‘ setup_posix.py

python setup.py build

python setup.py install


pythonInstallupdate2.7.6.sh

#!/bin/bash

tar xzvf Python-2.7.6.tgz

cd Python-2.7.6

./configure --prefix=/usr/local/python2.7.6

make 

make install

mv /usr/bin/python /usr/bin/python.bak

ln -s /usr/local/python2.7.6/bin/python2.7 /usr/bin/python





drwxrwxr-x  6 zgam zgam    4096 9月   8 16:31 MySQL-python-1.2.3

-rwxrwxrwx  1 root   root      70305 4月  10 2014 MySQL-python-1.2.3.tar.gz

-rwxrwxrwx  1 root   root        341 4月  10 2014 mysql_python.sh

drwxr-xr-x 18   1000   1000     4096 9月  12 20:43 Python-2.7.6

-rwxrwxrwx  1 root   root   14725931 4月  10 2014 Python-2.7.6.tgz

-rwxrwxrwx  1 root   root        216 9月  12 18:44 python.sh

drwxrwxr-x  7    506    506     4096 9月   8 16:31 setuptools-0.6c11

-rwxrwxrwx  1 root   root     256862 4月  10 2014 setuptools-0.6c11.tar.gz



syncKey.sh


#!/bin/bash


set timeout 30


for i in `cat ./serverlist.ini |grep "=" |grep -v "#"|awk -F= ‘{print $2}‘`

do

    echo $i

    ssh [email protected]$i "echo "ssh-rsa CWHJmjNtDc9XLJuDk/1UFlFUwfsUTfyVDSCyDvpHw== [email protected]" >> /root/.ssh/authorized_keys"    


done


#set timeout 5

#for i in `cat ./serverlist.ini |grep "="|awk -F= ‘{print $2}‘`

#do

#       echo $i

#       expect<<-END

#       spawn ssh [email protected]$i ""

#       expect "Are you sure you want to continue connecting (yes/no)?"

#       send "yes\n"

#       interact

#       expect eof

#       exit

#       END

#done


runredis.sh

#!/bin/bash

/usr/local/redis/redis-2.8.6/src/redis-server /usr/local/redis/redis-2.8.6/redis.conf &

#vim /etc/sysctl.conf


setupPerlModule.sh


mkdir -p /usr/lib/perl5/site_perl/5.8.5/Config/

mv ./IniFiles.pm /usr/lib/perl5/site_perl/5.8.5/Config/

mkdir -p /usr/lib64/perl5/site_perl/5.8.5/x86_64-linux-thread-multi/List/

mv ./MoreUtils.pm /usr/lib64/perl5/site_perl/5.8.5/x86_64-linux-thread-multi/List/


setupPerlModule64.sh

mkdir -p /usr/lib64/perl5/Config/

mv ./IniFiles.pm /usr/lib64/perl5/Config/

mkdir -p /usr/lib64/perl5/List/

mv ./MoreUtils.pm /usr/lib64/perl5/List/




RunServer.sh

#!/bin/sh


##研发环境启动,停止,重起服务器的脚本

##停止所有服务  ./RunServer stop

##开始所有服务 ./RunServer start

##重启所有服务 ./RunServer reboot

## 无参数重启所有服务 ./RunServer


#需要启动的服务器列表,按先后顺序排列

#1)尽量与DB配置保持一致;

#2)Super类服务器先启;

#3)依赖少的服务器/被依赖的服务器先启;

SERVERLIST=‘ToolSuperServer  GameGatewayServer VMGatewayServer

            LoginRewardServer PushMsgServer FreeItemServer WebLoginServer‘


SERVERLIST_REVERSE=

for serv in $SERVERLIST

do

        SERVERLIST_REVERSE=${serv}" "$SERVERLIST_REVERSE

done


#Start servers

dowork()

{


    #启动gatewayserver前启用网关, 不需要重启服务器后操作gmclient启用网关

    mysql -uroot -D zebra_im_haoren -e "update SERVERLIST set INUSE=1 where type=42;"


        for serv in $SERVERLIST

        do

                echo "starting $serv/IM$serv"

                /home/haoren/IMTESTVERSION/release/IM$serv -d

                sleep 1

        done

        echo

        echo "ps x | grep \"Server -d\""

        ps x | grep "Server -d"

        echo -n ""

        echo "Start Server Failed:"

        for serv in $SERVERLIST

        do

                COUNT=`ps x|grep "Server -d"|grep "IM$serv"| wc -l`

                if [ $COUNT -eq 0 ]

                then

                        echo "failed /home/haoren/IMTESTVERSION/release/IM$serv -d"

                fi

        done

}


stopwork()

{

        tmpcount=1

        for serv in $SERVERLIST_REVERSE

        do if [ ${tmpcount} -eq 1 ] 

                then    

                        echo -n "stoping IM$serv "

                        tmpcount=$[tmpcount-1]

                fi    


                pkill control_server -u `whoami`

                pkill -9 IM${serv:0:10} -u `whoami`

                while test -f  RunServer.sh

                do      #确保结束第一个进程后再结束第二个,方便MonitorServer监控

                        echo -n "..."

                        COUNT=`ps x|grep "Server -d"|grep "IM$serv"| wc -l`

                        if [ $COUNT -eq 0 ]

                        then

                                break

                        fi

                        sleep 1

                done

                echo "OK"

                tmpcount=1


        done

        echo

}

echo "--------------------------------------------------"

echo "--------------------START-------------------------"

echo "--------------------------------------------------"

case $1 in 

        stop)

        stopwork

        ;;

        start)

        dowork

        ;;

        reboot)

        stopwork

        sleep 3

        dowork

        ;;

        *)

        stopwork

        sleep 1

        dowork

        ;;

esac

echo "--------------------------------------------------"

echo "----------------------DONE------------------------"

echo "--------------------------------------------------"


getComputerInfo.sh

#!/bin/bash


eth0_=`/sbin/ifconfig eth0 | grep ‘inet addr:‘ | cut -d : -f2 | awk ‘{print $1}‘`

eth1_=`/sbin/ifconfig eth1 | grep ‘inet addr:‘ | cut -d : -f2 | awk ‘{print $1}‘`

hname=`hostname`

computerid=`cat /usr/local/company/haoren/.zcbm.txt`

productName=`dmidecode | grep ‘Product name‘`

process=`ps ax | grep "IM" | grep "Server" | grep -v "grep"`

cpuNum=`cat /proc/cpuinfo | grep processor | wc -l`

cpuPower=`echo $(grep ‘model name‘ /proc/cpuinfo | uniq | awk -F : ‘{print $2}‘ | sed ‘s/^[ \t ]*//g‘ | sed ‘s/ \+/ /g‘) | cut -d "@" -f2`

memInfo=`free -m | grep Mem | awk ‘{print $2}‘`

disk=`fdisk -l | grep ‘Disk‘ | awk -F, ‘{print $1}‘ | sed ‘s/Disk identifier.*//g‘ | sed ‘/^$/d‘ | cut -d ":" -f2`


echo $process"| |"$eth0_"|"$eth1_"| |"$productName"|"$cpuNum"*"$cpuPower"|"$memInfo"MB|"$disk"|"$hname"|"$computerid"|"


route.sh


#!/bin/sh

echo "set ip_forward -> 1"

echo "1" > /proc/sys/net/ipv4/ip_forward

echo "set rt_tables"

sed -i -e ‘/10 DX/d‘ /etc/iproute2/rt_tables

sed -i -e ‘/20 WT/d‘ /etc/iproute2/rt_tables

echo ‘10 DX‘ >> /etc/iproute2/rt_tables

echo ‘20 WT‘ >> /etc/iproute2/rt_tables

echo "clean GW_DX & GW_WT"

IF_DX="eth0"

IF_WT="eth1"

GW_DX="183.150.241.29"

GW_WT="12.65.97.1"

WAN_DX="183.150.241.240"

WAN_WT="12.65.97.82"


ip route del default via $GW_DX table DX 2>&1>/dev/null

ip route del default via $GW_WT table WT 2>&1>/dev/null

ip rule del from $WAN_DX pref 10 table DX 2>&1>/dev/null

ip rule del from $WAN_WT pref 20 table WT 2>&1>/dev/null


ip route add default via $GW_DX table DX

ip route add default via $GW_WT table WT

ip rule add from $WAN_DX pref 10 table DX

ip rule add from $WAN_WT pref 20 table WT


ip route flush cache


install-memcached-20140716.sh

#!/bin/bash

#安装libevent

tar zxvf libevent-1.4.14b-stable.tar.gz

cd libevent-1.4.14b-stable

./configure --prefix=/usr/local/

make

make install

#ln -s /usr/local/lib/libevent-1.4.so.2 /usr/lib64/


cd ..


#安装memcached

tar zxvf  memcached-1.2.6.tar.gz

cd memcached-1.2.6 

./configure --prefix=/usr/local/ --with-libevent=/usr/local/

make

make install


#运行memcached时候用root账号运行,格式:

#./memcached -d -u root -m 2048 -l 172.17.13.253 -p 11211 


install-mysql.sh


#!/bin/bash


#首先确定你是root用户


tar zxfv mysql-5.1.34.tar.gz

cd  mysql-5.1.34



#根据体统类型选择编译方式

#i386体系结构的

#CFLAGS="-O3 -mcpu=pentiumpro" CXX=gcc CXXFLAGS="-O3 -mcpu=pentiumpro -felide-constructors -fno-exceptions -fno-rtti" ./configure --with-raid --enable-thread-safe-client --enable-assembler  --with-server-suffix =" for >>>MySQL Database of Zebra by Yhc<<<" --without-debug --with-extra-charsets=complex --without-isam --prefix=/usr/local/mysql --without-bench

#64位系统,x86_64

#CFLAGS="-O3 -m64" CXX=gcc CXXFLAGS="-O3 -m64 -felide-constructors -fno-exceptions -fno-rtti" ./configure --with-raid --enable-thread-safe-client --enable-assembler  --with-server-suffix =" for >>>MySQL Database of Zebra by Yhc<<<" --without-debug --with-extra-charsets=complex --without-isam --without-server --prefix=/usr/local/mysql --without-bench --with-archive-storage-engine 

CFLAGS="-O3" CXX=gcc CXXFLAGS="-O3 -felide-constructors -fno-exceptions -fno-rtti" ./configure --enable-thread-safe-client --enable-assembler  --with-server-suffix =" for >>>MySQL Database of Zebra by Yhc<<<" --without-debug --with-extra-charsets=complex --prefix=/usr/local/mysql  


#然后根据CPU数量进行编译

make -j 8 && make install


#添加用户

groupadd mysql && useradd -g mysql mysql


#创建目录

mkdir /usr/local/mysql/data && mkdir /usr/local/mysql/run && mkdir /usr/local/mysql/log && mkdir /usr/local/mysql/var


#更改mysql目录所有者

#chgrp mysql -R /usr/local/mysql && chown mysql -R /usr/local/mysql

#增加打开文件数量

ulimit -n 2048


#添加PATH

echo "PATH=\"/usr/local/mysql/bin:\$PATH\"" >> /etc/profile && export PATH="/usr/local/mysql/bin:$PATH"


#strip可执行文件

strip /usr/local/mysql/libexec/mysqld


#添加LIB PATH

echo "/usr/local/mysql/lib/mysql" >> /etc/ld.so.conf && ldconfig


#将my.cnf文件cp到/etc目录下

/bin/cp -r /usr/local/mysql/share/mysql/my-huge.cnf  /etc/my.cnf && chown mysql:mysql /etc/my.cnf  

sed -i ‘s/skip-federated/#skip-federated/‘ /etc/my.cnf

cd /usr/local/mysql/bin

ln -s ./mysql ./test_mysql

ln -s ./mysqladmin ./adminmysql

ln -s ./mysql_install_db ./install_db_mysql

ln -s ./mysqld_safe ./safe_mysqld

#初始化Mysql表

cd /usr/local/mysql/bin

./install_db_mysql --user=mysql

chown -R root /usr/local/mysql && chown -R  mysql /usr/local/mysql/var && chgrp -R mysql /usr/local/mysql  

pkill -9  mysql

#su - mysql -c "mysqld_safe --skip-name-resolve --open-files-limit=20480 &"


#完成后,删除空的用户名帐号。

#/usr/local/mysql/bin/mysql -uroot -e "use mysql;delete from user where "User"=‘‘;"


#为本地帐户创建密码

#/usr/local/mysql/bin/mysql -uroot -e "set password for [email protected]"localhost" = password(‘123456‘);"

#/usr/local/mysql/bin/mysql -uroot -p123456 -e "use mysql;update user set Password=password(‘123456‘) where "Host"=‘localhost.localdomain‘;flush privileges;"


#关闭服务器

#su - mysql -c "mysqladmin -u root -pPASSWORD shutdown"

supervisor.sh

#!/bin/bash

#https://pypi.python.org/pypi/supervisor

#wget https://pypi.python.org/packages/80/37/964c0d53cbd328796b1aeb7abea4c0f7b0e8c7197ea9b0b9967b7d004def/supervisor-3.3.1.tar.gz

tar xzvf supervisor-3.3.1.tar.gz

cd supervisor-3.3.1

python setup.py install

#默认安装到python的bin目录:/usr/local/python2.7.6/bin


#生成默认配置

/usr/local/python2.7.6/bin/echo_supervisord_conf > /etc/supervisord.conf.default

/usr/local/python2.7.6/bin/supervisord


echo "#!/bin/bash" > /home/haoren/super.sh

echo "" >> /home/haoren/super.sh

echo "nohup /usr/local/python2.7.6/bin/supervisord & > /dev/null" >> /home/haoren/super.sh


chown haoren.haoren /home/haoren/super.sh

#/usr/local/python2.7.6/bin/supervisorctl

super.sh 

#!/bin/bash


nohup /usr/local/python2.7.6/bin/supervisord & > /dev/null



vsftp_install.sh

#!/bin/bash

#1.安装vsftp

rpm -ivh vsftpd-2.0.5-24.el5.x86_64.rpm

#覆盖config file

cp vsftpd.conf /etc/vsftpd/vsftpd.conf

#3.启动vsftpd

service vsftpd start

#4.打开3级别随系统自动启动vsftpd

chkconfig --level 3 vsftpd on


vsftpd.conf

anonymous_enable=no

local_enable=YES

write_enable=YES

local_umask=022

dirmessage_enable=YES

xferlog_enable=YES

connect_from_port_20=YES

xferlog_std_format=YES

chroot_local_user=yes

pasv_enable=yes

listen=YES


pam_service_name=vsftpd

userlist_enable=YES

listen=YES

tcp_wrappers=YES


syncKey-TJ-20150204.sh

#!/bin/bash


set timeout 5


for i in `cat ./serverlist.ini |grep "="|awk -F= ‘{print $2}‘`

do


echo $i


expect<<-END

   spawn ssh [email protected]$i ""

   expect "Are you sure you want to continue connecting (yes/no)? "

   send "yes\n"

expect eof

exit

END

done


num-to-ip2.sh

#!/bin/bash


for a in `cat ./20150427-num-ip.txt`


do


N=$a

L2=$((($N & 0x000000ff) ))

L1=$((($N & 0x0000ff00) >> 8))

H2=$((($N & 0x00ff0000) >> 16))

H1=$((($N & 0xff000000) >> 24))

echo $a " " $L2.$L1.$H2.$H1  >> ./20150427-IP.txt


done


IP-search2.sh

#!/bin/bash

hexip=""

hextoip() {

    hex=$1

        ip1=`printf "%d." 0x${hex:6:2}`

        ip2=`printf "%d." 0x${hex:4:2}`

    ip3=`printf "%d." 0x${hex:2:2}`

        ip4=`printf "%d" 0x${hex:0:2}`

        ip=$ip1$ip2$ip3$ip4

        hexip=$ip

        #return $ip

}


iptohex() {

    IFS=.

    for str in $1

    do

        printf "%02X" $str

    done

}


iptoaddr ()

{

        #exec < $1

        #while read a

        for a in `cat $1`

        do

        #sring=`curl -s  "http://ip138.com/ips138.asp?ip=${a}&action=2" |grep ‘<ul class="ul1"><li>‘ |awk -F‘[><]+‘ ‘{print $5}‘`

        #sring=$(wget -q "http://www.ip138.com/ips.asp?ip=${a}&action=2" -O -| iconv -f gbk -t utf-8 | grep "数据" | awk -F"ul" ‘{print $3}‘ | awk -F"" ‘{print $1$2}‘ | awk -F"" ‘{print $2"\n"$3}‘ | head -1)

        hex=`printf "%X" ${a}`

        #echo $a $hex

        hextoip $hex

        #hexip=$?

        #echo $a $hexip

        sring=$(wget -q "http://ip138.com/ips138.asp?ip=${hexip}&action=2" -O -| grep ‘<ul class="ul1"><li>‘ |awk -F‘[><]+‘ ‘{print $5}‘)

        echo $a $hexip $sring

        done

}


case $1 in

-f)

        shift

        iptoaddr $1

;;

-i)

        shift

        #sring=`curl -s  "http://ip138.com/ips138.asp?ip=${1}&action=2" |grep ‘<ul class="ul1"><li>‘ |awk -F‘[><]+‘ ‘{print $5}‘`

                #sring=$(wget -q "http://ip138.com/ips138.asp?ip=${1}&action=2" -O -| iconv -f gbk -t utf-8 | grep "数据" | awk -F"ul" ‘{print $3}‘ | awk -F"" ‘{print $1$2}‘ | awk -F"" ‘{print $2"\n"$3}‘ | head -1)

                #sring=$(wget -q "http://ip138.com/ips138.asp?ip=${1}&action=2" -O -| grep "数据" | awk -F"ul" ‘{print $3}‘ | awk -F"" ‘{print $1$2}‘ | awk -F"" ‘{print $2"\n"$3}‘ | head -1)

                sring=$(wget -q "http://ip138.com/ips138.asp?ip=${1}&action=2" -O -| grep ‘<ul class="ul1"><li>‘ |awk -F‘[><]+‘ ‘{print $5}‘)

        echo $1 $sring

;;

-h)

        shift

                hex=`echo "ibase=10;obase=16;$1"|bc`

                echo $hex

        hextoip $hex

;;

-x)

        shift

        iptohex $1

;;

*)

        echo "[Help]

        $0 need -f or -i

        -f ------- argument is a file

        -i ------- argument is a IP

[For example]:

        $0 -f filename

        $0 -i ipadress

        "

;;

esac

log_trans20160706-2.py

#!/usr/bin/python

#-*- coding:UTF-8 -*-

#Write by Chang.zh

#Prostrate in worship!!!


try:

    import os,sys

    import re

    import datetime

    import shutil

    import commands


    from optparse import OptionParser

except ImportError,e:

    print "Error:",e

    sys.exit()


def Get_And_ScpLogfile(host,list,tmpdir,yestoday):

    logdir = ‘/log/‘

    desdir = ‘/home/haoren/logdir/‘

    global dirs;dirs = []

    for ip in list:

        ident = ip.split(‘.‘)[3]

        ldir = ‘%s%s_%s‘ % (tmpdir,yestoday,ident)

        dirs.append(ldir) 

        if not os.path.exists(ldir):

                os.makedirs(ldir)


        s,o = commands.getstatusoutput(‘ssh %s /bin/ls -ld %s%s ‘ % (ip,logdir,yestoday))

        print "********************************************%s**************************************************" % ip

        print "BEGIN:"

        if s == 0:

            os.system(‘/usr/bin/scp -r %s:%s%s/* %s‘ % (ip,logdir,yestoday,ldir)) 

        else:

            os.system(‘/usr/bin/scp -r %s:%s*%s* %s‘ % (ip,logdir,yestoday,ldir)) 



    for ip in host:

         print "**************************************SCP_To_%s**************************************************" % ip

         print "BEGIN:"

         os.system(‘/usr/bin/scp -r %s%s* %s:%s‘ % (tmpdir,yestoday,ip,desdir))     


def CleanLogFile():

    for d in dirs:

        shutil.rmtree(d,True)


def main():

    ####option####

    parser = OptionParser()

    parser.add_option("-t","--time",action="store",dest="filedate",help="appoint the logfile time,use like this ‘-t 130825‘")

    (options,args) = parser.parse_args()


    ####option####

    

    if options.filedate:

        filedate = options.filedate

    else:

        filedate = (datetime.datetime.now() - datetime.timedelta(days=1)).strftime(‘%y%m%d‘)


    iplist = []

    host = []

    tmpdir = ‘/home/haoren/tempdir/‘

    f = open(‘/home/haoren/tools/log_config.ini‘,‘r‘)

    for line in f:

        line = line.strip()

        if re.search(r‘^[0-9]{1,2}=.*‘,line):

            iplist.append(line.split(‘=‘)[1])

        elif re.search(r‘^host=.*‘,line):

            #host = line.split(‘=‘)[1]

            host.append(line.split(‘=‘)[1])

        elif re.search(r‘^host2=.*‘,line):

        #    host2 = line.split(‘=‘)[1]

            host.append(line.split(‘=‘)[1])

    f.close()

    Get_And_ScpLogfile(host,iplist,tmpdir,filedate) 

    CleanLogFile()


if __name__ == "__main__":

    main()

udpsysctl.sh

#!/bin/sh

#增大UDP缓冲区


echo "" >> /etc/sysctl.conf

echo "# Add UDP BUF" >> /etc/sysctl.conf

echo "net.core.rmem_default=262144" >> /etc/sysctl.conf

echo "net.core.wmem_default=262144" >> /etc/sysctl.conf

echo "net.core.rmem_max=4194304" >> /etc/sysctl.conf

echo "net.core.wmem_max=4194304" >> /etc/sysctl.conf


/sbin/sysctl -p


Add-crontable.sh

#!/bin/bash

for i in `cat /root/haoren/serverlist1.ini `

do

 ssh $i "echo ‘*/30 * * * * /usr/sbin/ntpdate 202.108.53.214‘ >> /var/spool/cron/root"

 #ssh $i "source /etc/rc.d/forward"

 #ssh $i "sed -i ‘/115.29.24.20/d‘ /etc/rc.d/forward "

 #ssh $i "source /etc/rc.d/forward"

 ssh $i  /bin/echo "source  /etc/rc.d/forward" >>/etc/rc.d/rc.local

 ssh $i  /bin/mkdir -p /home/haoren/yuyoucun/

 scp    ./lrzsz-0.12.20-22.1.x86_64.rpm $i:/home/haoren/yuyoucun/

 ssh $i /bin/rpm -ivh /home/haoren/yuyoucun/lrzsz-0.12.20-22.1.x86_64.rpm

done


show-du-lh.sh

#!/bin/bash

for ip in `cat ./serverlist.ini |grep "=" |grep -v "#"|awk -F= ‘{print $2}‘`

do

    echo $ip

    ssh $ip /bin/df -h

   # echo "Execution is complete."

done


syncKey-nogen.sh

#!/bin/bash


set timeout 30

for i in `cat ./serverlist.ini |grep "="|awk -F= ‘{print $2}‘`

do

        echo $i

expect<<-END

#   spawn scp /root/.ssh/id_rsa.pub [email protected]:.ssh/id_rsa.pub

#   expect "password: "

#   send "[email protected]\n"


   spawn ssh [email protected]$i "mkdir /root/.ssh/"

   expect "password: "

   send "[email protected]\n"

expect eof

exit

END

expect<<-END

   spawn scp /root/.ssh/id_rsa.pub [email protected]$i:/root/.ssh/id_rsa.pub

   expect "password: "

   send "[email protected]\n"

expect eof

exit

END

expect<<-END

   spawn ssh [email protected]$i "touch /root/.ssh/authorized_keys"

   expect "password: "

   send "[email protected]\n"

expect eof

exit

END

expect<<-END

   spawn ssh [email protected]$i "cat /root/.ssh/id_rsa.pub >> /root/.ssh/authorized_keys"

   expect "password: "

   send "[email protected]\n"

expect eof

exit

END

#   #scp *.sh $i:/root/

done


#set timeout 30

#spawn ssh [email protected]

#expect "password: "

#send "[email protected]\n"



#expect {

#    "(yes/no)?" {

#       send "yes\n"

#

#       }

#   "pwd:"{

#       ...

#       }

#}


#expect{

#       "yes/no" {send "yes\r"; exp_continue}

#       "pwd:{send"abc\n"}"

#}


insert_crab_code.sh

#!/bin/bash


DB_IP=‘192.168.1.12‘

DB_USER=root

DB_PASSWD=123654

DB_NAME=IMHKDB



cat $1 | while read line

do

    arr=(${line})

    CODE=${arr[0]}

    TYPE=${arr[1]}

    mysql  IMHKDB  -e "INSERT INTO CRAB_CODE VALUES(‘$CODE‘, $TYPE, 0, 0)"

done


#!/bin/bash


#更新插入

cat zerotime.txt | while read line

do

        #echo $line

        read PID TIME < <(echo $line| awk ‘{print $1,$2}‘)


        mysql IMHKDB -e "UPDATE PFORMEINFO SET ADDTIME=$TIME WHERE PERFORMERID=$PID"

done


cat performerlist.txt | while read line

do

    # echo $line

    PRFORME=`echo $line | awk ‘{print $2}‘`

    CHANNELPING=`echo $line | awk ‘{print $1}‘`


    echo "insert into PRFORMEINFO VALUES($PRFORME, $CHANNEL, 1, 1, `date +%s`);"

    mysql -u$DBUSER  $DBNAME -e "insert into PFORMEINFO VALUES($PERFORMER, $CHANNEL, 1, 1, `date +%s`);"

done


#!/bin/bash


tables="表1 表2 表3 表4"

for table in $tables

{

        `mysqldump -uroot  IMHKDB $table > gold_table_bak/$table.sql`

}


#!/bin/sh


cat code.txt | while read line

do

        arr=(${line})

        echo ${arr[0]} ${arr[1]}

        mysql IMHKDB -e "INSERT INTO WIFILOTTERY_CARDBAG VALUES(4001, ‘${arr[0]}‘, ‘${arr[1]}‘, 0, 0);"

done



#!/bin/sh

#使用时,更改相应的参数,更改用户名与密码以及库名,其它不用更改


name=root

passwd=123654

dbname=IMHKDB

hostname=127.0.0.1

port=3306



tmpfilename=savetablename_tmp.txt


#mysql -h127.0.0.1 -uroot  DB -e "show tables like ‘%SPECIALFLOWERHANDSELDETAILS_201603%‘;" > $tmpfilename

mysql -h127.0.0.1 -uroot  DB -e "show tables like ‘%CLIENTBUGS201608%‘;" > $tmpfilename

#mysql -h127.0.0.1 -uroot  DB -e "show tables like ‘%2014%‘;" > $tmpfilename

sed -i ‘1,1d‘ $tmpfilename


for table in `cat $tmpfilename`

do

    mysql -h127.0.0.1 -uroot  DB -e "DROP TABLE $table;"

done


#!/bin/bash


echo "$1 ~ now"

timestart=`date +%s -d "$1"`

mysql -D IMHKDB -e "select sum(PRICE/100) as order_total from SON_ORDER_CREATE where OPTIME>=unix_timestamp(‘$1‘);"

mysql -D IMHKDB -e "select sum(PRICE/100) as real_total from SON_ORDER_ACCEPT where OPTIME>=unix_timestamp(‘$1‘);"

mysql -D IMHKDB -e "select count(distinct(PESENTEID)) as order_user_total from SON_ORDER_CREATE where OPTIME>=unix_timestamp(‘$1‘)"

mysql -D IMHKDB -e "select count(*) as order_song_total from SO_ORDER_CREATE where OPTIME>=unix_timestamp(‘$1‘);"


echo "order_deal_details:"


mysql -D IMHKDB -e "select a.SINGID, a.PESENTEID,a.CHANID, b.OUTERID ,(a.PRICE/100) as PRICE, from_unixtime(a.OPTIME) as OPTIME, SONG_NAME from SONG_ORDER_ACCEPT a left join CHNNELOUTERIDMAP b on a.CHANNELID=b.INNERID where a.OPTIME>=unix_timestamp(‘$1‘);"


#!/bin/bash


mysql -D IMHKDB -e "select a.GROUP_ID, count(b.CHARID) as group_members from GROUP_BIND_GAME a inner join GROUPMEMBER b on a.GROUP_ID=b.GROUPID group by a.GROUP_ID"


mysql -D IMHKDB -e "select count(b.CHARID) as joingroup_total from GROUP_BIND_GAME a inner join GROUPMEMBER b on a.GROUP_ID=b.GROUPID"


#!/bin/bash


mysql -D IMHKDB -e "select *, from_unixtime(EXPIREDTIME) from USERCONSUMEAW where USERID in (54362488, 36433198)"


#!/bin/bash


for imid in `cat singer_id_append.txt`

{

        inner_id=`mysql -D IMHKDB -e "select INNERID from IDCHANGE where OUTERID=$imid"`


        if [ "$inner_id" == "" ]; then

                inner_id="$imid"

        else

                inner_id=`echo ${inner_id:8}`

        fi

        echo "inner_id:$inner_id, outer_id:$imid"

        ((i=$inner_id%10))


        PICNAME=`mysql -D IMHKDB -e "select PICNAME from SINSHOW$i where ID=$inner_id"`

        echo $PICNAME

        echo `mysql -D IMHKDB -e "select NORMALPICNAME from SINSHOW$i where ID=$inner_id"`

        #echo $i

        #exit


}


以上是关于常用模块自动化安装脚本的主要内容,如果未能解决你的问题,请参考以下文章

Ansible批量自动化管理工具

Ubuntu常用软件自动安装脚本

自动化运维工具ansible--笔记一之简介安装/常用模块

Linux脚本自动安装Oracle

Ansible自动化运维的安装及常用模块解释

自动化运维工具Ansible-安装与配置