Linux定时任务Crontab的应用(检测某个文件夹的大小变化)

前言

因为近期在调研性能监控工具SkyWalking,SkyWalking推荐的持久化数据源为elasticsearch,因为SkyWalking的数据量过大,在使用MySQ作为数据源的时候出现过测试服务器磁盘被写满的情况。所以切换成elasticsearch,并通过配置索引过期策略,控制ES的数据量。

在控制ES数据量的同时,希望可以通过定期检测ES数据占用内存的变化,所以应用到了Linux定时任务。

1. 利用Crontab定时任务监控ES占用内存变化

1.1. 获取ES占用内存情况,并输出到文件
# 进入es的目录
cd /home/es
# 编写一个获取es占用内存情况的脚本
vim recordEsMemory.sh

脚本内容如下:

cd /home/es;
# 获取es中data的磁盘占用大小,并追加到esMemory.log,并将当时的时间信息追加到前面
echo $(date)":" "$(du -sh * | greop data)" >> /home/es/esMemory.log
# 定义一个执行成功的返回值,在crontab的日志中会用到
echo $(date)": es memory record success"

脚本可执行化

# 脚本可执行化
chmod +x recordEsMemory.sh
# 测试脚本执行,可以看到当前目录下会输出esMemory.log
./recordEsMemory.sh
1.2. 使用crontab定时执行上述脚本
# 查看crontab文件,每个定时任务单独占一行
crontab -l
# 编辑crontab文件,加入定时任务,与vim类似
crontab -e

crontab 文件

# 其他以前的定时任务
1 18 * * * sh /home/test.sh
# 新增定时任务
*/1 * * * * sh /home/es/recordEsMemory.sh >>/home/es/cron.log

保存之后,提示crontab:installing new crontab。表示部署成功。
任务解析
*/1 * * * * :定时器表达式,表示每分钟执行一次。(必选)
sh /home/es/recordEsMemory.sh:需要执行的脚本。(必选)
“>>/home/es/cron.log”:将脚本的执行结果输出到日志,可以用来查看定时任务的执行记录。(可选)

2. Linux 定时任务Crontab相关知识

  • Crontab服务常用命令
# CentOs版本的下载
yum install cronie
# 查看cron 服务的状态
service crond status
# 启动
service crond start
# 停止
service crond stop
# 重启
service crond restart
# 重载服务配置
service crond reload
  • Crontab的常用命令
# 查看crontab文件
crontab -l
# 编辑crontab文件
crontab -e
# 删除crontab文件 
crontab -r     
  • 9
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值