Linux学习之九-Linux系统定时任务
Linux系统定时任务
在一些实际工作中需要机器在某个时间自动执行某个任务,不需要人为在此时刻参与,可以建立一个定时任务。
- crond 服务是linux下用来周期性的执行某种任务或等待处理某些事件的一个守护进程,与windows下的计划任务类似,当安装完成操作系统后,默认会安装此服务 工具,并且会自动启动crond进程,crond进程每分钟会定期检查是否有要执行的任务,如果有要执行的任务,则自动执行该任务。
使用命令/etc/init.d/crond status检查服务是否处于运行状态,
使用命令/etc/init.d/crond start 启动定时任务
使用命令chkconfig crond on 设置开机启动
[root@localhost ~]# /etc/init.d/crond status crond is stopped [root@localhost ~]# /etc/init.d/crond start Starting crond: [ OK ] [root@localhost ~]# chkconfig crond on [root@localhost ~]#
- 定时任务的写法
crontab -e 编辑定时任务
crontab -l 查看定时任务
* * * * * cmd
minute hour day month week command
分 时 日 月 周 + 执行的命令
*/ 表示间隔
, 表示和
- 表示多少到多少
- 定时任务的取值范围,可以使用命令cat /etc/crontab查看相应配置
[root@localhost ~]# cat /etc/crontab
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
HOME=/
# 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
每个时间参数的取值范围为0-59,0-23,1-31,1-12,0-6(7相当于0)
- 注意事项
a. 定时任务使用命令时最好使用绝对路径
b. 每个定时任务(脚本等)一定要加注释(君子协议)
c. 特殊符号需要转义如:
* * * * * echo "`date +\%F\ \%T`" >>/tmp/time.txt
d. 最好不要让执行的命令有输出,如果避免不了有输出,就定向到空(黑洞)
避免的做法:
*/1 * * * * /usr/sbin/ntpdate ntp5.aliyun.com >/dev/null 2>/dev/null
*/1 * * * * /usr/sbin/ntpdate ntp5.aliyun.com &>/dev/null
标准输出 1>(默认为标准输出)
错误输出 2>
黑洞:/dev/null 重定向到黑洞中的内容全部消失
e. 定时任务中严禁使用相对路径
f. 尽量使用crontab -e来添加定时任务
crontab -e定时任务的文件路径实际就是/var/spool/cron/root可以换在此文件中编辑
原因是:crontab带语法检查出现错误时会报错,适合做定时任务测试
g、 注意:定时任务的命令在编辑之前一定要在命令行先测试成功后再用
5、定时任务举例
1)每隔一分钟追加输出重定向1234567到a.txt
*/1 * * * * echo 1234567 >>/tmp/a.txt
[root@localhost ~]# crontab -e
crontab: installing new crontab
[root@localhost ~]# crontab -l
*/1 * * * * echo 1234567 >>/tmp/a.txt
2)每隔两小时每十分钟重启一下sshd服务
10 */2 * * * /etc/init.d/sshd restart
3)每周三下午六点整echo jiaozuoye
00 18 * * 3 echo jiaozuoye
4)每天下午的两点和四点整echo 京东秒杀
00 14,16 * * * echo "京东秒杀"
5)每年的3月,6月,11月的1-7号的早上八点到晚上八点echo "大酬宾"
00 8-20 1-7 3,6,11 * echo 大酬宾
6)#上课
30 9 * * 0 /oldboy.sh &>/dev/null
方法一:
echo '#上课
> 30 9 * * 0 /oldboy.sh &>/dev/null>>/var/spool/cron/root
方法二:
echo -e '#上课\n30 9 * * 0 /oldboy.sh &>/dev/null' >>/var/spool/cron/root
6、在定时任务的创建过程中,如果系统开启了postfix邮件服务,则每创建成功一个定时任务都会收到一封邮件
/etc/init.d/postfix start 启动邮件服务
mail 查看邮件
U 31 Cron Daemon Sun Apr 1 16:05 24/768 "Cr"
U表示未看 最下面可查看邮件数量
输入数字查看某一封邮件
输入q退出
mailq 查看未发生的邮件队列
>/var/spool/mail/root 清空系统邮件
每个用户的邮件都放在/var/spool/mail下以用户名命名的目录下面
博主原创文章,转载请务必注明出处
Linux学习之九-Linux系统定时任务的更多相关文章
- Linux学习之二-Linux系统的目录结构
Linux学习之二-Linux系统的目录结构 在Linux的根目录下,有很多的目录,但是需要记住,对于Linux而言,一切皆文件.因此此处的目录也是文件.用ls / 命令就能看到根目录下的各类不同的目 ...
- Linux学习笔记(七) 查询系统
1.查看命令 (1)man 可以使用 man 命令名称 命令查看某个命令的详细用法,其显示的内容如下: NAME:命令名称 SYNOPSIS:语法 DESCRIPTION:说明 OPTIONS:选项 ...
- Linux学习心得之 Linux下命令行Android开发环境的搭建
作者:枫雪庭 出处:http://www.cnblogs.com/FengXueTing-px/ 欢迎转载 Linux学习心得之 Linux下命令行Android开发环境的搭建 1. 前言2. Jav ...
- linux学习书籍推荐linux学习书籍推荐
引用地址:http://www.cnblogs.com/notepi/archive/2013/06/15/3137103.html Linux 学习书目推荐 Linux基础 1.<Linux与 ...
- Linux学习心得之 Linux下ant安装与使用
作者:枫雪庭 出处:http://www.cnblogs.com/FengXueTing-px/ 欢迎转载 Linux学习心得之 Linux下ant安装与使用 1. 前言2. ant安装3. 简单的a ...
- linux学习之九 学习过程总结
~写在前面 首先非常感谢孟老师的悉心讲解,使用这种新颖的教学方式(MOOC课堂+博客),也感到非常有幸随着老师的思路对linux的内核进行了初步的系统学习.结合代码和gdb调试工具跟踪分析对linux ...
- Linux学习之Centos(三)------系统文件目录及含义详解
Linux学习之Centos 之三------文件目录及含义 在了解了每个文件的相关种类与属性,以及了解了如何更改文件属性/权限的相关信息后,再来要了解的就是, 为什么每套Linux distribu ...
- Linux学习之十-Linux系统时间
Linux系统时间 1.date命令用于查看以及修改Linux系统的时间,关于date命令的详细帮助文档如下 [root@localhost ~]# date --help Usage: date [ ...
- Linux学习笔记(21) Linux日志管理
1. 简介 (1) 日志服务 在CentOS 6.x中日志服务已经由rsyslogd取代了原先的syslogd服务.rsyslogd日志服务更加先进,功能更多.但是不论该服务的使用,还是日志文件的格式 ...
随机推荐
- iOS笔试题04
1. Object-C有多继承吗?没有的话用什么代替? 1> OC是单继承,没有多继承 2> 有时可以用分类category和协议protocol来代替多继承 2. Object-C有私 ...
- 02.提交bug
写代码最烦的也就是修复bug了,虽然这个避无可避…………………… a. bug的严重级别设置 1级:影响主要流程 ->在bug 的影响下,主流程 测试无法向下进行 2级:影响核心功能 -> ...
- 用Python做一个简单的小游戏
学习总是枯燥的,对于Python小白的我来讲,更是乏味的.为了提高学习的兴趣,今天我就来写一个小程序练练手. 数字猜谜游戏相信大家都不陌生,A给出最小值最大值,B写一个该范围内的数,A猜测写下的是多少 ...
- vmware虚拟机网络不通原因之一
我是在华硕笔记本上安装的vmware workstation.而且我用虚拟机的网络模式喜欢选“桥接”模式. 最近在虚拟上做实验,打开虚拟机windows 2003后,网卡配置静态ip后显示状态正常,但 ...
- Egret入门学习日记 --- 第九篇(书中 2.7~2.8节 内容)
第九篇(书中 2.7~2.8节 内容) 昨天记录到了 2.6节 ,那么今天就从 2.7节 开始. 这个 2.7节 有7个小段,有点长,总结一下重点: 1.调试项目的两种方法. 2.运行项目的两种窗口选 ...
- 谷歌插件:右键搜使用指南.md
基本功能看插件,说几个自定义搜索的实现 自定义技巧:%s选择的文字或页面或链接,%g转换成GBK字符集,%t转换成BIG5字符集,%p剪贴板内容,%u当前页面域名. 注:这部分内容来自谷歌插件介绍.使 ...
- shell 批量重命名
原文链接https://www.cnblogs.com/sunmmi/articles/6709125.html shell 批量重命名 1.把文件名的第一字母批量改成a 方法一: 1 2 3 4 ...
- LC 98. Validate Binary Search Tree
题目描述 Given a binary tree, determine if it is a valid binary search tree (BST). Assume a BST is defin ...
- docker&k8s-配置/常用命令
kubectl delete deployment,ingress,svc demo-mml-jp-ylmopt-web-1 -n demo-mml #删除预生产环境mml组ylmopt-web ...
- (错误)启动ActiveMQ报错:Transport Connector could not be registered in JMX: java.io.IOException: Failed to bind to server socket: stomp://0.0.0.0:61613?
一.错误报告 很明显,端口被占用 二.解决方法 1. 在cmd中输入 netstat -ano 查看61613端口被占用情况,如果有其他进程使用,则使用 taskkill /f /pid 进程PID ...