热门标签 | 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便设置完成了

 








 

 

  


推荐阅读
  • Mac OS 升级到11.2.2 Eclipse打不开了,报错Failed to create the Java Virtual Machine
    本文介绍了在Mac OS升级到11.2.2版本后,使用Eclipse打开时出现报错Failed to create the Java Virtual Machine的问题,并提供了解决方法。 ... [详细]
  • 本文介绍了使用postman进行接口测试的方法,以测试用户管理模块为例。首先需要下载并安装postman,然后创建基本的请求并填写用户名密码进行登录测试。接下来可以进行用户查询和新增的测试。在新增时,可以进行异常测试,包括用户名超长和输入特殊字符的情况。通过测试发现后台没有对参数长度和特殊字符进行检查和过滤。 ... [详细]
  • 本文介绍了Oracle数据库中tnsnames.ora文件的作用和配置方法。tnsnames.ora文件在数据库启动过程中会被读取,用于解析LOCAL_LISTENER,并且与侦听无关。文章还提供了配置LOCAL_LISTENER和1522端口的示例,并展示了listener.ora文件的内容。 ... [详细]
  • 高质量SQL书写的30条建议
    本文提供了30条关于优化SQL的建议,包括避免使用select *,使用具体字段,以及使用limit 1等。这些建议是基于实际开发经验总结出来的,旨在帮助读者优化SQL查询。 ... [详细]
  • Spring源码解密之默认标签的解析方式分析
    本文分析了Spring源码解密中默认标签的解析方式。通过对命名空间的判断,区分默认命名空间和自定义命名空间,并采用不同的解析方式。其中,bean标签的解析最为复杂和重要。 ... [详细]
  • 本文介绍了在开发Android新闻App时,搭建本地服务器的步骤。通过使用XAMPP软件,可以一键式搭建起开发环境,包括Apache、MySQL、PHP、PERL。在本地服务器上新建数据库和表,并设置相应的属性。最后,给出了创建new表的SQL语句。这个教程适合初学者参考。 ... [详细]
  • 本文介绍了数据库的存储结构及其重要性,强调了关系数据库范例中将逻辑存储与物理存储分开的必要性。通过逻辑结构和物理结构的分离,可以实现对物理存储的重新组织和数据库的迁移,而应用程序不会察觉到任何更改。文章还展示了Oracle数据库的逻辑结构和物理结构,并介绍了表空间的概念和作用。 ... [详细]
  • 本文分享了一个关于在C#中使用异步代码的问题,作者在控制台中运行时代码正常工作,但在Windows窗体中却无法正常工作。作者尝试搜索局域网上的主机,但在窗体中计数器没有减少。文章提供了相关的代码和解决思路。 ... [详细]
  • 本文是一位90后程序员分享的职业发展经验,从年薪3w到30w的薪资增长过程。文章回顾了自己的青春时光,包括与朋友一起玩DOTA的回忆,并附上了一段纪念DOTA青春的视频链接。作者还提到了一些与程序员相关的名词和团队,如Pis、蛛丝马迹、B神、LGD、EHOME等。通过分享自己的经验,作者希望能够给其他程序员提供一些职业发展的思路和启示。 ... [详细]
  • 本文讨论了Alink回归预测的不完善问题,指出目前主要针对Python做案例,对其他语言支持不足。同时介绍了pom.xml文件的基本结构和使用方法,以及Maven的相关知识。最后,对Alink回归预测的未来发展提出了期待。 ... [详细]
  • 知识图谱——机器大脑中的知识库
    本文介绍了知识图谱在机器大脑中的应用,以及搜索引擎在知识图谱方面的发展。以谷歌知识图谱为例,说明了知识图谱的智能化特点。通过搜索引擎用户可以获取更加智能化的答案,如搜索关键词"Marie Curie",会得到居里夫人的详细信息以及与之相关的历史人物。知识图谱的出现引起了搜索引擎行业的变革,不仅美国的微软必应,中国的百度、搜狗等搜索引擎公司也纷纷推出了自己的知识图谱。 ... [详细]
  • eclipse学习(第三章:ssh中的Hibernate)——11.Hibernate的缓存(2级缓存,get和load)
    本文介绍了eclipse学习中的第三章内容,主要讲解了ssh中的Hibernate的缓存,包括2级缓存和get方法、load方法的区别。文章还涉及了项目实践和相关知识点的讲解。 ... [详细]
  • 本文讨论了在数据库打开和关闭状态下,重新命名或移动数据文件和日志文件的情况。针对性能和维护原因,需要将数据库文件移动到不同的磁盘上或重新分配到新的磁盘上的情况,以及在操作系统级别移动或重命名数据文件但未在数据库层进行重命名导致报错的情况。通过三个方面进行讨论。 ... [详细]
  • ALTERTABLE通过更改、添加、除去列和约束,或者通过启用或禁用约束和触发器来更改表的定义。语法ALTERTABLEtable{[ALTERCOLUMNcolu ... [详细]
  • 前景:当UI一个查询条件为多项选择,或录入多个条件的时候,比如查询所有名称里面包含以下动态条件,需要模糊查询里面每一项时比如是这样一个数组条件:newstring[]{兴业银行, ... [详细]
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社区 版权所有