博客园  :: 首页  :: 新随笔  :: 联系 :: 管理

简单的shell语句

Posted on 2018-01-10 17:22  代码的味道是什么  阅读(228)  评论(0编辑  收藏  举报

1,重启tomcat 脚本:

pid=`ps -ef|grep tomcat |grep -v grep |awk '{print $2}'`   

##取tomcat的进程号,awk处理字符串 ,取一行的第2列,是tomcat进程号,grep -v grep 是去掉grep自身启动的进程号,1旁边的点`,括起来,代表是命令,取到的进程号赋给pid这个变量

if ${pid}

then

kill -9  ${pid}

echo "tomcat stop"   ##打印一条语句出来

sh /usr/tomcat/bin/start.sh

tail -f /usr/tomcat/bin/logs/catalina.out

else

echo "tomcat  is  not running"

fi

2,备份日志的脚本

src_path='/opt/logs/access_log'  #定义源路径

tar_path='/tmp/logs/'  #定义目标路径

time=`date+%Y%m%d%H%M%S`  # 定义time变量,  执行后面的命令获取一个当前时间

cp -rf ${src_path}  ${tar_path}access_log_${time}   >${src_path}  # 复制文件后, 通过重定向把src_path下的文件清空

crontab -e 

59 23 * * *   sh /tmp/bak_log.sh    #脚本写到bak_log.sh中,然后每天执行 

 

 

注:

  • shell中变量,系统是通过$来识别的,加不加{} 花括号,都可以识别为变量,为了编程规范最好加上;
  • 重定向有两种:

      >  单个箭头, 不论箭头左边的命令执行是否成功,都会删除箭头右边的文件,重新建立一个,所以可以用于删除文件内容

      >> 双箭头,是追加模式,不会清除原来的内容