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 ...
随机推荐
- Spring集成Quartz定时任务框架介绍和Cron表达式详解
原文地址:http://www.cnblogs.com/obullxl/archive/2011/07/10/spring-quartz-cron-integration.html 在JavaEE系统 ...
- Android 调用系统的分享[完美实现同一时候分享图片和文字]
android 系统的分享功能 private void share(String content, Uri uri){ Intent shareIntent = new Intent(Intent. ...
- Android 获取手机SIM资料详解
TelephonyManager类主要提供了一系列用于访问与手机通讯相关的状态和信息的get方法.其中包括手机SIM的状态和信息.电信网络的状态及手机用户的信息.在应用程序中可以使用这些get方法获取 ...
- android学习日记25--ANR和Hander消息机制
1.ANR(Application Not Responding)定义 在Android上,如果你的应用程序有一段时间响应不够灵敏,系统会向用户显示一个对话框,这个对话框称作应用程序无响应(ANR:A ...
- LINUX SHELL条件判断
算术运算的条件判断 [] [[]]: -eq -ne -lt -le -gt -ge (( )):><>=<== [root@monitor ~]# if (( 2 == 3) ...
- Locally Weighted Regression
简单回顾一下线性回归.我们使用了如下变量:\(x\)—输入变量/特征:\(y\)—目标变量:\((x,y)\)—单个训练样本:\(m\)—训练集中的样本数目:\(n\)—特征维度:\((x^{(i)} ...
- Validation
Validation A simple but powerful Validation Engine, in a Laravel-esque style. Its Validation Rules a ...
- GCD多线程
GCD本质线程自动管理指令包 GCD优点: 1.GCD 本身自带有线程锁的效果,能通过推迟昂贵计算任务并在后台运行它们来改善应用的响应性能. 2.GCD 提供了更易于使用的并发模型(效果方面类似于对锁 ...
- VirtualBox中centos网络配置
VirtualBox图形界面下有四种网络接入方式,它们分别是: 1.NAT 网络地址转换模式(NAT,Network Address Translation) 2.Bridged Adapter 桥接 ...
- sql基本语法:
1.create database db_name; --创建数据库 2.drop database db_name; --删除数据库 3.show create database db_name\ ...