使用linux下的crontab定时任务跑定时脚本
使用linux下的crontab定时任务跑定时脚本
tags:定时任务 定时脚本 crontab linux定时脚本 linux
引言:应该有许多人曾经很好奇一些定时脚本是怎么做出来的。我们这次就来说一下定时脚本的那些事,其实网上教程多得很,我就来蹭一下热度吧。
crond
我们经常用windows,但是估计很多人都不知道windows下面有一个计划任务,可以定时的执行一些任务。其实windows下面有好多小功能,对于程序员来说很有用,比如创建一个批处理可以帮助我们一次性打开我们需要的所有环境软件,定时任务可以定时备份数据库等等。
同样的 在linux下也有用来周期性执行任务的工具,它就是crond。它会随linux一起安装,并默认自动启动。它定时执行的最小粒度是1分钟,也就是说crond进程每分钟会定期检查是否有要执行的任务,如果有要执行的任务,则自动执行该任务。
它的代码如下
#crontab -u <-l, -r, -e> Options: -u <user> define user //指定一个用户 -e edit user's crontab //编辑某个用户的任务 -l list user's crontab //列出某个用户的任务计划 -r delete user's crontab //删除某个用户的任务 -i prompt before deleting -n <host> set host in cluster to run users' crontabs -c get host in cluster to run users' crontabs -s selinux context -x <mask> enable debugging
检查服务是否在运行
sevice crond status //如果输出的有个"active(running)"(这两个单词是绿色的,上面一行还有个小绿点)证明正在运行中 sevice crond start //如果没有运行这个命令可以启动 service crond stop //关闭服务 service crond restart //重启服务 service crond reload //重新载入配置
创建一个定时任务
可以通过crontab -e命令来编辑定时任务,也可以直接编辑文件。文件位置有两个
- 系统配置文件(主配置文件)位置 /etc/crontab
- 用户配置文件位置/var/spool/cron,文件名和此用户同名,此用户的cron信息都记录在这个文件中
打开后大概这个样子
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,tue,wed,thu,fri,sat # | | | | | # * * * * * user-name command to be executed
不得不佩服人家用文档都能写出图片的效果来。看上图已经很明白了
格式为:
分 小时 每个月的哪一天 月 每周的哪一天 用户名(可省略) 要执行的命令
- “*” 代表取值范围内的数字
- “/” 代表”每”
- “-” 代表从某个数字到某个数字
- “,” 分开几个离散的数字
比如我们拿定时执行pwd和一个php脚本来说明
20 6 * * * pwd 每天的 6:20 执行pwd命令 20 6 8 6 * pwd 每年的6月8日6:20执行pwd命令 20 6 * * 0 pwd 每星期日的6:20执行pwd命令//注:国外周日是第一天 0表示星期天,1表示星期1,或按照上面代码中写引文。 //字符用法 20 3 10,20 * * pwd 每月10号及20号的3:20执行pwd命令(注:“,”用来连接多个不连续的时段) 25 8-10 * * * pwd 每天8-10点的第25分钟执行pwd命令(注:“-”用来连接连续的时段) */15 * * * * pwd 每15分钟执行一次pwd命令 (每个小时的第15 20 45 60分钟执行pwd命令) 20 6 */10 * * pwd 每个月中,每隔10天6:20执行一次pwd命令(这个好像用的很少,每隔几天的不知道怎么写,实在不行可以多建立几个,我也没用到过,如果有用到多的欢迎补充) 下面来一个执行php脚本的例子(敲黑板,划重点了) //和命令行中执行php文件是一样的(如果你用的是框架 还支持路由哦)脚本里面想干啥就干啥 */15 * * * * /opt/app/php-5.5/bin/php /data/www/我是项目目录/index.php 我是脚本目录/我是执行的文件
查看日志
/var/log/cron.log这个文件就可以,可以用tail -f /var/log/cron.log动态观察,也可以用cat或者导出文件查看均可
简单教程到此结束,如果需要更高级的应用,就需要自己动手了。
---还有一句老话,欢迎评论交流
希望大家多评论交流,互相学习低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
阿里云Linux服务器的搭建过程(包括JDK、Tomcat、Redis、MySQL的安装)及遇到的问题与处理:(一)JDK的安装
前两天,搞了个Linux系统想尝试一下如何搭建一个服务器,在过程中遇到了一些问题,我觉得需要做个记录。PS:阿里云服务器的购买啥的我就不细说了。 一切都准备就绪之后,首先,是Linux命令。因为之前在工作中很少接触Linux操作,所以除了常见的cd、ll、ls、./等命令符有些操作都需要通过资料查阅来确认。这些操作接下来的搭建过程中会一一说明。 XShell、Xftp的使用。首先,我们需要准备两款软件:XShell和Xftp,XShell用于连接Linux系统,执行Linux命令,Xftp用于上传文件至Linux服务器上,软件的下载和安装在这里就不做说明,网上搜索引擎搜索下就有。下载完毕后打开XShell,新建一个会话,输入IP地址等基本信息后,点击确认,如下图: 连接成功后会提示输入用户名密码,对应地输入系统的用户名和密码就ok了,然后就可以肆无忌惮地操作Linux系统了。如果你需要传一些文件等至服务器时,可以打开Xftp进行操作,打开Xftp的方式有两种:一种是在XShell连接上服务器后,点击【窗口】→【传输新建文件】(快捷键:Ctrl+Alt+F)就OK了。第二种方法就是打开X...
- 下一篇
前端工程化概述
前端工程化概述 什么是工程化 定义 工程化即系统化、模块化、规范化的一个过程。 如果说计算机科学要解决的是系统的某个具体问题,或者更通俗点说是面向编码的,那么工程化要解决的是如何提高整个系统生产效率。 与其说软件工程是一门科学,不如说它更偏向于管理学和方法论。 解决什么问题 工程化解决的问题是,如何提高编码、测试、维护阶段的生产效率。 什么是前端 维基百科 前端Front-end和后端back-end是描述进程开始和结束的通用词汇。 前端作用于采集输入信息,后端进行处理。计算机程序的界面样式,视觉呈现属于前端。 百度百科 前端对于网站来说,通常是指,网站的前台部分包括网站的表现层和结构层。 因此前端技术一般分为前端设计和前端开发,前端设计一般可以理解为网站的视觉设计,前端开发则是网站的前台代码实现,包括基本的HTML和CSS以及JavaScript/ajax,现在最新的高级版本HTML5、CSS3,以及SVG等。 __ 前端发展史 1. 简单明快的早期时代 适合小项目,不分前后端,页面由JSP、PHP等在服务端生成,浏览器负责展现。 2. 后端为主的 MVC 时代 为了降低复杂度,以后...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- 设置Eclipse缩进为4个空格,增强代码规范
- SpringBoot2整合Redis,开启缓存,提高访问速度
- Windows10,CentOS7,CentOS8安装MongoDB4.0.16
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- MySQL8.0.19开启GTID主从同步CentOS8
- Hadoop3单机部署,实现最简伪集群
- CentOS8编译安装MySQL8.0.19
- CentOS7编译安装Cmake3.16.3,解决mysql等软件编译问题
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- SpringBoot2整合Thymeleaf,官方推荐html解决方案