apache运行shell脚本

  • 时间:
  • 浏览:1070
  • 来源:成都艾邦软件开发
Shell脚本——个人分享案例

本人最近在复习Shell脚本想着以后往脚本大牛方向闯闯然后就写了个apache服务的脚本
主要的功能就是开启关闭重启重载状态。
虽说可以用systemctl来查看比这个方便但是我一开始想写的是nginx的脚本因为是才安装完的系统又不想编译安装以及联网索性就用apache来替代了不过这个脚本nginx也通用只要把里面的参数和变量改一下就行毕竟是为nginx写的apache只是这个脚本的替代品。

整体的思路是这样的判断服务的存在可以用/etc/httpd/run/httpd.pid 和 名称为httpd的进程进行判断存在的话那httpd服务就是启动的反之不存在就没有启动语句的话用了函数方便进行调用if语句进行判断until进行小循环以及case语句进行输入值返回结果

代码如下

#! /bin/bash#varsservicehttpdhttpd_install/etc/httpdhttpd_pid$httpd_install/run/httpd.pid#function groupsfunction start {if [ -f $httpd_pid ] [ ps -aux | grep httpd | wc -l -ge 6 ]thenecho httpd service .......... [开启状态]elif [ -f $httpd_pid ] || [ ps -aux | grep httpd | wc -l -lt 6 ]thenecho httpd service .......... [关闭状态]echo httpd service .......... [正在开启中]systemctl start $service /dev/nullif [ $? -eq 0 ]thenecho httpd service .......... [开启成功]elseecho httpd service .......... [开启失败]fifi}function stop {until [ -f $httpd_pid ]doecho 服务没有启动请执行 start 选项breakdoneif [ -f $httpd_pid ] [ ps -aux | grep httpd | wc -l -ge 6 ]thenecho httpd service .......... [正在关闭]systemctl stop $service /dev/nullif [ $? -eq 0 ]thenecho httpd service .......... [关闭成功]elseecho httpd service .......... [关闭失败]fifi}function reload {if [ ! -f $httpd_pid ] [ ps -aux | grep httpd | wc -l -lt 6 ]thenecho 服务没有启动请执行 start 选项elif [ -f $httpd_pid ] [ ps -aux | grep httpd | wc -l -ge 6 ]thenecho httpd service .......... [正在重新载]systemctl reload $service /dev/nullif [ $? -eq 0 ]thenecho httpd service .......... [重载成功]elseecho httpd service .......... [重载失败]fifi}function restart {if [ ! -f $httpd_pid ] [ ps -aux | grep httpd | wc -l -lt 6 ]thenecho httpd service .......... [关闭中]echo httpd service .......... [重启中]systemctl restart $service /dev/nullif [ $? -eq 0 ];thenecho httpd service .......... [重启成功]elseecho httpd service .......... [重启失败]fielif [ -f $httpd_pid ] [ ps -aux | grep httpd | wc -l -ge 6 ] thenecho httpd service .......... [关闭中]echo httpd service .......... [重启中]systemctl restart $service /dev/nullif [ $? -eq 0 ];thenecho httpd service .......... [重启成功]elseecho httpd service .......... [重启失败]fifi}function status {if [ ! -f $httpd_pid ] [ ps -aux | grep httpd | wc -l -lt 6 ]thenecho httpd service .......... [关闭中]elif [ -f $httpd_pid ] [ ps -aux | grep httpd | wc -l -ge 6 ]thenecho httpd service .......... [开启中]fi}#input_valuescase $1 in start)start;;stop)stop;;reload)reload;;restart)restart;;status)status;;*)echo 请输入 start | stop | reload | restart | status 这几个选项;;esac

如果大家觉得能再优化优化的话欢迎在评论区留言哟

首先先创建一个文件为test.sh执行此文件的方法有以下四种方式

1、下载apache安装包

2、./test.sh必须chmod赋予执行权限

3、sourse test.sh

4、[shell] test.sh  shell类型可以为bash、dash、tcsh、csh、sh等

web服务器需要配置httpd 

httpd-2.2.17.tar.gz下载链接

/project/mapn/source/apache/httpd-2.2.17.tar.gz

原下载网站/projects/mapn/files/source/apache/httpd-2.2.17.tar.gz/download?use_mirrorexcellmediadownloadfailedmirrorjaist.dl.sourceforge.net

apache脚本如下

# !/bin/bash
cd /root/soft
tar zxvf httpd-2.2.17.tar.gz -C /usr/src  /dev/null (这里的/dev/null为黑洞设备意思是把语句输出结果放进黑洞不显示出来也可以自定义文件路径)
cd /usr/src
cd httpd-2.2.17
./configure --prefix/usr/local/httpd --enable-so --enable-rewrite --enable-charset-lite --enable-cgi /dev/null
make /dev/null
make install /dev/null
cd
ln -s /usr/local/httpd/bin/* /usr/local/bin
cp /usr/local/httpd/bin/apachectl /etc/init.d/httpd
echo # chkconfig: 35 84 21
# description:hehe /etc/init.d/httpd
echo ServerName www.benet.com /usr/local/httpd/conf/httpd.conf
apachectl -t /root/桌面/error.log
echo 192.168.1.1  www.benet.com /etc/hosts
chkconfig --add httpd
service httpd stop /dev/null
service httpd start /dev/null
firefox

以上代码中的重定向符号是不一样的那么总结为

1、重定向输入

  使用符号通过重定向输入可以使一些交互式操作过程能够通过读取文件来执行默认设备是键盘文件编号为0所以也可以写成 0

2、重定向输出

  1正常输出使用“”和“”符号分别用于覆盖或追加文件默认设备是显示器文件编号为1所以也可以写成1或1

  2错误输出错误重定向指的是将执行命令过程中出现的错误信息如选项参数错误等保存在制定的文件而不是直接显示在屏幕上。错误重定向使用“2”或“2”操作符

  3混合输出“”综合了正常输出和错误输出两种方法这种方法比较常用。