天天看點

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