博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
一个shell脚本
阅读量:5095 次
发布时间:2019-06-13

本文共 1428 字,大约阅读时间需要 4 分钟。

  之前学过shell脚本,但是工作中一直没有用到,今天由于要搞一个定时任务,为了防止重复启动php脚本,就需要写一个shell,

学到的东西终于用到了,用记住的那些知识点写了这个脚本,在此记录备注说明一下,希望能够帮助大家回忆起一些相关知识点。

 下面是脚本内容:

*************************************

#!/bin/bash //声明要使用哪个shell

下面是备注文件 这可是一个好习惯奥

# 运行第三方分享脚本shell 

# Copyright (c) 2012, Jiehun.com.cn Inc. All Rights Reserved
# @author
# @date 2012-7-18
# @version 1.0

//设置相关变量

filePath='/home/zhanghaozheng/workspace/iHapN/trunk/tools/cooperation/CrondShare.php'
scriptName='CrondShare.php'
logFile='/tmp/crond_share.log'
sitePath='/home/zhanghaozheng/jiehun'
declare -i logFileLines=0 //定义整形变量
#文件最大行数 超过则覆盖
declare -i maxFileLine=2000 //定义整形变量

//接收执行sh传过来的参数

#最大行数允许参数控制
if [ -n "$1" ];then //判断参数是否为空
    maxFileLine=$1
fi

//定义函数

function getLogFileLines()
{
    file=$1 //接受参数1
    if [ -f "$file" ];then //判断文件是否存在
        echo `cat "$file"|wc -l` //获取文件行数
    else
        echo 0
    fi 
}
logFileLines=`getLogFileLines "$logFile"`; //调用函数并接收返回值赋给logFileLines
#如果脚本已经启动就不再启动
s=`ps aux | grep "$scriptName"`; //在进程中查找脚本名称来确定脚本进程是否启动
mark=`echo $s | grep "/usr/bin/php"` //确认是否是php进程
query='cd "$sitePath" && /usr/bin/php tools/start.php CrondShare="$filePath" -d'
if [ "$mark" == "" ]; then  //如果进程不存在则启动进程
        #防止记录文件过大
        if [ "$logFileLines" -gt "$maxFileLine" ]; then  比较两个参数大小
               eval $query  > "$logFile"  2>&1  //执行字符串
        else
               eval $query  >> "$logFile"  2>&1 //执行字符串
        fi
else
        echo 'script is runing' >> "$logFile"
fi

exit 0 //正常执行后并退出

 

转载于:https://www.cnblogs.com/azheng007/archive/2012/07/18/2597933.html

你可能感兴趣的文章
Jsp抓取页面内容
查看>>
大三上学期软件工程作业之点餐系统(网页版)的一些心得
查看>>
可选参数的函数还可以这样设计!
查看>>
[你必须知道的.NET]第二十一回:认识全面的null
查看>>
Java语言概述
查看>>
关于BOM知识的整理
查看>>
android中自定义下拉框(转)
查看>>
Android设计模式源码解析之外观模式(Facade)
查看>>
使用word发布博客
查看>>
面向对象的小demo
查看>>
微服务之初了解(一)
查看>>
GDOI DAY1游记
查看>>
收集WebDriver的执行命令和参数信息
查看>>
数据结构与算法(三)-线性表之静态链表
查看>>
mac下的mysql报错:ERROR 1045(28000)和ERROR 2002 (HY000)的解决办法
查看>>
Hmailserver搭建邮件服务器
查看>>
django之多表查询-2
查看>>
BULK INSERT, 实战手记:让百万级数据瞬间导入SQL Server
查看>>
快速幂
查看>>
改善C#公共程序类库质量的10种方法
查看>>