Linux定时任务shell脚本删除docker容器内scada冗余日志功能实现

创建定时任务并测试定时任务

  1. 编辑crobtab : vim /etc/crontab
  2. 在crobtab文件里最后一行添加:* * * * * date > /etc/testClean.txt(每分钟执行一次,将系统当前时间打印在指定目录test.txt文件内,测试定时任务是否能执行);

  1. 每次添加命令后,保存,都需重新提交的crontab文件:crontab crontab
  2. 重新启动cron服务,是crontab立马生效:service cron start
  3. 查看cron状态:service cron status ;状态为Active(Running),出现下图中标记部分说明定时任务成功

  1. 确认cron.service能执行后,再次编辑crobtab 文件
  2. 添加0 8 * * * . /etc/profile;/bin/bash /etc/CleanScadaLogs.sh > /etc/testLog.txt

  1. 命令解释:

0 8 * * *   “每天早上8点执行”

. /etc/profile;/bin/bash “加载linux环境变量path路径”

/etc/CleanScadaLogs.sh “执行指定路径下脚本”

> /etc/testLog.txt “将脚本内打印的文字输入到文本中,以便于查看脚本是否启动”

9)重复3、4、5步,出现下图所示则表示成功

3.2创建shell脚本:CleanScadaLogs.sh

3.2.1命令展示:

3.2.2命令解释:

  1. #!/bin/bash “注意与crontab中保持一至”
  2. . /etc/profile “加载linux环境配置文件”
  3. PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin “环境变量path路径”
  4. export PATH  “导入路径”
  5. docker exec ais-cell-qz-server sh -c   “进入docker镜像”
  6. find “查找”
  7. /u01/logs/JhongScada -mtime +6 -name "*.log*" -exec rm -rf {} \;  “删除固定路径下7天前的*.log*日志”

3.2.3手动操作执行CleanScadaLogs.sh脚本

输入命令:sh CleanScadaLogs.sh 或 ./CleanScadaLogs.sh,确认命令能执行,确定脚本命令不存在错误

3.3测试定时任务是否执行

  1. 查看定时任务状态
  2. Cat  /etc/testABAB.txt 查看文本是否打印
  3. 查看docker 镜像指定路径下/u01/logs/JhongScada日志是否被删除

4 cron定时任务不执行总结

  1. shell脚本中#!/bin/bash 或#!/bin/sh 与crontab中shell=xxx 、查看linux环境变量中shell=xxx格式(命令:env),尽量保持三者一致,防止因为此原因导致定时任务不执行。
  2. 防止因环境变量不执行cron定时任务,在定时任务前加入     . /etc/profile;/bin/bash
  3. /etc/CleanScadaLogs.sh > /etc/testLog.txt,“> /etc/testLog.txt”添加此命令的必要性,用来判断定时任务是否执行了shell脚本,由于系统的不同,cron日志打印输出不同,此文本就类似于日志的功能。

捕获日志: cat testLog.txt

  1. 当出现如下图报错:创建脚本CleanScadaLogs.sh时,可能存在权限问题(chmod u+x CleanScadaLogs.sh 解决脚本权限问题)。

  1. 当出现如下图报错:原因是脚本在windows下创建,只需在notePad++文本格式转换成unix即可。

  1. Shell脚本内加入路径,防止因路径加载不到不能执行shell脚本

第一种方式: . /etc/profile   

第二种方式: PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin 

export PATH  

  1. “导入路径”脚本写好后要先测试脚本是否能执行;docker exec -it ais-cell-qz-server sh -c 虽然手动编辑能执行,但是在定时任务执行时会因为“-it”导致命令不生效,去掉方能执行!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值