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 "1 months ago" +%Y%m`
index=
f=`ls /home/hls/apache-tomcat-7.0.61/logs - -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
then
zip /home/hls/apache-tomcat-7.0.61/logs/$m2.zip $str #压缩数组中的文件为yyyymm.zip文件,打包放在logs下
else
echo "No files found."
exit
fi
echo "$m2.zip maked, now delete old files."
rm -fr $str #删除已被打包文件
echo "done."
exit

使用方法:

执行 crontab -e 编辑当前用户定时任务,进入编辑页面,点击 o  ,输入

0 0 1 * * /home/hls/apache-tomcat-7.0.61/logzip.sh >> /home/hls/apache-tomcat-7.0.61/crontablog.log 2>&1

按esc退出编辑 然后 :wq 保存退出。这样就在crontab里设置了定时任务(每月一号凌晨执行logzip.sh,并把执行文件中的日志输出在crontablog.log中)

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

------------------------------------------------------阿纪--------------------------------------------------------------

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

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

    摘要 linux下使用crontab定时备份MYSQL数据库的方法: 只需按照下面3步做,一切都在你的掌控之下: 第一步:在服务器上配置备份目录代码: ------------------------ ...

  2. MySQL定时备份之使用Linux下的crontab定时备份实例

    这篇文章主要介绍了使用Linux下的crontab进行MySQL定时备份的例子,需要的朋友可以参考下   复制代码代码如下: ##################################### ...

  3. Linux下使用crontab定时备份日志

    上周学习了Linux,其中有使用crontab定时备份日志的内容,现把主要步骤记录如下: 首先需要备份的日志的源目录位于/opt/lampp/logs/access_log 备份到/tmp/logs下 ...

  4. linux下使用crontab定时执行脚本

    使用crontab定时执行脚本 cron服务是一个定时执行的服务,可以通过crontab 命令添加或者编辑需要定时执行的任务: crontab –e : 修改 crontab 文件,如果文件不存在会自 ...

  5. Linux下的crontab定时执行任务命令详解(参考:https://www.cnblogs.com/longjshz/p/5779215.html)

    在Linux中,周期执行的任务一般由cron这个守护进程来处理[ps -ef | grep cron].cron读取一个或多个配置文件,这些配置文件中包含了命令行以及调用时间. cron的配置文件成为 ...

  6. Linux下的crontab定时执行任务命令

    0x00 简介 在LINUX中,周期执行的任务一般由cron这个守护进程来处理[ps -ef|grep cron].cron读取一个或多个配置文件,这些配置文件中包含了命令行及其调用时间. cron的 ...

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

    在LINUX中,周期执行的任务一般由cron这个守护进程来处理[ps -ef|grep cron].cron读取一个或多个配置文件,这些配置文件中包含了命令行及其调用时间.cron的配置文件称为“cr ...

  8. Linux下的crontab定时、执行任务命令详解 oracle 自动备份

    在LINUX中,周期执行的任务一般由cron这个守护进程来处理[ps -ef|grep cron].cron读取一个或多个配置文件,这些配置文件中包含了命令行及其调用时间.cron的配置文件称为&qu ...

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

    在LINUX中,周期执行的任务一般由cron这个守护进程来处理[ps -ef|grep cron].cron读取一个或多个配置文件,这些配置文件中包含了命令行及其调用时间.cron的配置文件称为&qu ...

随机推荐

  1. 时间紧迫,写一些 NavigationController 一次性返回2级界面甚至更多级的界面

    在NavigationController中,调用pushViewController可以将界面推到指定的界面,调用popToViewController可以返回上层界面,可是它的实现原理是什么? 好 ...

  2. html5中viewport使用

    html5中viewport使用 转载自:http://www.maoegg.com/the-usage-of-viewport-in-html5/ 用html5开发移动应用时往往会遇到手机的分辨率或 ...

  3. C#_Ajax分页MVCPager

    UCJqOrderList @model PagedList<Order> <div id="dvOrders"> <table width=&quo ...

  4. Java基础知识强化之网络编程笔记13:TCP之TCP协议上传图片并给出反馈

    1. TCP协议上传图片并给出反馈: (1)客户端: package cn.itcast_13; import java.io.BufferedInputStream; import java.io. ...

  5. ASP.NET MVC 4 Ajax上传文件

    这两天一直纠结着表单的问题.想在一个表单里实现三个功能: 输入查询条件,点击查询: 导出查询数据: 上传文件: 方法有很多,乱花渐欲迷人眼,尝试了很多,无果.大致说的是,给不同按钮写js代码,在js代 ...

  6. Java多线程中的join()方法

    一.join()方法介绍 join() 定义在Thread.java中.join()方法把指定的线程加入到当前线程,可以将两个交替执行的线程合并为顺序执行的线程.比如在线程B中调用了线程A的join( ...

  7. android之APP+JNI+Drv框架

    以LED为例 APP: JNI之java JNI之c DRV 项目组成:1.应用部分 1.1 APK(android工程) 1.1.1 java(功能) 1.1.2 xml(界面) 1.1.3 JNI ...

  8. 使用blktrace排查iowait cpu高的问题

    本文转自这里,blktrace在这种情况下的使用方法值得借鉴学习. ------------------------------------------------------------------ ...

  9. 3 WPF之从0开始学习XMAL

    转载:http://blog.csdn.net/fwj380891124/article/details/8088233   剖析最简单的XMAL代码: <Window x:Class=&quo ...

  10. 设计模式------PROTOTYPE(原型),TEMPLATE(模板)

    看链接:http://blog.csdn.net/wuzhekai1985/article/details/6667020.纯属为自己学习所使用. 对于原型模式的理解:就如连接中所说,制作简历时先手写 ...