软件测试之学习shell编程的项目实战及定时任务
   来源:吾爱乐享     2018年08月03日 02:53

用到的命令:if[ 表达式 ]; then 输出语句 fifunction(){ 函数体}cp 原始路径文件 目标文件路径${变量名}$1:第一个参数值rm -rf 路径文件lsof -n -P -t -i :端口号./startup.sh./shutdown.sh[ -n 表达式 ]:判断字符串长度是不为0则为真,用法:[ -n “hello” ][ -z 表达式 ]:判断字符串长度为0 则为真,用法:[ -z “hello” ]-e:判断目录或者文件是否存在,用法:[ -e /home ]

一键安装tomcat脚本:

步骤:创建变量:

TOMCAT_PID=${lsof -n -P -t -i :8888}

TOMCAT_HOME=”/opt/apache-tomcat-8.0.30″

WAR_PATH=”${TOMCAT_HOME}/webapps/futureloan.war”

WAR_DIR=”${TOMCAT_HOME}/webapps/futureloan”

CONF_JDBC=”${TOMCAT_HOME}/conf/jdbc.properties”

CONF_LOG4J=”${TOMCAT_HOME}/conf/log4j.properties”

WAR_ORIGINAL_PATH=”/opt/futureloan.war”

CONF_ORIGINAL_JDBC=”/opt/jdbc.properties”

CONF_ORIGINAL_LOG4J=”/opt/log4j.properties”

判断是否已安装运行tomcat,如果在运行就关闭tomcat

if [ -n ${TOMCAT_PID} ];then ${TOMCAT_HOME}/bin/shutdown.sh fi

判断是否有war包文件,如果有就删除war包文件及目录。

if [ -e ${WAR_PATH} ]; then re -rf ${WAR_PATH} fi

判断是否有配置文件,如果有就删除相关配置文件

if [ -e ${CONF_JDBC} ];then rm -rf ${CONF_JDBC} fi

拷贝war包到tomcat的webapps目录下

cp ${WAR_ORIGINAL_PATH} ${TOMCAT_HOME}/webapps

拷贝配置文件到conf目录下

cp ${CONF_ORIGINAL_JDBC} ${CONF_ORIGINAL_JDBC} ${TOMCAT_HOME}/conf

启动tomcat,判断tomcat是否启动,如果没有启动,则开启tomcat if [ -z ${TOMCAT_PID} ]; then ${TOMCAT_HOME}/bin/startup.sh fi设置脚本权限chmod 777 tomcat.sh扩展:lsof -n -P -t -i : 端口号 (在linux中查看tomcat是否在运行,如果tomcat没有启动,则不会有输出结果,如果在运行则会打印输出进程号,在使用lsof命令之前需要安装lsof,命令:yum install lsof 脚本源码:

#!/bin/bash

#定义变量

TOMCAT_PID=${lsof -n -P -t -i :8888}

TOMCAT_HOME=”/opt/apache-tomcat-8.0.30″

WAR_PATH=”${TOMCAT_HOME}/webapps/futureloan.war”

WAR_DIR=”${TOMCAT_HOME}/webapps/futureloan”

CONF_JDBC=”${TOMCAT_HOME}/conf/jdbc.properties”

CONF_LOG4J=”${TOMCAT_HOME}/conf/log4j.properties”

WAR_ORIGINAL_PATH=”/opt/futureloan.war”

CONF_ORIGINAL_JDBC=”/opt/jdbc.properties”

CONF_ORIGINAL_LOG4J=”/opt/log4j.properties”

#判断是否已安装运行tomcat,如果在运行就关闭tomcat

if [ -n ${TOMCAT_PID} ]; then

${TCOMCAT_HOME}/bin/shutdown.sh

fi

#定义函数多次调用

function demo (){

$1

if [ -e $1 ]; then

rm -rf $1

fi

}

#删除war包文件

demo ${WAR_PATH}

#删除war包文件夹

demo ${WAR_DIR}

#删除配置文件

demo ${CONF_JDBC}

demo ${CONF_LOG4J}

#拷贝war包到tomcat的webapps目录下

cp ${WAR_ORIGINAL_PATH} ${TOMCAT_HOME}/webapps/

#拷贝配置文件到tomcat的conf目录下

cp ${CONF_ORIGINAL_JDBC} ${CONF_ORIGINAL_LOG4J} ${TOMCAT_HOME}/conf/

#重启tomcat

if[ -z ${TOMCAT_PID} ]; then

${TOMCAT_HOME}/bin/startup.sh

fi

crontab定时任务:定义:crontab命令用于linux操作系统中,用于设置被周期性执行的指令,该命令从标准输入设备中读取指令,并将其存放于crontab文件中。以供之后读取和执行crontab存储的指令被守护进程激活,crond通常在后台运行,每一分钟检查是否有预定的作业需要执行,这类作业一般称为cron jobs安装crontab:命令:yum -y install vixie-cron。vixie-cron软件包是cron的主程序命令:yum -y install crontabs。crontabs软件包是用来安装、卸载或列举用来驱动cron守护进程的表格的程序crontab的命令:service crond status:查看守护进程状态service crond start:开启守护进程service crond stop:关闭守护进程service crond restart:重启守护进程crontab -l:列出crontab文件crontab -e:编辑crontab文件crontab -r:删除crontab文件

注意:可以在/etc/rc.d/rc.local下添加一行service crond start配置开机启动crontab

所有用户定义的crontab存储在目录/var/spool/cron下,该目录会生成与此用户同名的文件,此用户的cron信息都记录在该文件中,并且该文件是不能直接编辑的,只能使用命令:crontab -e来进行编辑,任务以创建者的身份被执行

eg:

1、每天晚上21:30重启mysql

30 21 * * * service mysqld restart

2、每月1号执行脚本a.sh

补充中。。。

crond服务会每分钟检查一次/etc/crontab、/etc/cron.d、/var/spool/cron文件下的变更,如发生变化,就会下载到存储器中既可以使用crontab -e命令编辑/配置crontab,这个是针对当前用户的设置,也可以使用/etc/crontat目录下的文件,这是针对系统的任务

定时备份数据库:

命令:mysqldump -u root -p 数据库名 > /opt/数据库名.sql.比如:mysqldump -u root -p a > /opt/a.sql

恢复备份的数据库

命令:source /opt/备份的数据库脚本文件.比如:source /opt/a.sql

注意,source是在mysql命令下使用

未经允许不得转载:分享吧 »

文件 命令 进程