Linux 定时任务 之 crontab

本文介绍了如何使用Linux的crontab命令设置定时任务,包括选择编辑器、命令格式、查看定时任务及创建示例。在Jenkins中运行接口自动化测试时,利用crontab清理旧的.json文件以释放存储空间。同时,文章分享了在执行定时任务时遇到的权限和脚本更新问题,以及相应的解决策略,如切换root用户、重启cron服务。
摘要由CSDN通过智能技术生成

在用Jenkins + Newman跑接口自动化测试过程中,会产生较多的.json文件,时间一长占用较大的存储空间,需要定期清理,Linux的crontab命令可以解决这个问题。

1、Linux中首次执行crontab -e时,会有如下选择编辑器的提示

在这里插入图片描述
Choose完成后,再次执行crontab -e,不会出现上图情况,直接进入编辑器。

2、crontab -e 选择编辑器

执行 sudo select-editor,可重新选择

3、命令格式

执行crontab -e后,会显示如下信息
在这里插入图片描述
在这里插入图片描述
定时命令执行的时间设置。
如demo中的

0 5 * * 1 tar -zcf /var/backups/home.tgz /home/

每周一早上5:00钟,打包备份/var/backups/home.tgz/home/

30 3 1,15 * 5

每月的1号和15号3:30,以及每个周5的3:30,会执行此命令

4、crontab -l:查看当前用户的定时任务
5、每个用户可以创建属于自己的定时任务crontab,会在/var/spool/cron/crontabs中罗列出来,如下图所示:

在这里插入图片描述
可通过vi编辑查看每个用户下的定时任务

6、crontab -e创建定时任务时,最好在root用户下面,免去了定时任务的权限问题

示例:

删除指定目录下前28天的reports的sh脚本
在这里插入图片描述
crontab -e定时执行:
在这里插入图片描述
脚本说明
每周一早上3:00定时执行,然后将执行的结果重定位到/home/ubuntu1604/Vivavideo/cron_newman/cron.log中,后面的&1代表正常的输出,&2代表错误输出,2>&1表示正确和错误输出均存储到前面的.log中。


踩坑记:

踩坑1
在jenkins这个用户下,crontab -e创建定时任务,实际执行时,总是看不到效果,查看/var/log/syslog 提示 No MTA installed,discarding output.

怎么办?
1、安装MTA,邮件服务
2、重定位保存为null

我的做法
通过重定位查看输出信息,发现是权限不够
简单一点,在root用户下重新创建crontab,完美执行

踩坑2
修改sh脚本后,定时任务还是执行的之前的脚本,后续添加的任务并未执行,导致磁盘爆掉,Jenkins挂掉。

解决方法重启cron服务
/etc/init.d/cron status:查看cron状态
/etc/init.d/cron restart:重启从容服务


参考链接

始发于2017.10.9

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值