zoukankan      html  css  js  c++  java
  • CentOS安装crontab 定时备份文件夹

    一、 编写脚本
    编写一个脚本文件,使脚本可以执行备份命令。 
    例如,将文件目录 /home/backups/balalala 备份到/home目录下,并压缩。
    1. 创建脚本
    命令格式: touch 路径/文件名.sh 
    例如: 
    输入命令:touch /home/backup.sh 

    2. 写入命令
    首先进入脚本:vi命令 
    vi /home/backup.sh 
    在脚本内写入:
     #! /bin/sh
     mkdir /home/plantask/temp
     #创建一个临时文件 保存备份的路径
     cp -r /www/xilan /home/plantask/temp
     #数据存在plantask目录下,备份到temp目录下,所以先将数据拷过来
     tar -zcPvf /www/backups/xilan$(date +%Y%m%d%H%M%S).tar.gz /home/plantask/temp  -->时间精确到毫秒
     #将数据所在文件夹plantask打包
     rm -rf /home/plantask/temp
      
     find ./ -mtime +30 -name "*.tar.gz" -exec rm -rf {} ;
     #删除改文件夹下超过30天的文件


    3. 执行脚本文件
    直接手动执行脚本文件。 
    命令格式:sh 路径/文件名.sh 
    例如:sh /home/backup.sh

    有时候会出现find:未知的断言"-name *.tar.gz -exec rm",

    把最后一行重新写下或者再拷贝一个改下就好了,至于什么原因,暂时没找出来,对比了报错之前的内容,也没看出来有什么区别,希望大神看到了给解答下。

    find /home/bkebpaper/ -mtime +1 -name "*.tar.gz" -exec rm -rf {} ;


    二、 设置定时执行本脚本。
    例如:设置脚本每7天执行一次。
    1. 安装crond
    如果没有安装crond服务就先装上服务。 
    检查服务状态:service crond status
    2. 修改crontab内容
    输入命令:crontab –e 
    进入后继续输入命令:0 0 /7 *  sh /home/backup.sh   ---->一定要加上sh命令


    设置为每7天执行一次脚本文件 
    然后,保存退出:wq
     0 */1 * * * sh /home/plantask/backup.sh  #每小时执行一次
     */1 * * * * sh /home/plantask/backup.sh #每分钟执行一次 用于调试

    sh脚本前面五个字段分别表示分钟(0-59)、小时(0-23)、日(1-31)、月(0-12)、星期几(0-6)后面的为脚本所在目录   --->一定要加上sh命令

    3. 重新启动crond服务
    输入命令:service crond restart
    至此配置完成!

     **************************************************************************************************

    安装crontab:
    [root@CentOS ~]# yum install vixie-cron
    [root@CentOS ~]# yum install crontabs
    说明:
    vixie-cron软件包是cron的主程序;
    crontabs软件包是用来安装、卸装、或列举用来驱动 cron 守护进程的表格的程序。
    //+++++++++++++++++++++++++++++++++++
    cron 是linux的内置服务,但它不自动起来,可以用以下的方法启动、关闭这个服务:
    service crond start //启动服务
    service crond stop //关闭服务
    service crond restart //重启服务
    service crond reload //重新载入配置
    查看crontab服务状态:service crond status
    手动启动crontab服务:service crond start
    查看crontab服务是否已设置为开机启动,执行命令:ntsysv
    加入开机自动启动:
    chkconfig --level 35 crond on

    *************************************************************************

    1,crontab命令

    功能说明:设置计时器。

    语  法:crontab [-u <用户名称>][配置文件] 或 crontab [-u <用户名称>][-elr]

    补充说明:cron是一个常驻服务,它提供计时器的功能,让用户在特定的时间得以执行预设的指令或程序。只要用户会编辑计时器的配置文件,就可以使用计时器的功能。其配置文件格式如下:
    Minute Hour Day Month DayOFWeek Command

    参  数: 
     -e  编辑该用户的计时器设置。 
     -l  列出该用户的计时器设置。 
     -r  删除该用户的计时器设置。 
     -u<用户名称>  指定要设定计时器的用户名称。

    2,crontab 格式

    基本格式 :
    * *  *  *  *  command
    分 时 日 月 周  命令

    第1列表示分钟1~59 每分钟用*或者 */1表示
    第2列表示小时1~23(0表示0点)
    第3列表示日期1~31
    第4列表示月份1~12
    第5列标识号星期0~6(0表示星期天)
    第6列要运行的命令

    crontab文件的一些例子:

    30 21 * * * /usr/local/etc/rc.d/lighttpd restart
    上面的例子表示每晚的21:30重启apache。

    45 4 1,10,22 * * /usr/local/etc/rc.d/lighttpd restart
    上面的例子表示每月1、10、22日的4 : 45重启apache。

    10 1 * * 6,0 /usr/local/etc/rc.d/lighttpd restart
    上面的例子表示每周六、周日的1 : 10重启apache。

    0,30 18-23 * * * /usr/local/etc/rc.d/lighttpd restart
    上面的例子表示在每天18 : 00至23 : 00之间每隔30分钟重启apache。

    0 23 * * 6 /usr/local/etc/rc.d/lighttpd restart
    上面的例子表示每星期六的11 : 00 pm重启apache。

    * */1 * * * /usr/local/etc/rc.d/lighttpd restart
    每一小时重启apache

    * 23-7/1 * * * /usr/local/etc/rc.d/lighttpd restart
    晚上11点到早上7点之间,每隔一小时重启apache

    0 11 4 * mon-wed /usr/local/etc/rc.d/lighttpd restart
    每月的4号与每周一到周三的11点重启apache

    0 4 1 jan * /usr/local/etc/rc.d/lighttpd restart
    一月一号的4点重启apache

    */30 * * * * /usr/sbin/ntpdate 210.72.145.44
    每半小时同步一下时间

    crontab命令主要有3个参数:

      -e :编辑用户的crontab。

      -l :列出用户的crontab的内容。

      -r :删除用户的crontab的内容。

      执行crontab -e,将自动打开编辑器,你可以编辑自己的crontab文件,语法和 /etc/crontab 文件一样,不同的只是,不必再指出执行的用户,编辑后保存即可。

      crontab -l用来查看自己的crontab文件内能,crontab -r删除自己的crontab。

  • 相关阅读:
    Hello iOS
    钝化程序、逻辑冻结、冻结程序的延续、瞬间转移
    对字符串操作的各种笔试题
    .NET各大平台数据列表控件绑定原理及比较(WebForm、Winform、WPF)
    多线程计算----pthread
    Xcode的Hello World(简单易懂)
    two sets of Qt binaries into the same process的解决办法
    微软新一代输入法框架 TSF
    Starting the application on Mac does not work(拷贝platforms到不同的位置,才能解决问题),还可设置DYLD_PRINT_LIBRARIES=1 观察动态库
    dddd
  • 原文地址:https://www.cnblogs.com/baobeiqi-e/p/10559047.html
Copyright © 2011-2022 走看看