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

如何在Linux系统中利用crontab定时执行Shell脚本任务?

在Linux系统中,如何实现定时执行任务脚本?在服务器日常运维过程中,经常需要定期执行某些任务,例如数据库备份、日志文件切割等。通过使用crontab工具,可以轻松配置这些周期性任务,确保它们按时自动运行,提高系统管理效率和可靠性。

Linux下如何定时执行任务脚本?

服务器日常运行过程中,我们经常会碰到有些工作是定时要执行的,比如数据库的备份、日志的切割等等,这些都需要每天、每周或者每月等定制操作。在linux下通过cronttab可以轻松的实现这个需求。

首先我们看一下cronttab命令各个参数的含义

cronttab所拥有的参数如下:

crontab [-u user] file

crontab [-u user] [-l | -r | -e] [-i] [-s]

crontab -n [ hostname ]

crontab -c

crontab –V

-u 后面跟用户名,

-l 显示当前的cronttab信息

-r 删除当前cronttab信息

-e 编辑cronttab信息

-I 添加这个选项后,在使用-r参数删除cronttab信息的时候,会出现确认选项,可以输入y/n

-s 在编辑和替换发生的时候,修改SELinux的MLS_LEVEL参数

-n 当cront命令启动的时候使用了-c选项,这里加上-n用来启动集群的支持

-V 打印出版本信息

在配置cronttab的时候还有以下个文件需要注意

/etc/cron.allow

/etc/cron.deny

在运行定时任务的时候,在以上两个文件里面添加不同的用户可以允许或者禁止某些用户的操作,

如果cron.allow存在,那么需要有此执行权限的用户名必须存在于这个文件中

如果cron.allow不存在但是cron.deny存在,如果用户需要有cront权限,那么这个用户名就不能存在于cron.deny文件中

如果这两个文件都不存在,只有超级用户可以使用cron命令

还有一种就是使用PAM认证

下面我们来看具体的配置

df8d5ac55d2c692ffcd968d0d6dbcefd.png

这个文件

第一行:指明了使用的是哪个shell

第二行:bin文件的路径

第三行:邮件的发送对象

重点是最后一行

这一行首先是个#,这是注释,就不用解释了

#号后面紧跟5个*

第一个* 是分钟(0-59),也就是几点几分的分

第二个* 是小时(0-24),也就是几点钟

第三个* 是一个月当中的第几天(1-31),也就是几号

第四个* 是月份*(1-12),或者是写jan,feb,mar,apr等

第五个* 是星期几(0-6),(星期天是0或者7),也可以用sun,mon,tue,wed,thu,fri,sat

以上的*表示的是取所有值

还有”,”可以用来隔开特定的取值,比如”1,3,5,6”

“-”这个横杠表示取值的范围,比如”2-6”表示为”2,3,4,5,6”

“/”这个斜线表示间隔频率,比如第一个位置用 “*/2”就表示每2分钟执行一次,在天的那个位置”*/2”就表示每2天执行一次。

星号的后面就是 用户名和所执行的命令

具体demo

编辑命令的时候可以用

[root@kailecloud ~]# crontab –e

也可以直接编辑cronttab文件(不建议)

[root@kailecloud ~]# vi /etc/crontab

1、 root用户每天早上7:02执行一次备份脚本

02 07 * * * root /root/.sh/bak.sh

2、 mysql用户每天1:02,7:02,12:02,19:02,23:02执行一次备份脚本

02 01,07,12,19,23 * * * mysql /var/.sh/bak.sh

3、 root用户每周一早上2:00执行一次备份脚本发一封邮件

02 07 * * 1 root /root/.sh/bak.sh

4、 root用户每个月的3号中午12:00执行一次备份脚本

00 12 3 * * root /root/.sh/bak.sh

其他常用命令

[root@kailecloud ~]# systemctl start crond.service

[root@kailecloud ~]# systemctl stop crond.service

[root@kailecloud ~]# systemctl restart crond.service

[root@kailecloud ~]# systemctl reload crond.service

[root@kailecloud ~]# systemctl status crond.service

[root@kailecloud ~]# systemctl enable crond.service

[root@kailecloud ~]# systemctl disable crond.service

原创内容,如有写的不到位的地方,欢迎指正!



推荐阅读
  • 本文推荐了六款高效的Java Web应用开发工具,并详细介绍了它们的实用功能。其中,分布式敏捷开发系统架构“zheng”项目,基于Spring、Spring MVC和MyBatis技术栈,提供了完整的分布式敏捷开发解决方案,支持快速构建高性能的企业级应用。此外,该工具还集成了多种中间件和服务,进一步提升了开发效率和系统的可维护性。 ... [详细]
  • Spring框架入门指南:专为新手打造的详细学习笔记
    Spring框架是Java Web开发中广泛应用的轻量级应用框架,以其卓越的功能和出色的性能赢得了广大开发者的青睐。本文为初学者提供了详尽的学习指南,涵盖基础概念、核心组件及实际应用案例,帮助新手快速掌握Spring框架的核心技术与实践技巧。 ... [详细]
  • PyQt5 QTextEdit:深入解析Python中多功能GUI库的应用与实现
    本文详细探讨了 PyQt5 中 QTextEdit 组件在 Python 多功能 GUI 库中的应用与实现。PyQt5 是 Qt 框架的 Python 绑定,提供了超过 620 个类和 6000 个函数及方法,广泛应用于跨平台应用程序开发。QTextEdit 作为其中的重要组件,支持丰富的文本编辑功能,如富文本格式、文本高亮和自定义样式等。PyQt5 的流行性不仅在于其强大的功能,还在于其易用性和灵活性,使其成为开发复杂用户界面的理想选择。 ... [详细]
  • PHP中元素的计量单位是什么? ... [详细]
  • 本文详细介绍了使用响应文件在静默模式下安装和配置Oracle 11g的方法。硬件要求包括:内存至少1GB,具体可通过命令`grep -i memtotal /proc/meminfo`进行检查。此外,还提供了详细的步骤和注意事项,确保安装过程顺利进行。 ... [详细]
  • 深入解析Tomcat:开发者的实用指南
    深入解析Tomcat:开发者的实用指南 ... [详细]
  • MySQL性能优化与调参指南【数据库管理】
    本文详细探讨了MySQL数据库的性能优化与参数调整技巧,旨在帮助数据库管理员和开发人员提升系统的运行效率。内容涵盖索引优化、查询优化、配置参数调整等方面,结合实际案例进行深入分析,提供实用的操作建议。此外,还介绍了常见的性能监控工具和方法,助力读者全面掌握MySQL性能优化的核心技能。 ... [详细]
  • 本文深入探讨了Spring Cloud Eureka在企业级应用中的高级使用场景及优化策略。首先,介绍了Eureka的安全配置,确保服务注册与发现过程的安全性。接着,分析了Eureka的健康检查机制,提高系统的稳定性和可靠性。随后,详细讨论了Eureka的各项参数调优技巧,以提升性能和响应速度。最后,阐述了如何实现Eureka的高可用性部署,保障服务的连续性和可用性。通过这些内容,开发者可以更好地理解和运用Eureka,提升微服务架构的整体效能。 ... [详细]
  • 深入解析:RKHunter与AIDE在入侵检测中的应用与优势
    本文深入探讨了RKHunter与AIDE在入侵检测领域的应用及其独特优势。通过对比分析,详细阐述了这两种工具在系统完整性验证、恶意软件检测及日志文件监控等方面的技术特点和实际效果,为安全管理人员提供了有效的防护策略建议。 ... [详细]
  • 本文将介绍一种扩展的ASP.NET MVC三层架构框架,并通过使用StructureMap实现依赖注入,以降低代码间的耦合度。该方法不仅能够提高代码的可维护性和可测试性,还能增强系统的灵活性和扩展性。通过具体实践案例,详细阐述了如何在实际开发中有效应用这一技术。 ... [详细]
  • 优化后的标题:利用YUM高效安装与管理MySQL数据库环境 ... [详细]
  • Windows 10 Build 14393.105累积更新详细变更记录与改进说明
    微软近期发布了Windows 10一周年更新版本14393.105的累积性更新,此次更新主要面向桌面版操作系统,并通过发布预览通道进行推送。该更新包含多项性能优化和稳定性提升,旨在改善用户的日常使用体验。以下是详细的变更记录和改进说明。 ... [详细]
  • SpringBoot启动脚本详解:BAT文件应用与基础入门指南(SpringBoot系列第1篇)
    如果你还在为SSM框架的复杂搭建过程和繁琐的配置文件而烦恼,那么SpringBoot将是你的一大福音。作为SpringBoot系列的第一篇文章,本文详细介绍了如何使用BAT文件来启动SpringBoot应用,并提供了基础入门指南,帮助开发者快速上手,简化开发流程。 ... [详细]
  • PJSIP 编译与开发指南:深入解析 PJSIP 库的应用与优化
    PJSIP 编译与开发指南:深入解析 PJSIP 库的应用与优化 ... [详细]
  • 解决SWFUpload在本地测试成功但服务器上出现404或500错误的方法
    在使用SWFUpload进行图片批量上传时,尽管本地测试一切正常,但在部署到服务器后却遇到了404和500错误。经过详细排查,发现404错误的原因在于`flash_url`和`upload_url`需要配置为绝对路径。此外,500错误可能是由于服务器端的权限设置或脚本错误导致,建议检查服务器日志以获取更多调试信息。通过这些调整,最终成功解决了问题。 ... [详细]
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社区 版权所有