shell批处理删除特定文本 您所在的位置:网站首页 批处理删除文本指定内容 shell批处理删除特定文本

shell批处理删除特定文本

2024-07-06 17:00| 来源: 网络整理| 查看: 265

最近有个需求:定时检测某个目录下的文件个数是否超过n个,若超过则清理日期较早的m-1个文件;由于第一个文件可能被有些进程占用,因此删除日期较早的前m个除去最早的一个。

具体的shell脚本如下:

############################ # author : lijd # date : 2021-04-20 ############################ #!/bin/bash main() { while [ 1 ] do datapath=$(date +%Y)"/"$(date +%m)"/"$(date +%d)"/" filepath="/data/sp"$datapath file_num=`ls "/data/sp"$datapath -l | grep ".dq" | wc -l` if [ $file_num -gt 15 ] then cd $filepath && ls -ltr | grep ".dq" | awk '{print $9}' | head -n 10 | tail -n 9 | xargs rm -rf fi sleep 60 done } main

主要执行语句:ls -ltr | grep  ".dq" | awk '{print $9}' | head -n 10 | tail -n 9 | xargs rm -rf

定时检测某个进程是否存在,不存在启动。具体的shell脚本如下:

############################ # author : lijd # date : 2021-04-20 ############################ #!/bin/bash main() { while [ 1 ] do process_num=`ps aux | grep hqccgsvc | grep -v grep |wc -l` if [ $process_num -eq 0 ] then cd /root/ccg_cvi/ccg/ && ./hqccgsvc -start nowtime=`date --date='0 days ago' "+%Y-%m-%d %H:%M:%S"` echo $nowtime hqccgsvc segfault >> /root/ccg_cvi/cvi_ccg_monitor.log fi sleep 60 done } main

部分数据文件可能导致进程读取崩溃,删除异常的数据文件然后重启进程。具体的shell脚本如下: 

############################ # author : lijd # date : 2021-04-20 ############################ #!/bin/bash BakErrFile() { datapath=$(date +%Y)"/"$(date +%m)"/"$(date +%d)"/" filepath="/data/sp"$datapath file_num=`ls "/data/sp"$datapath -l | grep ".dq" | wc -l` if [ $file_num -gt 5 ] then cd $filepath && ls -ltr | grep ".dq" | awk '{print $9}' | head -n 1 | xargs -t -i mv {} {}.bak fi } main() { while [ 1 ] do process_ccg_num=`ps aux | grep hqccgsvc | grep -v grep |wc -l` if [ $process_ccg_num -eq 0 ] then cd /root/ccg_cvi/ccg/ && ./hqccgsvc -start nowtime=`date --date='0 days ago' "+%Y-%m-%d %H:%M:%S"` echo $nowtime hqccgsvc segfault >> /root/ccg_cvi/cvi_ccg_monitor.log fi process_sp_num=`ps aux | grep spsvc_analyze | grep -v grep |wc -l` if [ $process_sp_num -eq 0 ] then cd /root/ccg_cvi/spanalyze/ && ./spsvc_analyze -start nowtime=`date --date='0 days ago' "+%Y-%m-%d %H:%M:%S"` echo $nowtime spsvc_analyze segfault >> /root/ccg_cvi/cvi_ccg_monitor.log fi process_spa_num=`ps aux | grep spasvc_analyze | grep -v grep |wc -l` if [ $process_spa_num -eq 0 ] then BakErrFile cd /root/ccg_cvi/spanalyze/ && ./spasvc_analyze -start nowtime=`date --date='0 days ago' "+%Y-%m-%d %H:%M:%S"` echo $nowtime spasvc_analyze segfault >> /root/ccg_cvi/cvi_ccg_monitor.log fi sleep 60 done } main

主要执行语句:ls -ltr | grep  ".dq" | awk '{print $9}' | head -n 1 | xargs -t -i mv {} {}.bak



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有