`

很经典的一段shell 代码

阅读更多

#!/bin/bash

APP_NAME=agent

DIST_TAR_NAME=agent.tgz

 

WORK_PATH=`pwd`

 

TMPDIR=$WORK_PATH/mytmp

 

BASE_PATH=/usr/local/sa/agent

 

NAKED_SH=$TMPDIR/install-nk.sh

 

INSTALL_LOG=$BASE_PATH/install.log

 

CRON_FILE_TMP_1=/tmp/cron.tmp.1

CRON_FILE_TMP_2=/tmp/cron.tmp.2

 

STOP_AGENT=/usr/local/sa/agent/stop.sh

OLD_AGENT=/usr/local/secu/tconfscan

 

 

makedir ()

{

        if [ ! -d $1 ]; 

        then

                mkdir -p $1

        fi

}

 

untarfile()

{

        if [ ! -d $2 ]; 

        then

                mkdir -p $2

        fi

 

        if [ -f /bin/tar ];then

                tar xzfv $1 -C $2

        else

                ttars xzfv $1 -C $2

        fi

 

        if [ $? != 0 ];

        then

                echo "tar -xzvf $1 -C $2 ......[no],abort!" >> $INSTALL_LOG;

#               exit -1;

        fi

}

 

crontab -l -u root > $CRON_FILE_TMP_1

grep -Evw 'aide|secu-tcs-agent' $CRON_FILE_TMP_1 > $CRON_FILE_TMP_2

crontab $CRON_FILE_TMP_2 -u root

 

ps aux |grep secu-tcs-agent| grep grep -v |awk '{print $2}' > /tmp/sagent.pid

while read pid

do

        kill -9 ${pid}

done < /tmp/sagent.pid

 

if [ -d "$OLD_AGENT" ];then

        rm -rf /usr/local/secu/tconfscan 

fi

 

if [ -f "$STOP_AGENT" ];then

        bash $STOP_AGENT

fi

 

if [ ! -d $BASE_PATH ];

then

        makedir $BASE_PATH

        chmod 755 $BASE_PATH -R

        makedir $BASE_PATH/secubase

        makedir $BASE_PATH/plugins

fi

 

##############check unzip

FIND_UNZIP=`ls /usr/bin/unzip|wc -l`

if [ "$FIND_UNZIP" -eq "0" ]

then

        cp -r $WORK_PATH/unzip /usr/bin/unzip

        chmod +x /usr/bin/unzip

fi

 

echo "-------------------begin install-------------------" >> $INSTALL_LOG

 

echo "[extracting file] ......" >> $INSTALL_LOG

 

untarfile "$WORK_PATH/$DIST_TAR_NAME" $TMPDIR

 

chmod +x ${NAKED_SH}

 

${NAKED_SH}

 

 

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

echo "[install succ] at time:[`date`]" 

echo "                   dir:[$BASE_PATH]"

echo "                  pack:[$DIST_TAR_NAME]"

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

echo "[RESULT] sec-agent install OK"

分享到:
评论

相关推荐

    shell编程简单例子代码

    本文将深入探讨"shell编程简单例子代码"这一主题,结合在Ubuntu Linux下调试通过的实例,为你提供一个全面的入门指南。 首先,我们需要了解什么是Shell。Shell是操作系统提供的一个命令行界面,用户可以通过它与...

    实验一shell实验报告

    实验一的焦点在于熟悉Linux操作系统的基本命令和Shell编程。Shell编程是Linux系统中的一种脚本语言,用于自动化执行一系列命令,提升系统管理效率。在这个实验中,学生将学习以下核心知识点: 1. **Linux常用命令**...

    bash shell 源代码

    bash shell,全称为Bourne-Again SHell,是GNU项目的一部分,由自由软件基金会的创始人理查德·马修·斯托曼(Richard Stallman)发起,是Unix/Linux操作系统中最常用的命令行解释器。这个源代码包包含了bash 4.2...

    svn+maven+shell自动发布代码

    总结起来,"svn+maven+shell自动发布代码"是一种高效且可靠的自动部署解决方案,它利用了SVN的版本控制,Maven的构建管理,以及Shell的自动化能力,大大简化了传统的手动部署流程,提高了开发团队的工作效率。

    俄罗斯方块-shell源码

    " 这段描述告诉我们,这个项目提供了完整的Shell语言实现的俄罗斯方块游戏源代码,并且源码中包含有注释。注释是理解代码的重要辅助工具,对于初学者或者想要研究的人来说非常有价值。被称作“经典”,意味着这可能...

    upx shell 源代码

    UPX(Ultimate Packer for eXecutables)是一款著名的可执行文件打包工具,它能够将程序压缩到...如果你想要深入了解UPX的使用,或者想创建自己的可执行文件打包工具,这个"UPX Shell"的源代码会是一个很好的学习资源。

    linux shell脚本攻略源代码

    `linux shell script`这个压缩文件很可能包含了多个示例脚本,每个脚本可能涵盖了一个或多个特定的主题,如文件操作、进程管理、网络通信等。通过阅读和分析这些源代码,你可以更深入地理解Shell脚本的用法,并学会...

    Windows Shell扩展编程完全指南.vc源代码

    本指南基于C++语言,通过提供一系列的vc源代码示例,帮助程序员深入理解和实践Windows Shell扩展的开发。 Shell扩展主要包括以下几种类型: 1. **上下文菜单扩展(Context Menu Extensions)**:当用户在Windows资源...

    ASPX一句话shell客户端

    当一个ASPX页面被恶意利用,攻击者可以插入一段能够执行任意系统命令的代码,这就是所谓的“一句话shell”。 ASPX一句话shell通常是一小段能够通过HTTP请求触发服务器端代码执行的代码。这种shell允许攻击者远程...

    Linux shell 脚本攻略源代码第二版

    函数是Shell脚本的另一个重要概念,它们允许你封装可重用的代码段。通过定义和调用函数,可以提高脚本的可读性和维护性。书中的示例会展示如何声明、传递参数和返回值。 条件测试是控制流程的关键部分。在Shell脚本...

    shell监控源代码

    - **循环语句**:如`for`、`while`循环,用于重复执行一段代码。 - **函数**:创建可重用的代码块,提高脚本的模块化和可维护性。 - **命令行参数**:脚本可以接收命令行参数,用于定制脚本的行为。 2. **系统...

    linux操作系统+shell程序设计+实验报告及代码和操作过程+交流学习

    在本次Linux操作系统与Shell程序设计的实验中,我们主要学习了如何使用Bash shell编写脚本,以及如何通过shell命令实现系统级别的操作。实验涵盖了别名文件创建、基本的算术运算、用户与组管理、文件属性判断等多个...

    linux经典shell脚本

    ### Linux经典Shell脚本知识点详解 #### 一、使用awk去除C语言注释 在Linux环境中,使用awk脚本来处理文本或代码是非常常见的做法。在本案例中,我们看到一个awk脚本,其目的是用于去除C语言源代码中的注释。 **...

    shell程序实验报告

    - **`do` 循环结构**:`do`语句提供了一种循环机制,可以在满足特定条件时重复执行一段代码块。在本实验中,`do`循环被用来持续询问用户是否继续备份其他目录,直到用户选择退出。 - **`if...fi` 条件判断**:这是...

    Shell脚本学习教程PDF版

    条件语句(如if-else)用于根据不同的条件执行不同的代码块,而循环结构(如for、while)则用于重复执行某段代码。函数是可重用的代码块,有助于提高脚本的组织性和可读性。 在Shell脚本中,输入输出重定向和管道是...

    shell编程入门教程

    在 shell 编程中,用户可以使用 chmod 命令来给脚本文件加上可执行权限,然后执行该脚本, shell 会 fork 一个子进程并调用 exec 执行该脚本,exec 系统调用应该把子进程的代码段替换成该脚本的代码段,并从它的 _...

    shell学习,第一章

    - 局部变量:仅在当前代码段内可用,使用`local`修饰。 - 环境变量:对当前shell进程及其子进程可见,通过`export`设置。 - 位置变量:从`$0`到`$n`代表脚本文件名和传入的参数。 6. **特殊变量**:如 `${0}` ...

    嵌入式实验, ,实验一:shell 脚本程序设计.doc

    Shell脚本是Linux或Unix系统中用于自动化任务的一种强大工具。在实验一中,你需要掌握以下知识点: 1. **Shell基础**:了解Bash Shell的基本语法,如变量赋值、条件语句(if-else)、循环(for, while)和函数定义...

    shell脚本语言.pdf

    * Shell 函数可以用来封装一段代码 Shell 函数参数: * Shell 函数参数是指在 Shell 中的函数参数 * Shell 函数参数可以用来传递参数给函数 Shell 输入输出重定向: * Shell 输入输出重定向是指在 Shell 中的...

Global site tag (gtag.js) - Google Analytics