crontab脚本,定时任务相关细节

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/tomnic_ylwang/article/details/47315899
默认情况下cron是没有专门存放日志的文件的,执行日志是放在 /var/log/syslog中
若需要将日志文件放到单独的文件中,则修改rsyslog文件,
将/etc/rsyslog.d/50-default.conf 文件中的#cron.*前的#删掉,默认路径为/var/log/cron.log
重启rsyslog服务service rsyslog restart;
重启cron服务service cron restart;


一、将脚本写入文件,如api_remove.logs.sh

#me +3 -delete:!/bin/bash
# Author: wjxie
# Created at: 2014-12-19
# Feature: remove logs before n days
LOG_DIR_TOMCAT="/root/workspaces/apache-tomcat-7.0.62/logs/"
LOG_DIR_API="/root/workspaces/logs/ad-api/"
LOG_FILE_TOMCAT="localhost_access_log"
LOG_FILE_API="ad-api.log"
find $LOG_DIR_TOMCAT -name "$LOG_FILE_TOMCAT*" -mtime +3 -delete
echo "remove tomcat logs ok!!"
find $LOG_DIR_API -name "$LOG_FILE_API*" -mtime +7 -delete
echo "remove api logs ok!!"


二、使用命令crontab -e

输入命令
34 13   * * *    /opt/api_remove.logs.sh  >/root/workspaces/logs/cron.log 2>&1

>/root/workspaces/logs/cron.log  是指日志输出文件
2>&1 是指将标准输出转换到文件流

三、重启cron

service cron restart


在root用户权限下crontab -e,34 13   * * *    root /opt/api_remove.logs.sh  >/root/workspaces/logs/cron.log 2>&1”
报错,crontab 不执行,报错 /bin/sh: root: command not found”
修改为“34 13   * * *    /opt/api_remove.logs.sh  >/root/workspaces/logs/cron.log 2>&1”即可;

注:root用户权限下修改/etc/crontab 文件也可以做定时任务






上一篇:SQL Server 2005 同义词Bug


下一篇:PHP面试题集