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 "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 定时打包日志并删除已被打包的日志的更多相关文章
- linux下使用crontab定时备份MYSQL数据库的方法:
摘要 linux下使用crontab定时备份MYSQL数据库的方法: 只需按照下面3步做,一切都在你的掌控之下: 第一步:在服务器上配置备份目录代码: ------------------------ ...
- MySQL定时备份之使用Linux下的crontab定时备份实例
这篇文章主要介绍了使用Linux下的crontab进行MySQL定时备份的例子,需要的朋友可以参考下 复制代码代码如下: ##################################### ...
- Linux下使用crontab定时备份日志
上周学习了Linux,其中有使用crontab定时备份日志的内容,现把主要步骤记录如下: 首先需要备份的日志的源目录位于/opt/lampp/logs/access_log 备份到/tmp/logs下 ...
- linux下使用crontab定时执行脚本
使用crontab定时执行脚本 cron服务是一个定时执行的服务,可以通过crontab 命令添加或者编辑需要定时执行的任务: crontab –e : 修改 crontab 文件,如果文件不存在会自 ...
- Linux下的crontab定时执行任务命令详解(参考:https://www.cnblogs.com/longjshz/p/5779215.html)
在Linux中,周期执行的任务一般由cron这个守护进程来处理[ps -ef | grep cron].cron读取一个或多个配置文件,这些配置文件中包含了命令行以及调用时间. cron的配置文件成为 ...
- Linux下的crontab定时执行任务命令
0x00 简介 在LINUX中,周期执行的任务一般由cron这个守护进程来处理[ps -ef|grep cron].cron读取一个或多个配置文件,这些配置文件中包含了命令行及其调用时间. cron的 ...
- Linux下的crontab定时执行任务命令详解
在LINUX中,周期执行的任务一般由cron这个守护进程来处理[ps -ef|grep cron].cron读取一个或多个配置文件,这些配置文件中包含了命令行及其调用时间.cron的配置文件称为“cr ...
- Linux下的crontab定时、执行任务命令详解 oracle 自动备份
在LINUX中,周期执行的任务一般由cron这个守护进程来处理[ps -ef|grep cron].cron读取一个或多个配置文件,这些配置文件中包含了命令行及其调用时间.cron的配置文件称为&qu ...
- (二)Linux下的crontab定时执行任务命令详解
在LINUX中,周期执行的任务一般由cron这个守护进程来处理[ps -ef|grep cron].cron读取一个或多个配置文件,这些配置文件中包含了命令行及其调用时间.cron的配置文件称为&qu ...
随机推荐
- mysql之union
今天来写写union的用法及一些需要注意的. union:联合的意思,即把两次或多次查询结果合并起来. 要求:两次查询的列数必须一致 推荐:列的类型可以不一样,但推荐查询的每一列,想对应的类型以一样 ...
- java异步任务处理
1.场景 最近做项目的时候遇到了一个小问题:从前台提交到服务端A,A调用服务端B处理超时,原因是前端一次请求往db插1万数据,插完之后会去清理缓存.发送消息. 服务端的有三个操作 a.插DB b.清理 ...
- Android设计模式系列-单例模式
单例模式,可以说是GOF的23种设计模式中最简单的一个. 这个模式相对于其他几个模式比较独立,它只负责控制自己的实例化数量单一(而不是考虑为用户产生什么样的实例),很有意思,是一个感觉上很干净的模式, ...
- Linux时间同步方式记录
Linux时间同步 部署Hadoop集群,遇到各个linux服务器的时间不同步的问题,于是研究了一下linux的时间同步方式,特将同步方式,总结如下: A. 前提条件 a) 网络是连通 ...
- 模拟京东商城登陆HttpRequest
利用Winform HttpRequest 模拟登陆京东商城 目前只获取订单信息,可以获取图片等其他信息 using System; using System.Collections.Generic; ...
- 操作BLOB、CLOB、BFILE
BFILE 二进制文件,存储在数据库外的操作系统文件,只读的.把此文件当二进制处理. BLOB 二进制大对象.存储在数据库里的大对象,一般是图像声音等文件. CLOB ...
- 使用air进行移动app开发常见功能和问题(一)
1. 获取最近联系人 思路:侦听Geolocation的update事件,获取经度和纬度信息,再把坐标信息上传至服务器,服务器比较坐标信息算出距离,返回最近位置的若干个人. update时间在2种情 ...
- debian配置简单的vsftp服务器
Ubuntu Linux与Windows系统不同,Ubuntu Linux不会产生无用垃圾文件,但是在升级缓存中,Ubuntu Linux不会自动删除这些文件,今天就来说说这些垃圾文件清理方法. 1 ...
- Android(java)学习笔记125:Clock app编写报错02
1.首先之间看错误: 07-13 10:07:55.354: E/AndroidRuntime(8008): FATAL EXCEPTION: main 07-13 10:07:55.354: E/A ...
- 分享一个字数限制和统计的UITextView分类方法
- (NSUInteger)letterCountWithLimits:(NSInteger)limits { NSString *toBeString = self.text; NSUInteger ...