linux 下使用crontab 定时打包日志并删除已被打包的日志
2017-10-26 09:28
351 查看
原博地址:http://www.cnblogs.com/sunjiguang/p/5730561.html
crontab是和用户相关的,每个用户有自己对应的crontab 。
cron是Linux下的定时执行工具,以下是重启/关闭等等的命令
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
内容:
使用方法:
执行 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下面的回车符不一样,可能会导致脚本无法执行,
------------------------------------------------------阿纪--------------------------------------------------------------
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=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 >> /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添加定时任务,日志显示已经执行但是任务没有成功调用解决方法
- Linux下使用crontab来执行定时任务计划----执行每晚12点多执行移动log日志文件操作
- Linux下使用crontab定时备份日志
- 在linux下定时执行PHP脚本(定时执行crontab使用方法详解)
- Linux 下 Crontab 命令使用详解 定时任务
- linux下crontab的使用及利用crontab系统定时处理事务
- linux中使用crontab定时执行程序(PHP脚本.sh等等各种)
- 使用crontab,让linux定时执行shell脚本
- 使用Crontab为Linux定时备份Mysql数据库
- Linux 定时任务crontab使用
- 使用RMAN和控制文件备份删除归档日志的SHELL脚本--RED HAT 5 LINUX 64
- Linux定时执行crontab使用方法祥解
- crontab使用--linux下的定时任务程序
- linux使用crontab实现PHP执行定时任务
- Linux(Red Hat5)下使用crontab定时执行java程序
- 在linux下定时执行PHP脚本(定时执行crontab使用方法详解)
- Red hat linux下使用crontab实现oracle 10g 定时备份(包含SFTP下载说明)
- Linux Crontab 定时任务使用总结
- 在linux中使用crontab实现对oracle的定时备份