要求剖析:

由于局域网内主机多,VLAN也多,为常事能分晓在线主机的数目,编写脚本以查看在线主机。

Ali云主机一键安装lamp,lnmp,自动安装脚本,由Ali云主机分享

本文实例讲述了php处理nginx虚拟主机shell脚本,分享给大家供我们参照他事他说加以考查。具体剖析如下:

     1、ssh公钥拷贝,提供无密码管理。

作用是:主机在线显得米红,主机离线展现海螺红结果。

一键安装包下载地址:点击下载

运用php作为shell脚本是一件很方便的事情。道理当然是那样的,大家得以动用php脚本来管理nginx虚拟主机,上边是笔者的 脚本 文件供各位参照他事他说加以调查:

     2、批量协助举行hosts文件到多台主机。

用法:./ping IP段    例如:./ping 192.168.0

1、Ali云分享的一键安装lamp,lnmp,此安装托特包含的软件及版本为:

复制代码 代码如下:

     3、批量修改主机名。

复制代码 代码如下:

复制代码 代码如下:

#!/usr/bin/php -q
<?php
 
start: fwrite(STDOUT,”===========Vhost Script===========\n”);
fwrite(STDOUT,”= Choose an operation \n”);
fwrite(STDOUT,”= 1.Create 2.Delete 3.Exit\n”);
fwrite(STDOUT,”==================================\n”);
$operate = trim(fgets(STDIN));
if ( $operate == 1  ){
fwrite(STDOUT,”Please Enter a  Domain Name:”);
$domain = trim(fgets(STDIN));
$path = “/home/sites/{$domain}”;
$nginx_conf = “/etc/nginx/sites/{$domain}”;
$nginx_template = “/etc/nginx/template/site_conf”;
$apache_conf = “/etc/httpd/conf/httpd.conf”;
$conf_str = “”;
 
//变量开始化
 
if( file_exists($path ) ) exit (“Domain Existed!\n”);
else mkdir($path,0700);
if(file_exists($nginx_conf)) exit (“Nginx Config file existed!\n”);
else {
    $conf_str = file_get_contents( $nginx_template );
}
 
//目录检查测试及安排文件拷贝
 
Shell交互批量改变主机名的不二等秘书诀,shell脚本实现批量测试局域网主机是不是在线。eval ( “\$conf_str = \”$conf_str\”;” );
 
$succes = file_put_contents($nginx_conf,$conf_str);
if( !$succes ) exit (“Write Config File Fauile!”);
else echo “Create Vhost success!\n”;
goto start;
//写入配置文件
}
else if ($operate == 2){
    $confs_dir = dir(“/etc/nginx/sites”);
    $confs_list = array();
    $count = 0;
    while ( false !== ( $conf_file = $confs_dir->read() ) ){
        if( $conf_file == “.” ) continue;
        if( $conf_file == “..” ) continue;
        if ( is_file( $confs_dir->path .”/”. $conf_file) ) {
            $confs_list[$count++] =  $conf_file;
        }
    }
    echo “Select a site by number which to delete:\n”;
    if( count( $confs_list ) >0 )
        foreach ( $confs_list as $k=>$v ){
            echo “{$k}. $v\n”;
        }
    $index = trim(fgets(STDIN));
    if( in_array ( $index,array_keys( $confs_list ) ) ){
        copy(  $confs_dir->path .”/”.
$confs_list[$index],”/etc/nginx/backup/{$confs_list[$index]}” );
        unlink ( $confs_dir->path .”/”. $confs_list[$index] );
        exec(“tar -zcf  /home/sites/{$confs_list[$index]}.tar.gz
/home/sites/”.$confs_list[$index] );
        exec(“rm -Rf /home/sites/”.$confs_list[$index]);
    }
    //删除内定铺排,并保留备份
}
else if( $operate == 3 ) {
    exit;
}
else {
 exit (“No Operation Selected!”);
}
?>

实现:

#!/bin/bash
NETWORK=$1
for HOST in $(seq 1 254)
do
        ping -c 1 -w 1 $NETWORK.$HOST &>/dev/null && result=0 ||
result=1
                if [ “$result” == 0 ];then
                        echo -e “\033[32;1m$NETWORK.$HOST is up!
\033[0m”
                else
                        echo -e “\033[;31m$NETWORK.$HOST is
down!\033[0m”
                fi
done

nginx:1.0.15、1.2.5、1.4.4

下边是nginx的布置模版

首先编辑一份用于共同到多台主机的hosts文件

您大概感兴趣的篇章:

  • Ali云主机一键安装lamp、lnmp蒙受的shell脚本分享
  • Shell脚本达成自动修改IP、主机名等效能分享
  • NTFS权限设置防止止通过webshell遍历主机目录
  • nginx虚拟主机防webshell完美版
  • 虚拟主机封闭扼杀webshell提权!!!!!!!!!!
  • 运用PowerShell获取当前主机内部存款和储蓄器使用量和总的数量的方法
  • PowerShell脚本完成检查评定网络内主机项目
  • php管理nginx虚拟主机shell脚本实例
  • Shell交互批量更动主机名的措施

apache:2.2.22、2.4.2

复制代码 代码如下:

vi /etc/hosts
192.168.0.1 server1
192.168.0.2 server2
192.168.0.3 server3
192.168.0.4 server4
192.168.0.5 server5
192.168.0.6 server6
192.168.0.7 server7
192.168.0.8 server8
192.168.0.9 server9
192.168.0.10 server10

mysql:5.1.73、5.5.35、5.6.15

server {
listen 80;
server_name {$domain};
access_log /var/log/nginx/{$domain}_access_log;
error_log /var/log/nginx/{$domain}_error_log;
root {$path};
#不记录对站点Logo访问
location = /favicon.ico {
log_not_found off;
access_log off;
}
#不记录对robots.txt的走访
location = /robots.txt {
allow all;
log_not_found off;
access_log off;
}
location = / {
try_files @proxy;
}
location / {
index index.htm index.html index.php;
try_files \$uri @proxy;
}
#匹配html
location ~* \.(html|htm)$ {
expires 30s;
gzip off;
add_header Content-Encoding gzip;
try_files \$uri \$uri/
/wp-content/cache/supercache/\$http_host/\$request_uri/index.html.gz
@proxy;
}
#分外图片、脚本文件等
location ~*
\.(jpe?g|gif|png|ico|css|js|flv|swf|avi|zip|rar|svg|tgz|gz|rar|bz2|doc|xls|exe|pdf|ppt|txt|tar|mp3)$
{
expires 30d;
}
#传递给apache
location @proxy {
index index.htm index.html index.php;
proxy_pass   ;
include /etc/nginx/proxy.conf;
}
}

接下来编辑shell脚本:

php:5.3.18、5.4.23、5.5.7

期待本文所述对我们的php程序设计有所帮忙。

vi changename.sh
#!/bin/bash
# This is a shell script to change hostname
# version 0.1
# Created in 2015.8.11
# Creator Edison
export PATH=$PATH
export USER=root
export SNAMEPRE=server
export PASSWD=test01  #定义密码
for i in {1..10};
do /usr/bin/expect << EOF   ##这里用到了expect完成了确认yes和密码输入交互
spawn ssh-copy-id -i /root/.ssh/id_rsa.pub $USER@$SNAMEPRE$i
expect {
"(yes/no)?" {send "yes\r";exp_continue}
"password:" {send "$PASSWD\r"}
}
interact
expect eof
EOF
ssh $USER@$SNAMEPRE$i "sed -i s/^HOST.*/HOSTNAME=$SNAMEPRE$i/ /etc/sysconfig/network";
scp /etc/hosts $USER@$SNAMEPRE$i:/etc/hosts;
done;

php扩展:memcache、Zend Engine/ OPcache

你恐怕感兴趣的篇章:

  • 阿里云主机一键安装lamp、lnmp碰到的shell脚本分享
  • Shell脚本完成全自动修改IP、主机名等作用分享
  • NTFS权限设置以幸免通过webshell遍历主机目录
  • nginx虚拟主机防webshell完美版
  • shell脚本完成批量测试局域网主机是不是在线
  • 虚拟主机封闭扼杀webshell提权!!!!!!!!!!
  • 选择PowerShell获取当前主机内部存款和储蓄器使用量和总数的章程
  • PowerShell脚本达成检查实验网络内主机项目
  • Shell交互批量更动主机名的形式

此地运用了expect实现机关交互确认和密码输入。

ftp:(yum/apt-get安装)

Expect是贰个免费的编制程序工具语言,用来落到实处自动和交互式职务进展通讯,而不须要人的干预。Expect的小编Don
Libes在1987年
伊始编写Expect时对Expect做有如下概念:Expect是八个用来兑现全自动交互成效的软件套件
(Expect [is a] software suite for automating interactive
tools)。使用它系统管理员的能够创设脚本用来贯彻对命令或程序提供输入,而这一个命令和顺序是期待从巅峰(terminal)得到输入,一般的话那一个输入都须要手工业输入进行的。

phpwind:8.7 GBK

总结

phpmyadmin:4.1.8

如上便是那篇文章的全部内容了,希望本文的源委对大家的读书也许职业能推动一定的增派,如若友谊大家能够留言沟通。

2、请使用新型的一键安装包脚本安装,以前老版本都留存bug,会促成安装卓殊以及安装的境遇杂乱。

您可能感兴趣的稿子:

  • Ali云主机一键安装lamp、lnmp情状的shell脚本分享
  • Shell脚本完成活动修改IP、主机名等功能分享
  • NTFS权限设置以幸免通过webshell遍历主机目录
  • nginx虚拟主机防webshell完美版
  • shell脚本完结批量测试局域网主机是或不是在线
  • 虚拟主机封闭扼杀webshell提权!!!!!!!!!!
  • 运用PowerShell获取当前主机内部存款和储蓄器使用量和总数的艺术
  • PowerShell脚本达成检查测试互联网内主机项目
  • php管理nginx虚拟主机shell脚本实例

3、推行一键安装包(./install.sh),会自动清理在此之前一键安装包安装过的条件。

假若您已经安装过一键安装包,再度施行安装,如果有至关心重视要数据,请自行备份/alidata目录。

4、一键安装包会将软件设置在/alidata目录下。

一旦你的系统不存在数据盘,则一键安装包会将软件设置到系统/alidata目录下。

假设你的连串设有数据盘,且还一向不格式化挂载数据盘。则一键安装包会自动帮你格式化第一块数据盘,并挂载在/alidata目录下。

假若您的系统存在数据盘,且已格式化并挂载了第一块数据盘。一键安装包会将率先块数据盘再一次挂载到/alidata目录下,并不影响你事先的挂载目录的应用。比方下图所示,安装前,已经挂载了mnt目录。安装后,一键安装包再一次挂载/alidata目录。

金沙注册送58,5、怎么着卸载一键安装包?

复制代码 代码如下:

chmod 777 -R sh-1.3.0/

cd sh-1.3.0/

./uninstall.sh

你大概感兴趣的文章:

  • Shell脚本实现自动修改IP、主机名等职能分享
  • NTFS权限设置以制止通过webshell遍历主机目录
  • nginx虚拟主机防webshell完美版
  • shell脚本达成批量测试局域网主机是或不是在线
  • 虚拟主机封杀webshell提权!!!!!!!!!!
  • 采用PowerShell获取当前主机内部存款和储蓄器使用量和总数的法子
  • PowerShell脚本达成检验网络内主机项目
  • php管理nginx虚拟主机shell脚本实例
  • Shell交互批量更改主机名的措施

相关文章

网站地图xml地图