Liunx数据备份与定时执行

news/2024/10/17 18:19:47/

Liunx数据备份与定时执行

一、编写脚本

1 创建脚本

touch test-bak.sh

2 写入命令

#! /bin/bash
#创建一个临时文件夹
mkdir /root/beifen
#将需要备份的文件复制到临时文件夹下
cp -r /root/backup /root/beifen
#将beifen文件夹打包
tar -zcPvf /root/backup$(date +%Y%m%d).tar.gz /root/beifen
#删除临时文件夹下的文件
rm -rf /root/beifen/
#删除文件夹下超过30天的文件
find ./ -mtime +30 -name "*.tar.gz" -exec rm -rf {} \;

二、设置定时执行脚本

1 修改crontab内容

输入命令:crontab –e

#每7天执行一次test-bak.sh脚本
0 0 */7 * * /root/test-bak.sh

2 重启crond服务

输入命令:service crond restart

三、crond和crontab详解

1 crond是什么?

定时任务软件种类

at    适合仅执行一次就结束的调度命令,需要启动一个后端的atd服务。
crontab 需要启动一个服务crond才行,crond服务通过crontab命令实现
anacron 无法周期性执行,只能以天为周期,但有个特点,在关机状态下未>执行的任务,下次开机时可以补上执行
注:crontab为最常用的定时任务。运行linux后,开机自启动crond任务,系统会每分钟检查是否有要执行的任务工作(循环检测)默认系统中可以登陆的用户,都可以使用crontab定义计划任务。不过,可以通过/etc/cron.allow文件限制权限。

2 crontab支持两种状态

  1. 直接编写计划任务;

  2. 使用目录的方式,放在目录里面的都会定时执行,定时目录可在/etc/crontab中设定。

    Linux下的任务调度分为两类,系统任务调度和用户任务调度。

    • 系统任务调度:在**/etc/crontab文件中配置。系统周期性所要执行的工作,比如写缓存数据到硬盘、日志清理**等。

      vi /etc/crontab

      SHELL=/bin/bash
      PATH=/sbin:/bin:/usr/sbin:/usr/bin
      MAILTO=root# For details see man 4 crontabs# Example of job definition:
      # .---------------- minute (0 - 59)
      # |  .------------- hour (0 - 23)
      # |  |  .---------- day of month (1 - 31)
      # |  |  |  .------- month (1 - 12) OR jan,feb,mar,apr ...
      # |  |  |  |  .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon ...
      # |  |  |  |  |
      # *  *  *  *  * user-name  command to be executed
      
    • 用户任务调度:用户定期要执行的工作,比如用户数据备份、定时邮件提醒等。用户可以使用 crontab 工具来定制自己的计划任务。所有用户定义的crontab 文件都被保存在 /var/spool/cron目录中。其文件名与用户名一致。

      使用者权限文件

      #该文件中所列用户不允许使用crontab命令
      /etc/cron.deny#该文件中所列用户允许使用crontab命令
      /etc/cron.allow#所有用户crontab文件存放的目录,以用户名命名
      /var/spool/cron/

      crontab文件

      #minute: 表示分钟,可以是从0到59之间的任何整数。
      #hour:表示小时,可以是从0到23之间的任何整数。
      #day:表示日期,可以是从1到31之间的任何整数。
      #month:表示月份,可以是从1到12之间的任何整数。
      #week:表示星期几,可以是从0到7之间的任何整数,这里的0或7代表星期日。
      #command:要执行的命令,可以是系统命令,也可以是自己编写的脚本文件。
      minute   hour   day   month   week   command#在以上各个字段中,还可以使用以下特殊字符:
      #星号(*):代表所有可能的值,例如month字段如果是星号,则表示在满足其它字段的制约条件后每月都执行该命令操作。#逗号(,):可以用逗号隔开的值指定一个列表范围,例如,“1,2,5,7,8,9”#中杠(-):可以用整数之间的中杠表示一个整数范围,例如“2-6”表示“2,3,4,5,6”#正斜线(/):可以用正斜线指定时间的间隔频率,例如“0-23/2”表示每两小时执行一次。同时正斜线可以和星号一起使用,例如*/10,如果用在minute字段,表示每十分钟执行一次。
      

      服务操作说明

      #启动服务
      /sbin/service crond start 
      #关闭服务
      /sbin/service crond stop 
      #重启服务
      /sbin/service crond restart
      #重新载入配置
      /sbin/service crond reload#查看crontab服务状态
      service crond status
      #手动启动crontab服务
      service crond start
      #查看crontab服务是否已设置为开机启动
      ntsysv
      #加入开机自动启动
      chkconfig –level 35 crond on
      

3 crontab命令详解(*)

命令参数

-u user:用来设定某个用户的crontab服务,例如,“-u ixdba”表示设定ixdba用户的crontab服务,此参数一般y由root用户来运行。file:file是命令文件的名字,表示将file做为crontab的任务列表文件并载入crontab。如果在命令行中没有指定这个文件,crontab命令将接受标准输入(键盘)上键入的命令,并将它们载入crontab。 -e:编辑某个用户的crontab文件内容。如果不指定用户,则表示编辑当前用户的crontab文件。 -l:显示某个用户的crontab文件内容,如果不指定用户,则表示显示当前用户的crontab文件内容。 -r:从/var/spool/cron目录中删除某个用户的crontab文件,如果不指定用户,则默认删除当前用户的crontab文件。 -i:在删除用户的crontab文件时给确认提示。

常用方法

  1. 创建一个新的crontab文件,在/etc/profile中添加

    $ vi /etc/profile#crontab
    EDITOR=vi; export EDITOR
    

    创建一个cron文件,如rootcron

    $ vi rootcron# (put your own initials here)echo the date to the console every# 15minutes between 6pm and 6am0,15,30,45 06-18 * * * echo 'date' > /root/console#保存并退出。确信前面5个域用空格分隔。$ crontab rootcron
    #创建文件的一个副本已经被放在/var/spool/cron目录中,文件名就是用户名(即root)
    
  2. 列出crontab文件

    #列出crontab文件
    $ crontab -l#备份crontab文件
    $ crontab -l > /root/mycron
    
  3. 编辑crontab文件

    #编辑crontab文件
    $ crontab -e
    
  4. 删除crontab文件

    #删除crontab文件
    $ crontab -r
    
  5. 查看日志

    #查看cron运行日志
    $ cd /var/log/cron.log
    $ tail -f /var/log/cron.log
    

http://www.ppmy.cn/news/429089.html

相关文章

Linux学习之定时任务调度cron/crontab

概述 crontab为Linux下的计划任务程序,对应的服务为crond。crond是一个守护进程,每分钟会定期检查是否有要执行的任务,如果有要执行的任务,则自动执行该任务。Linux系统上面原本就有非常多的计划性工作,故而&#xff…

Linux系统管理之定时任务

at定时任务 确定 at 安装 chkconfig --list |grep atd 检查 at 服务是否安装 service atd restart 启动atd服务; 很多服务 例如 httpd ,d是deamon 守护进程的意思,将这个程序当做系统的服务运行在系统的后台; at的访问控制 /et…

CentOS7 定时任务

在计算机的使用过程中,经常会有一些计划中的任务需要在将来的某个时间执行,linux中提供了一些方法来设定定时任务。 1、at 命令at从文件或标准输入中读取命令并在将来的一个时间执行,只执行一次。at的正常执行需要有守护进程atd(关于systemc…

linux定时关闭系统at,『学了就忘』Linux系统管理 — 8.系统定时任务(at命令)

定时任务是在服务器上常用到的一个工作。 在你指定的时间,系统会自动执行你指定的程序(脚本或者命令)。 Linxu系统中的定时任务不难,关键是如何写出正确的脚本。 在Linxu系统中,有三种用于任务调度的工具 at命令调用atd服务 crontab命令调用c…

完美替代Windows任务计划程序 —— 定时执行专家

关于Windows的任务计划程序和Linux的Cron 在执行Windows的某些IT任务时,熟悉IT的人一般都会想到Windows任务计划程序,这个是Windows自带的一款任务计划软件。当我们真正尝试使用它在计划上运行批处理文件等任务时会遇到很多问题和限制,它不仅…

【Linux】【操作】Linux操作集锦系列之一——定时任务

Linux环境经常需要定时做一些任务,如定时关机、定时下tar包、定时发邮件等。 本文将对常用的Linux定时任务操作方式做一整理。 at 一种在特定日期、时间安排一次性任务的 Linux 终端方法(关键词一次),适合那些 724 小时不间断运行…

Cmd的关机命令及AT简介

在Windows下&#xff0c;cmd是一个非常便捷的工具。本文介绍几种使用cmd关机的方法&#xff1a; &#xff08;一&#xff09;关机命令 &#xff08;1&#xff09;shutdown -s 该命令为过60s后关机 &#xff08;2&#xff09;shutdown -s -t <time> 该命令为倒计<time…