linux 下使用crontab 定时打包日志并删除已被打包的日志

crontab是和用户相关的,每个用户有自己对应的crontab 。

cron是Linux下的定时执行工具,以下是重启/关闭等等的命令

#/sbin/service crond start    //启动服务
#/sbin/service crond stop     //关闭服务
#/sbin/service crond restart  //重启服务
#/sbin/service crond reload   //重新载入配置
#/sbin/service crond status  //查看服务状态

cron服务提供 crontab命令来设定cron服务的,以下是这个命令的一些参数与说明:

crontab -u     设定某个用户的cron服务,一般root用户在执行这个命令的时候需要此参数
crontab -l      
列出某个用户cron服务的详细内容
crontab -r     删除某个用户的cron服务
crontab -e    
编辑某个用户的cron服务

设置定时的参数图:

crontab特殊的符号说明:

  "*"  代表所有的取值范围内的数字。特别要注意哦!
  "/"  代表每的意思,如"*/5"表示每5个单位
  "-"  代表从某个数字到某个数字
  ","  分散的数字

例如:

30 21 * * *          表示每晚的21:30 
45 4 1,10,22 * *       表示每月1、10、22日的4 : 45

现在是正式代码, 压缩上一个月的日志,并把其删除

在logs的同级目录下新建一个 .sh文件   例如:logzip.sh

内容:

        echo "Please wait..."
        m=`date -d "1 months ago" +%Y-%m`    #获取上个月的yyyy-mm格式的日期字符串
        m2=`date -d "1months ago" +%Y%m`
        index=0
        f=`ls /home/hls/apache-tomcat-7.0.61/logs -1 -c`  #获取logs下文件列表( /home/hls/apache-tomcat-7.0.61/logs 是日志的所在的路径)
        for name in $f
        do
                n=`expr "$name" : ‘.*\([0-9]\{4\}-[0-9]\{2\}\).*‘`    #从文件名称中提取yyyy-mm格式日期
                if [ "$n" != "" ] && [ "$n" = "$m" ]
                then
                        f[$index]="/home/hls/apache-tomcat-7.0.61/logs/$name"    #logs文件夹下符合要求的文件名称放入数组
                else
                        f[$index]=""
                fi
                (( index ++ ))
        done
        echo "$f"
        str=${f[@]}
        if [ "${#str}" -gt 0 ]       #如果大于 0
        then
        zip /home/hls/apache-tomcat-7.0.61/logs/$m2.zip  $str    #压缩数组中的文件为yyyymm.zip文件,打包放在logs下
        else
        echo "No files found."
        exit 0
        fi
        echo "$m2.zip maked, now delete old files."
        rm -fr $str        #删除已被打包文件
        echo "done."
        exit 0

使用方法:

执行 crontab -e 编辑当前用户定时任务,进入编辑页面,点击 o  ,输入 0 0 1 * * /home/hls/apache-tomcat-7.0.61/logzip.sh

按esc退出编辑 然后 :wq 保存退出。这样就在crontab里设置了定时任务(每月一号凌晨执行logzip.sh)

注意:windows下面创建的文件回车符和linux/unix下面的回车符不一样,可能会导致脚本无法执行,

时间: 2024-10-10 21:57:13

linux 下使用crontab 定时打包日志并删除已被打包的日志的相关文章

Linux下的crontab定时执行任务命令详解

Linux下的crontab定时执行任务命令详解 在LINUX中,周期执行的任务一般由cron这个守护进程来处理[ps -ef|grep cron].cron读取一个或多个配置文件,这些配置文件中包含了命令行及其调用时间.cron的配置文件称为"crontab",是"cron table"的简写. 一.cron服务 cron是一个linux下 的定时执行工具,可以在无需人工干预的情况下运行作业. service crond start    //启动服务 servi

Linux下的crontab定时执行任务命令详解 - 回家的流浪者 - 博客园

Linux下的crontab定时执行任务命令详解 在LINUX中,周期执行的任务一般由cron这个守护进程来处理[ps -ef|grep cron].cron读取一个或多个配置文件,这些配置文件中包含了命令行及其调用时间. cron的配置文件称为“crontab”,是“cron table”的简写. 一.cron服务 cron是一个linux下 的定时执行工具,可以在无需人工干预的情况下运行作业. service crond start    //启动服务 service crond stop 

Linux下使用crontab定时备份日志

上周学习了Linux,其中有使用crontab定时备份日志的内容,现把主要步骤记录如下: 首先需要备份的日志的源目录位于/opt/lampp/logs/access_log 备份到/tmp/logs下 备份文件加上时间戳date +%Y%m%d%H%M%S 以上是备份说明,下面分三步操作 一.shell脚本 [[email protected] lampp]# vi test.sh    #创建shell脚本 #!/bin/bash                                

Linux下的crontab定时执行任务简要说明

在LINUX中,周期执行的任务一般由cron这个守护进程来处理[ps -ef|grep cron].cron读取一个或多个配置文件,这些配置文件中包含了命令行及其调用时间.cron的配置文件称为"crontab",是"cron table"的简写. 一.cron服务 cron是一个linux下 的定时执行工具,可以在无需人工干预的情况下运行作业. service crond start    //启动服务 service crond stop     //关闭服务

(二)Linux下的crontab定时执行任务命令详解

在LINUX中,周期执行的任务一般由cron这个守护进程来处理[ps -ef|grep cron].cron读取一个或多个配置文件,这些配置文件中包含了命令行及其调用时间.cron的配置文件称为"crontab",是"cron table"的简写. 一.cron服务 cron是一个linux下 的定时执行工具,可以在无需人工干预的情况下运行作业. service crond start    //启动服务 service crond stop     //关闭服务

linux下使用crontab定时备份MYSQL数据库的方法:

摘要 只需按照下面3步做,一切都在你的掌控之下: 第一步:在服务器上配置备份目录代码: -------------------------------------------------------------------------------- mkdir /var/lib/mysqlbackup cd /var/lib/mysqlbackup --------------------------------------------------------------------------

Linux下使用Crontab定时执行脚本

很多时候我们需要服务器在某个时间段运行某个命令,比如执行某个脚本等. 这时我们就可以安装"crontabs"这个软件了. 在我的CentOS服务器上是默认安装了,没有安装的可以运行: yum install vixie-cron yum install crontabs vixie-cron软件包是cron的主程序: crontabs软件包是用来安装.卸装.或列举用来驱动 cron 守护进程的表格的程序. 启动服务.关闭服务.重启服务 .重新载入配置的命令分别如下: service c

Linux下定时切割Mongodb数据库日志并删除指定天数前的日志记录(转)

文章转自:http://www.osyunwei.com/archives/8998.html 说明: 操作系统:CentOS Mongodb安装目录:/usr/local/mongodb Mongodb数据库存放目录:/home/data/mongodb/mongodb_data Mongodb日志存放目录:/home/data/mongodb/mongodb_log 实现目的: 对Mongodb数据库日志按天保存,并且只保留最近7天的日志记录. 具体操作: 使用Mongodb数据库自带的命令

linux下使用crontab实现定时PHP计划任务失败的原因分析

这篇文章主要介绍了linux下使用crontab实现定时PHP计划任务失败的原因分析,需要的朋友可以参考下 很多人在linux下使用crontab实现PHP执行定时任务却未能成功,不能生成缓存.本文就linux下使用crontab实现定时PHP计划任务失败的原因做一分析. 一般我们linux定时执行php代码例如: 1 */5 * * * * /usr/local/php/bin/php /home/wwwroot/1.php 其实这样是可以执行php代码的. 但是为什么很多朋友在1.php写的