crontab命令用于设置周期性被执行的指令,与windows下的计划任务类似,当安装完成操作系统后,默认会安装此服务工具,并且会自动启动crond进程,crond进程每分钟会定期检查是否有要执行的任务,如果有要执行的任务,则自动执行该任务。

  Linux下的任务调度分为两类,系统任务调度(配置文件为:/etc/crontab)和用户任务调度,此处主要介绍用户任务调度。

  • 注意事项:
  1. 当任务在你所指定的时间执行后,系统会寄一封信给你,显示该任务执行的内容,若是你不希望收到这样的信,请在每一行空一格之后加上 > /dev/null 2>&1 即可。
  2. %在crontab中被认为是newline,要用\来escape才行。比如crontab执行行中,如果有"date +%Y%m%d",必须替换为:"date +\%Y\%m\%d"。
  3. 通过crontab 文件名 方式提交任务时,该文件的一个副本将被放在/var/spool/cron目录中,文件名就是用户名
  3. 当设置完用的的定时任务后建议执行:crontab -l > 文件名,将用户的crontab进行备份,防止意外执行crontab -r 删除掉用户的crontab后可通过备份文件恢复用户的定时任务(执行:crontab 文件名),或者一开始便通过文件的方式提交定时任务。
 
  • 检查cron服务

    • 检查crontab工具是否安装 : crontab -l
    • 检查crond服务是否启动 : service crond status
  • 安装cron

    • yum install vixie-cron
    • yum install crontabs
  • 相关文件介绍

    • /var/spool/cron/{userName} : 代表用户crontab文件
    • /etc/crontab : 代表系统crontab文件
    • /var/log/cron : 保存cron的任务执行记录
    • /var/spool/mail/{userName} : 记录用户邮件日志(定时任务执行后会发送邮件给配置的用户)
  • crontab指令语法介绍(主要用于操作用户crontab文件,位于:/var/spool/cron目录下,文件名与用户名一样,执行-e时自动创建,执行-r时,自动删除该文件)

    • crontab [-u user] file  (以文件方式提交定时任务)
      crontab [-u user] [ -e | -l | -r ]

      • -e    (edit user's crontab),编辑用户crontab文件
      • -l    (list user's crontab),列出用户crontab文件中的cronjob(要执行的定时任务)
      • -r    (delete user's crontab),删除用户crontab文件(删除定时任务)
      • -i    (prompt before deleting user's crontab),删除用户crontab前给与相应提示
  • crontab 文件内容格式介绍(配置定时任务)

  当用户执行crontab -e 时,将编辑用户crontab文件,文件每一行内容代表一个定时任务,他们都有统一的格式:

    • * * * * * comand(*以空格或tab隔开)

      • 第一个* : 分钟(0--59)
      • 第二个* : 小时(0--23)
      • 第三个* : 日期(0--31)
      • 第四个* : 月份(1--12)
      • 第五个* : 星期0--7(0或者7表示星期天)
      • comand : 要执行的操作
    • 举例:
      • 每晚21:30重启apache: 30 21 * * * service httpd restart
      • 每月1、10、22日的4:45重启apache : 45 4 1,10,22 * * service httpd restart
      • 每月1到10日的4:45重启apache : 45 4 1-10 * * service httpd restart
      • 每隔两分钟重启apache : */2 * * * * service httpd restart 或者 1-59/2 * * * * service httpd restart
      • 每晚11点到早上7点间,每隔1小时重启apache : 0 23-7/1 * * * service httpd restart
      • 每晚18:00至23:00,每隔30分钟重启apache : 0,30 18-23 * * * service httpd restart 或 0-59/30 18-23 * * * service httpd restart
    • 小结 :
      • * : 表示任何时候匹配
      • 可以用"A,B,C"表示A或者B或者C时执行命令
      • 可以用“A-B”表示A到B之间时执行命令
      • 可以用“/A”,表示每A分钟(小时等)执行一次命令
  • crontab每天备份mysql步骤:

1、首先创建数据库备份脚本文件(/mysqlBackup/mysqlBackup.sh),如下:

#!/bin/bash

#根据当前时间生成备份文件名,is ‘(1左边按键) not '
filename=`date +%Y-%m-%d_%H%M%S` #要备份的数据库
DB_name=数据库名称 #存储备份文件目录
mysql_back_dir="/mysqlBackup/dayBackup" #存储备份文件的目录不存在则创建
if [ ! -d $mysql_back_dir ]; then
mkdir -p $mysql_back_dir
fi #执行mysql备份
/usr/bin/mysqldump -u用户名 -p密码 $DB_name --ignore-table $DB_name.mtd03_gps_history --default-character-set utf8 | gzip > $mysql_back_dir/talkback_db_dev_$filename.sql.gz #删除30天前的备份文件
cd $mysql_back_dir
find . -name '*.sql.gz' -mtime + -exec rm -rf {} \;

2、为脚本添加可执行权限 : chmod -x mysqlBackup.sh

3、添加任务到crontab定时执行(此处为每天00:00执行),

执行:crontab -e(相当于执行vi 指令)

输入 : 0 0 */1 * * /mysqlBackup/mysqlBackup.sh

保存并退出

然后通过crontab -l 便可查看到刚刚添加的定时任务了,到此,crontab定时备份mysql便设置完成了

  

linux下系统定时任务配置----crontab(mysql定时备份)的更多相关文章

  1. MySQL定时备份之使用Linux下的crontab定时备份实例

    这篇文章主要介绍了使用Linux下的crontab进行MySQL定时备份的例子,需要的朋友可以参考下   复制代码代码如下: ##################################### ...

  2. linux下mysql定时备份数据库

    linux下mysql定时备份数据库 (2010-10-21 12:40:17) 转载▼ 标签: 杂谈   一.用命令实现备份 首页进入mysql的bin目录 1.备份数据#mysqldump -uu ...

  3. Linux Ubuntu系统版本通过Crontab设置定时任务的执行

    Linux Ubuntu系统版本通过Crontab设置定时任务的执行 本文由本人收集网络信息总结而来 特别鸣谢:https://linux.zone/2258 1 crontab 简单介绍以及语法使用 ...

  4. Linux 系统定时任务:crontab,anacron

    Linux 系统定时任务:crontab,anacron 一.Cron 服务 1. 启动服务 service cron start 2. 关闭服务 service cron stop 3. 重启服务 ...

  5. 在linux下安装并配置mysql数据库

    在linux下安装并配置mysql数据库 工具/原料   MySql5.6 CentOS 方法/步骤   1 查找以前是否安装有mysql,使用下面命令: rpm -qa|grep -i mysql ...

  6. linux下添加定时任务。

    这周要做一个定时增量更新Elasticsearch索引的功能,以前没有做过定时更新,所以请教了下同事,使用crontab添加linux下的定时任务. 一.linux下定时执行任务的方法 在linux中 ...

  7. Linux下使用SSH、Crontab、Rsync三工具实现数据自动备份

    Linux下使用SSH.Crontab.Rsync三工具实现数据自动备份 作为网管人员大概都无一例外的经历过系统备份,尤其是重要系统的备份.重要数据库系统的备份工作.由于备份是个频繁而琐碎的工作,如何 ...

  8. Linux下安装和配置JDK与Tomcat(升级版)

    在这个版本 Linux下安装和配置JDK与Tomcat(入门版) 的基础上优化升级 1.下载相关软件 apache-tomcat-6.0.37.tar.gz jdk-6u25-linux-i586-r ...

  9. Linux下Redis服务器安装配置

    说明:操作系统:CentOS1.安装编译工具yum install wget  make gcc gcc-c++ zlib-devel openssl openssl-devel pcre-devel ...

随机推荐

  1. oracle 对象权限 系统权限 角色权限

    系统权限: 允许用户执行特定的数据库动作,如创建表.创建索引.连接实例等 对象权限: 允许用户操纵一些特定的对象,如读取视图,可更新某些列.执行存储过程等 select * from user_sys ...

  2. Comparing randomized search and grid search for hyperparameter estimation

    Comparing randomized search and grid search for hyperparameter estimation Compare randomized search ...

  3. 【Java】java的内存浅析

    一.闲谈下 201407月记着那时候身体垮了下来,呵呵.想说,对自己的说,也是对大家的负责吧.那时候胸疼胸闷,然后几乎累垮了,我还坚持了一星期,那一星期真的迷迷糊糊.完全不能看代码,看代码就晕.一直想 ...

  4. IE7和IE8出现的计算判断问题

    吸住底部菜单 IE7和IE8下会卡死的算法 ; } function fixedBar(){ var _height=$(this).height()+$(this).scrollTop(); var ...

  5. codeforces C. Mashmokh and Numbers

    题意:给你n和k,然后让你找出n个数使得gcd(a1,a2)+gcd(a3,a4)+......的和等于k: 思路:如果n为奇数,让前n-3个数的相邻两个数都为1,n-2和n-1两个数gcd为k-an ...

  6. sphinx插入css

    使用role指令达到目的. We can put following lines at the beginning of our RST file to specify its style. .. r ...

  7. Unity 3D物体的点击事件响应以及NGUI坐标和世界坐标的互相转换

    Unity 版本:4.5 NGUI版本:3.6.5 参考链接:http://game.ceeger.com/Script/Camera/Camera.ScreenPointToRay.html,Uni ...

  8. QT、QTE、qtopia区别

    QT.QTE.qtopia区别 Qt的授权是分为两条线,商业版和开源版.如果使用商业版的Qt,那么开发出的程序可以是私有的和商业的:如果使用的是开源版的Qt,由于其使用的是GPL协议,那么可发出的程序 ...

  9. centos qt5,PyQt5 installation

    一.SIP http://www.riverbankcomputing.com/software/sip/download   二.Centos6.5 qt 安装 1,centos linux系统必须 ...

  10. IIS 启用或关闭目录浏览

    如果不希望启用目录浏览,请确保配置了默认文档并且该文件存在. 使用 IIS 管理器启用目录浏览. 打开 IIS 管理器. 在“功能”视图中,双击“目录浏览”. 在“目录浏览”页上,在“操作”窗格中单击 ...