step1:待定时执行的脚本
crontab_remove_log.sh
echo "【`date "+%Y-%m-%d %H:%M"`】,开始删除前两天的日志" >> crontab_remove_log.log
v_date=`date -d '-2 day' +%Y-%m-%d`
find /home/hadoop/tomcat/logs/ -name ***.log.${v_date} -exec rm -rf {} \;
echo "----删除/home/hadoop/tomcat/logs/***.log.${v_date}成功" >> crontab_remove_log.log
find /home/hadoop/tomcat/logs/master/ -name access.log* -exec rm -rf {} \;
echo "----删除/home/hadoop/tomcat/logs/master/access.log*成功" >> crontab_remove_log.log
step2:定时任务的编辑
查看编辑定时任务
crontab命令选项基本只有对用户操作的选项:
-u 指定一个用户 (省略表示当前用户)
-l 列出某个用户的任务计划
-r 删除某个用户的任务
-e 编辑某个用户的任务
所以,要查看所有用户的,只能根据/etc/passwd文件中的用户名一一枚举了,可以用脚本。
# 以root用户执行,查看所有用户的crontab
cat /etc/passwd | cut -f 1 -d : |xargs -I {} crontab -l -u {}
如:
$ crontab -u hadoop -l #查看hadoop用户的定时任务列表
*/1 * * * * /home/hadoop/crontab_remove_log.sh
不生效的话就这样
*/1 * * * * source /etc/profile;/home/hadoop/crontab_remove_log.sh
编辑当前用户任务
crontab -e
格式:
cron表达式 脚本
启动
注意:
- 先将定时任务设置成分钟任务,如
*/1 * * * *
看是否执行。 - 待执行的脚本直接赋执行权限(直接777亦可)
如crontab 没有成功,检测crontab 服务是否启动,如crontab 没有成功,检测crontab 服务是否启动,
/etc/init.d/crond status
/etc/init.d/crond restart
cron 是系统守护进程,位置:
/etc/init.d/crond
参数:
start
stop
restart
reload
crontab执行后日志文件路径
/var/log/cron