linux下利用shell脚本实现添加crontab任务

时间:2021-04-21 11:08:39

本来直接用crontab -e 就可以打开vim,输入要执行的任务保存退出就可以添加任务直接启动运行了。但是今天组长说能不能写个shell不用打开vi就能添加到crontab的。

最先想到的是怎么在shell脚本里面如何使用vi的命令,网上找了好多,要么格式太乱,要么没明白意思直接告诉vi的使用方法,所以只好舍弃了。

下面说我的方法吧

test.sh :里面写的是要执行的具体任务。

call.sh是交个人直接双击就能实现添加crontab任务的:内容如下:

#!/bin/sh

echo "*/5 * * * * /home/../test.sh" >> /var/spool/cron/username

就这么两行的内容

一般执行crontab -e命令都是直接往/var/spool/cron下创建一个文件,这个文件的名称就是你的当前用户名,内容就是你添加的任务具体内容。

但是call.sh执行的时候需要root权限。

实际配置:

定期删除log日志文件

echo "start deploy crotab for logs delete"

if [ ! -e /var/spool/cron/ ];then
mkdir -p /var/spool/cron/
fi

if [ `grep -v '^\s*#' /var/spool/cron/root |grep -c '/data/socket'` -eq 0 ];then
echo "30 0 * * * /bin/find /data/socket -name *.log -mtime +60 -type f |xargs rm -rf {};" >> /var/spool/cron/root

fi