linux下利用shell脚本实现添加crontab任务
本来直接用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