crontab定时任务打包备份文件并删除过期文件

Crontab 示例,最后这里要写成shell脚本定时运行

30 17 * * * cp -rf /usr/local/tomcat9-jforum/tomcat/logs/catalina.out  /usr/local/tomcat9-jforum/logs

Crontab归结为以下几点特性:
1.     Crontab约束
2.      Crontab命令
3.      Crontab文件语法
4.      Crontab示例
5.      Crontab环境设置
6.     邮件
7.     日志文件
8.     其它
1.     Crontab约束
当用户名记录在文件/usr/lib/cron/cron.allow时,该用户的crontab有效。当/usr/lib/cron/cron.allow文件不存在时,用户名没被记录在/usr/lib/cron/cron.deny文件中,该用户的crontab也有效。当只存在/usr/lib/cron/cron.deny且为空时,所有的用户都可使用crontab。
当前两个文件都不存在时,只有root用户可以使用crontab。Deny或allow记录以每行一个用户名的形式记录信息
2.     Crontab 命令
export EDITOR=vi ;为crontab文件指定一个编辑器。 
crontab -e  编辑该用户的crontab,当指定crontab 不存在时新建。  
crontab -l  列出该用户的crontab。  
crontab -r  删除该用户的crontab。  
crontab -u<用户名称>  指定要设定crontab的用户名称。
crontab –v 显示上一次编辑的时间(只在某些操作系统上可用)
3.      Crontab 文件
Crontab语法一个crontab文件用五个段来定义:天,日期和时间,和一个要定期执行的命令代码。
*    *  *  *   *  command to be executed
-    -   -   -    -
|    |    |    |    |
|    |    |    |    +----- day of week (0 - 6) (Sunday=0)
|    |    |    +------- month (1 - 12)
|    |    +--------- day of month (1 - 31)
|    +----------- hour (0 - 23)
+------------- min (0 - 59)
 
所有的值都必须在相应的范围之内,否则视为无效。在填值区域内可以是*也可以是以”,”分隔的一组值。值可以是一个数据也可以是用连接符连起来的两个数(表示范围)。注:日期的格式可以是星期,也可以是一个月中的天。假如两个都有值,则在这两个时间都会执行。
4. Crontab 实例

下面是crontab文件中的一行,意思是在每天下午6:30中删除临时文件(临时文件存放在/home/someuser/tmp)。30    18    *    *    *        rm /home/someuser/tmp/*

shell示例:

vi test.sh

#!/bin/sh 
#对变量赋值: 
a="hello world" 
# 现在打印变量a的内容: 
echo "A is:" 
echo $a

  在您的编辑器中输入以上内容,然后将其保存为一个文件test.sh。之后执行chmod +x test.sh   执行权限
  使其可执行,最后输入./test.sh执行该脚本。 
   这个脚本将会输出: 
A is: 
 hello world

所需语句测试

#!/bin/sh

FILENAME=`date +%Y%m%d`     ----------`‘ 靠,这是esc下面那个键,搞了半天才发现

tar -zcvf /backup/$FILENAME  /home/user  将home/user打包到/backup/$FILENAM   `date +%Y%m%d` 为日期
 
 
 tar -zcvf /usr/local/tomcat9-jforum/tomcat/webapps/jforum/images/avatar    打包
 
 30 17 * * * cp -rf /usr/local/tomcat9-jforum/tomcat/logs/catalina.out  /usr/local/tomcat9-jforum/logs/catalina.out   测试复制
 
 
 rm -f /usr/local/tomcat9-jforum/backup/`date +%y%m%d`_avatar.tar.gz  测试删除
 
 rm -f /home/svnbak/`date -d ‘-5 days‘ +%Y%m%d`.tar.gz  测试删除过期文件

论坛用户文件备份.sh

#/bin/sh 
#filebak 
#file executable: chmod 755 filebak 
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin 
export PATH 
bakdir="/home/bbs/backup" 
filename1="`date +%Y%m%d`_avatar.tar.gz" 
filename2="`date +%Y%m%d`_postimages.tar.gz" 
filename3="`date +%Y%m%d`_upload.tar.gz" 
filename4="`date +%Y%m%d`_jforumLuceneIndex.tar.gz" 
if [ ! -x "$bakdir" ];then 
mkdir $bakdir 
fi 
cd $bakdir 
tar cvfz $filename1 /home/bbs/tomcat-bbs/webapps/jforum/images/avatar          打包
tar cvfz $filename2 /home/bbs/tomcat-bbs/webapps/jforum/images/postimages
tar cvfz $filename3 /home/bbs/tomcat-bbs/webapps/jforum/upload
tar cvfz $filename4 /home/bbs/tomcat-bbs/webapps/jforum/WEB-INF/jforumLuceneIndex
rm -f $bakdir/`date -d ‘-30 days‘ +%Y%m%d`_avatar.tar.gz               删除过期
rm -f $bakdir/`date -d ‘-30 days‘ +%Y%m%d`_postimages.tar.gz
rm -f $bakdir/`date -d ‘-30 days‘ +%Y%m%d`_upload.tar.gz
rm -f $bakdir/`date -d ‘-30 days‘ +%Y%m%d`_jforumLuceneIndex.tar.gz

添加定时任务
crontab -e
crontab -l 查看

25 14 * * * /home/bbs/bbsfilebackup
 
 :wq

此为每天下午两点25执行一次

转载自:http://blog.csdn.net/ws379374000/article/details/74009009

时间: 2024-11-04 17:53:04

crontab定时任务打包备份文件并删除过期文件的相关文章

Linux下两种删除过期文件的方法详述

一.概述 在实际的C软件开发项目中,不同的软件会在不同的目录中生成文件,由于磁盘的存储空间有限,开发人员不得不考虑对目录下的过期文件进行删除.一般说来,有两种删除过期文件的方法,一种是在C程序中实现,一种是利用crontab实现.本文对这两种方法的具体实现进行详细的介绍. 为了便于说明,本文中的过期文件的后缀为.c,存放在/home/zhou/zhouzx/Test目录下,过期时间为1天. 二.在C程序中实现过期文件删除 在该方法中,我们要考虑的主要问题为: (1)要删除过期多久的文件?文件存放

Linux下的删除过期文件操作

在实际的软件开发项目中,经常会有实现删除过期文件的需求.即要求程序能够自动删除多长时间之前生成的文件.本文提供了一个示例代码,为相关的开发工作提供了参考. 程序如下(本程序用makefile进行编译): /*********************************************************************** 版权所有 (C)2014, Zhou Zhaoxiong.* * 文件名称: TestFileDelete.c* 内容摘要: 用于演示Linux下过期

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服

Linux 下Shell脚本删除过期文件

在写这个shell之前先说一下,stat命令的使用方法 一.关于时间戳 每一个文件都有3中时间(称为时间戳timestamps),对这3种时间,很多时候容易混淆不清,因此 这里要说明下:   Access time(atime):是指取用文件的时间,所谓取用,常见的操作有:使用编辑器查看文件内容,使用cat命令显示文件内容,使用cp命令把该文件(即来源文件)复制成其他文件,或者在这个文件上运用grep sed more less tail head 等命令,凡是读取而不修改文件的操作,均衡改变文

windows下自动删除过期文件的脚本

前言: 比如日志文件每天都产生,时间长了就会有很大的一堆垃圾.整理一下 定时删除文件的方法. 正文: Windows: 定时删除tomcat日志和缓存.可以保留天数 forfiles /p "e:\Program Files\Tomcat 7.0\logs" /s /m *.log /d -5 /c "cmd /c del @path" forfiles /p "e:\Program Files\Tomcat 7.0\logs" /s /m *.

rocketMQ 删除过期文件

commitLog 删除文件的策略指定时间到了,磁盘不足,人工删除,满足任一条件,判断文件是否过期或者磁盘不足,是则删除,一批次最多删除 10 个文件. commitLog,consumeQueue,indexFile 的删除策略如下图: commitLog 尾部是有空洞的,当一个消息在当前文件放不下时,rocketmq 认为下一个文件一定能放下该消息,消息不会分隔保存. commitLog 文件尾部存在至少 8 字节的空洞. 一般情况的尾部组成:maxBlank,BLANK_MAGIC_COD

linux删除过期文件

建立删除文件脚本 #!/bin/sh #定义所删除目录路径 location="/u01/app/oracle/admin/jmhrms/bdump" find $location -mtime +365 -type f -name 'jmhrms_*.trc' -exec rm -f {} \; 或者 #!/bin/sh find /u01/app/oracle/admin/jmhrms/bdump -mtime +365 -type f -name 'jmhrms*.trc' |x

linux 删除过期文件

写完备份后发现,数据需要定时删除:第一想法遍历文件,判断文件名,比对当前时间进行删除:然而这当然也是可以的:却又更加简便的方法: find /mnt/sqlBac/ -type f -mtime +15 -exec rm -f '{} \;' find /mnt/sqlBac/ -type f -mtime +15 -exec rm -f {} \; find /mnt/sqlBac/ -type f -mtime +15 -exec rm -f {}\; centos 6.5 下 使用第二条命

SQLServer自动备份和自动删除过期文件

以下为转载的文章: 点击下一步: 自定义名称和说明,点击更改: 点击确定,下一步 1.备份: 选择备份,下一步,再下一步,选择需要备份的数据库: 选择备份文件存放的路径: 点击下一步,选择系统产生的报告存放的位置: 最后点击下一步,点击完成. 看到这个表示任务已经指定完毕: 2.删除备份文件: 下一步,设置报告存放位置,完成.