zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    C# 调用cmd执行指令
    如何发布 silverlight wcf 简单易学
    C#读取特定目录下的所有文件
    用批处理bat一次安装所有的系统更新补丁
    动态创建datagrid序号
    学习DIV+CSS一个最简单的布局一行三列DIV代码!
    highslide图片查看特效
    相册程序mageVue
    让Apache支持ASP.NET
    ASP.NET四种页面导航方式之比较与选择
  • 原文地址:https://www.cnblogs.com/gudu1/p/7906372.html
Copyright © 2011-2022 走看看