天天看点

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 文件也可以做定时任务

http://blog.csdn.net/default7/article/details/40214305