使用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或者导出文件查看均可
简单教程到此结束,如果需要更高级的应用,就需要自己动手了。
---还有一句老话,欢迎评论交流
使用linux下的crontab定时任务跑定时脚本的更多相关文章
- linux 下的 crontab 定时任务工具
以下内容转自:https://www.cnblogs.com/longjshz/p/5779215.html 在LINUX中,周期执行的任务一般由cron这个守护进程来处理[ps -ef|grep c ...
- MySQL定时备份之使用Linux下的crontab定时备份实例
这篇文章主要介绍了使用Linux下的crontab进行MySQL定时备份的例子,需要的朋友可以参考下 复制代码代码如下: ##################################### ...
- Linux命令之Crontab定时任务,利用Crontab定时执行spark任务
Linux命令之Crontab定时任务,利用Crontab定时执行spark任务 一.Linux命令之Crontab定时任务 1.1 常见Crontab任务 1.1.1 安装crontab 1.1.2 ...
- linux下使用crontab实现定时PHP计划任务失败的原因分析
这篇文章主要介绍了linux下使用crontab实现定时PHP计划任务失败的原因分析,需要的朋友可以参考下 很多人在linux下使用crontab实现PHP执行定时任务却未能成功,不能生成缓存.本 ...
- linux下使用crontab定时备份MYSQL数据库的方法:
摘要 linux下使用crontab定时备份MYSQL数据库的方法: 只需按照下面3步做,一切都在你的掌控之下: 第一步:在服务器上配置备份目录代码: ------------------------ ...
- Linux 下用 crontab 设置定时执行python 程序
Linux 下用 crontab 设置定时执行python 程序 方法/步骤 1,先大概了解crontab,/etc/crontab 就是crontab 的配置文件. crontab命令详解可以查 ...
- linux下应用crontab对mysql数据库进行定时备份
linux下应用crontab对mysql数据库进行定时备份 @(编程) mysql数据库提供了备份命令mysqldump,可以结合crontab命令进行定时备份. 我写了一个mysqlbackup. ...
- LINUX下使用crontab进行RMAN备份实验
之前写了脚本,手动执行可以,使用crontab总是无法运行成功,今天下午花了两个小时实验,完成如下: 注意事项:脚本完成首先手动执行,确定可以正常执行. 在crontab中使用,要注意以下几点: 1. ...
- linux下的crontab服务
linux下的crontab服务:1.crontab 是用来让使用者在固定时间或固定间隔执行程序之用在linux平台上如果需要实现任务调度功能可以编写cron脚本来实现.以某一频率执行任务linux缺 ...
随机推荐
- iOS - XMPP Openfire 服务器的搭建
前言 提前下载好相关软件,且安装目录最好安装在全英文路径下.如果路径有中文名,那么可能会出现一些莫名其妙的问题. 提前准备好的软件: jdk-8u91-macosx-x64.dmg mysql-5.7 ...
- jsonp的案例
一,转发一 首先基于安全的原因,浏览器是存在同源策略这个机制的,同源策略阻止从一个源加载的文档或脚本获取或设置另一个源加载的文档的属性.看起来不知道什么意思,实践一下就知道了. 1.随便建两个网页 一 ...
- tomcat原理(一)server.xml中的host虚拟主机的理解
一.Tomcat服务器端口的配置 Tomcat的所有配置都放在conf文件夹之中,里面的server.xml文件是配置的核心文件. 如果想修改Tomcat服务器的启动端口,则可以在server.xml ...
- Struts2的数据封装
在很多的实际开发场景中,页面提交请求参数Action ,在Action中接收参数并对接收的数据进行封装.封装到一个JavaBean中,将JavaBean传递给业务层中.Struts2数据封装分为两类: ...
- JAVA简便解析json文件
JAVA简便解析json文件 首先放上我要解析的json文件: { "resultcode":"200", "reason":"S ...
- requests库使用
介绍: 发送HTTP请求的第三方库,比起之前用到的urllib,requests模块的api更加便捷(本质就是封装了urllib3) 安装:pip3 install requests 学习reques ...
- 初学 Java Web 开发,从 Servlet 开发
1. 基本要求:Java 编程基础 有良好的 Java 语言编程基础,这是必须的,在讨论 Web 开发技术时提了一个 Java 编程基础的问题会被鄙视的. 2. 环境准备 (Eclipse + Tom ...
- 【Luogu3804】【模板】后缀自动机(后缀自动机)
[Luogu3804][模板]后缀自动机(后缀自动机) 题面 洛谷 题解 一个串的出现次数等于\(right/endpos\)集合的大小 而这个集合的大小等于所有\(parent\)树上儿子的大小 这 ...
- Luogu[POI2005]KOS-Dicing
题面 二分后用网络流判定 S->人,流量为二分的mid 人->比赛,流量为1 比赛->T,流量为1 输出方案只要判断a就可以了 # include <bits/stdc++.h ...
- awk多分隔符功能及wc命令案列及企业级应用
打印最后一行行号: cat -n /etc/services|tail -1 awk '{print NR $0}' oldboy.txt|tail -1 awk '{print NR $0}' /e ...