#!/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编程简单例子代码"这一主题,结合在Ubuntu Linux下调试通过的实例,为你提供一个全面的入门指南。 首先,我们需要了解什么是Shell。Shell是操作系统提供的一个命令行界面,用户可以通过它与...
实验一的焦点在于熟悉Linux操作系统的基本命令和Shell编程。Shell编程是Linux系统中的一种脚本语言,用于自动化执行一系列命令,提升系统管理效率。在这个实验中,学生将学习以下核心知识点: 1. **Linux常用命令**...
bash shell,全称为Bourne-Again SHell,是GNU项目的一部分,由自由软件基金会的创始人理查德·马修·斯托曼(Richard Stallman)发起,是Unix/Linux操作系统中最常用的命令行解释器。这个源代码包包含了bash 4.2...
总结起来,"svn+maven+shell自动发布代码"是一种高效且可靠的自动部署解决方案,它利用了SVN的版本控制,Maven的构建管理,以及Shell的自动化能力,大大简化了传统的手动部署流程,提高了开发团队的工作效率。
" 这段描述告诉我们,这个项目提供了完整的Shell语言实现的俄罗斯方块游戏源代码,并且源码中包含有注释。注释是理解代码的重要辅助工具,对于初学者或者想要研究的人来说非常有价值。被称作“经典”,意味着这可能...
UPX(Ultimate Packer for eXecutables)是一款著名的可执行文件打包工具,它能够将程序压缩到...如果你想要深入了解UPX的使用,或者想创建自己的可执行文件打包工具,这个"UPX Shell"的源代码会是一个很好的学习资源。
`linux shell script`这个压缩文件很可能包含了多个示例脚本,每个脚本可能涵盖了一个或多个特定的主题,如文件操作、进程管理、网络通信等。通过阅读和分析这些源代码,你可以更深入地理解Shell脚本的用法,并学会...
本指南基于C++语言,通过提供一系列的vc源代码示例,帮助程序员深入理解和实践Windows Shell扩展的开发。 Shell扩展主要包括以下几种类型: 1. **上下文菜单扩展(Context Menu Extensions)**:当用户在Windows资源...
当一个ASPX页面被恶意利用,攻击者可以插入一段能够执行任意系统命令的代码,这就是所谓的“一句话shell”。 ASPX一句话shell通常是一小段能够通过HTTP请求触发服务器端代码执行的代码。这种shell允许攻击者远程...
函数是Shell脚本的另一个重要概念,它们允许你封装可重用的代码段。通过定义和调用函数,可以提高脚本的可读性和维护性。书中的示例会展示如何声明、传递参数和返回值。 条件测试是控制流程的关键部分。在Shell脚本...
- **循环语句**:如`for`、`while`循环,用于重复执行一段代码。 - **函数**:创建可重用的代码块,提高脚本的模块化和可维护性。 - **命令行参数**:脚本可以接收命令行参数,用于定制脚本的行为。 2. **系统...
在本次Linux操作系统与Shell程序设计的实验中,我们主要学习了如何使用Bash shell编写脚本,以及如何通过shell命令实现系统级别的操作。实验涵盖了别名文件创建、基本的算术运算、用户与组管理、文件属性判断等多个...
### Linux经典Shell脚本知识点详解 #### 一、使用awk去除C语言注释 在Linux环境中,使用awk脚本来处理文本或代码是非常常见的做法。在本案例中,我们看到一个awk脚本,其目的是用于去除C语言源代码中的注释。 **...
- **`do` 循环结构**:`do`语句提供了一种循环机制,可以在满足特定条件时重复执行一段代码块。在本实验中,`do`循环被用来持续询问用户是否继续备份其他目录,直到用户选择退出。 - **`if...fi` 条件判断**:这是...
条件语句(如if-else)用于根据不同的条件执行不同的代码块,而循环结构(如for、while)则用于重复执行某段代码。函数是可重用的代码块,有助于提高脚本的组织性和可读性。 在Shell脚本中,输入输出重定向和管道是...
在 shell 编程中,用户可以使用 chmod 命令来给脚本文件加上可执行权限,然后执行该脚本, shell 会 fork 一个子进程并调用 exec 执行该脚本,exec 系统调用应该把子进程的代码段替换成该脚本的代码段,并从它的 _...
- 局部变量:仅在当前代码段内可用,使用`local`修饰。 - 环境变量:对当前shell进程及其子进程可见,通过`export`设置。 - 位置变量:从`$0`到`$n`代表脚本文件名和传入的参数。 6. **特殊变量**:如 `${0}` ...
Shell脚本是Linux或Unix系统中用于自动化任务的一种强大工具。在实验一中,你需要掌握以下知识点: 1. **Shell基础**:了解Bash Shell的基本语法,如变量赋值、条件语句(if-else)、循环(for, while)和函数定义...
* Shell 函数可以用来封装一段代码 Shell 函数参数: * Shell 函数参数是指在 Shell 中的函数参数 * Shell 函数参数可以用来传递参数给函数 Shell 输入输出重定向: * Shell 输入输出重定向是指在 Shell 中的...