热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

linux下系统定时任务配置----crontab(mysql定时备份)

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

   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 +30 -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便设置完成了

 








 

 

  


推荐阅读
  • 本文详细介绍了在 Windows 7 系统中配置 Nginx 1.10.3 和 PHP 7.1.1 NTS 的步骤,包括修改 PHP 配置文件、处理依赖项以及创建批处理脚本启动和停止服务。重点解释了如何解决常见的运行时错误。 ... [详细]
  • 本文详细介绍了一种通过MySQL弱口令漏洞在Windows操作系统上获取SYSTEM权限的方法。该方法涉及使用自定义UDF DLL文件来执行任意命令,从而实现对远程服务器的完全控制。 ... [详细]
  • 离线安装Grafana Cloudera Manager插件并监控CDH集群
    本文详细介绍如何离线安装Cloudera Manager (CM) 插件,并通过Grafana监控CDH集群的健康状况和资源使用情况。该插件利用CM提供的API接口进行数据获取和展示。 ... [详细]
  • 通常情况下,修改my.cnf配置文件后需要重启MySQL服务才能使新参数生效。然而,通过特定命令可以在不重启服务的情况下实现配置的即时更新。本文将详细介绍如何在线调整MySQL配置,并验证其有效性。 ... [详细]
  • Symfony是一个功能强大的PHP框架,以其依赖注入(DI)特性著称。许多流行的PHP框架如Drupal和Laravel的核心组件都基于Symfony构建。本文将详细介绍Symfony的安装方法及其基本使用。 ... [详细]
  • ssm框架整合及工程分层1.先创建一个新的project1.1配置pom.xml ... [详细]
  • 探讨在开发、学习和实验过程中,使用 VMware 和 Docker 的优劣,帮助用户根据具体需求做出最佳选择。 ... [详细]
  • Python自动化测试入门:Selenium环境搭建
    本文详细介绍如何在Python环境中安装和配置Selenium,包括开发工具PyCharm的安装、Python环境的设置以及Selenium包的安装方法。此外,还提供了编写和运行第一个自动化测试脚本的步骤。 ... [详细]
  • 深入解析Serverless架构模式
    本文将详细介绍Serverless架构模式的核心概念、工作原理及其优势。通过对比传统架构,探讨Serverless如何简化应用开发与运维流程,并介绍当前主流的Serverless平台。 ... [详细]
  • 如何使用Ping命令来测试网络连接?当网卡安装和有关参数配置完成后,可以使用ping命令来测试一下网络是否连接成功。以winXP为例1、打开XP下DOS窗口具体操作是点击“开始”菜 ... [详细]
  • 深入解析动态代理模式:23种设计模式之三
    在设计模式中,动态代理模式是应用最为广泛的一种代理模式。它允许我们在运行时动态创建代理对象,并在调用方法时进行增强处理。本文将详细介绍动态代理的实现机制及其应用场景。 ... [详细]
  • 深入理解ExtJS:从入门到精通
    本文详细介绍了ExtJS的功能及其在大型企业前端开发中的应用。通过实例和详细的文件结构解析,帮助初学者快速掌握ExtJS的核心概念,并提供实用技巧和最佳实践。 ... [详细]
  • 本文介绍了解决在Windows操作系统或SQL Server Management Studio (SSMS) 中遇到的“microsoft.ACE.oledb.12.0”提供程序未注册问题的方法,特别针对Access Database Engine组件的安装。 ... [详细]
  • 并发编程 12—— 任务取消与关闭 之 shutdownNow 的局限性
    Java并发编程实践目录并发编程01——ThreadLocal并发编程02——ConcurrentHashMap并发编程03——阻塞队列和生产者-消费者模式并发编程04——闭锁Co ... [详细]
  • 解决Appium Doctor在Python自动化测试中的SyntaxError问题
    本文详细介绍了如何解决在使用Appium Doctor进行环境检查时遇到的SyntaxError: Unexpected token ...问题,并提供了完整的解决方案和最佳实践。 ... [详细]
author-avatar
白小蛮
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有