Linux学习之九-Linux系统定时任务

Linux系统定时任务

在一些实际工作中需要机器在某个时间自动执行某个任务,不需要人为在此时刻参与,可以建立一个定时任务。

  1. crond 服务是linux下用来周期性的执行某种任务或等待处理某些事件的一个守护进程,与windows下的计划任务类似,当安装完成操作系统后,默认会安装此服务 工具,并且会自动启动crond进程,crond进程每分钟会定期检查是否有要执行的任务,如果有要执行的任务,则自动执行该任务。

使用命令/etc/init.d/crond status检查服务是否处于运行状态,

使用命令/etc/init.d/crond start 启动定时任务

使用命令chkconfig crond on 设置开机启动

[[email protected] ~]# /etc/init.d/crond status

crond is stopped

[[email protected] ~]# /etc/init.d/crond start

Starting crond: [ OK ]

[[email protected] ~]# chkconfig crond on

[[email protected] ~]#

  1. 定时任务的写法

crontab -e    编辑定时任务

crontab -l 查看定时任务

*    *    *    *    *    cmd

minute hour day month week command

分    时    日    月    周    +    执行的命令

*/    表示间隔

,    表示和

  • 表示多少到多少
  1. 定时任务的取值范围,可以使用命令cat /etc/crontab查看相应配置

[[email protected] ~]# 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)

  1. 注意事项

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

[[email protected] ~]# crontab -e

crontab: installing new crontab

[[email protected] ~]# 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下以用户名命名的目录下面

博主原创文章,转载请务必注明出处

原文地址:https://www.cnblogs.com/ssgeek/p/9220467.html

时间: 2024-10-09 14:55:41

Linux学习之九-Linux系统定时任务的相关文章

Linux学习记录--文件管理相关系统编程

文件管理相关系统编程 重要文件标识 打开文件标识 O_RDONLY:只读方式打开 O_WRONLY:只写方式打开 O_RDWR:可读写方式打开 打开文件操作副标识 O_CREAT:若路径中文件不存在则创建,使用Open函数时需同时指定文件权限 O_EXCL:若与O_CREAT连用,检查文件是否已经存在,若不存在则建立文件存在则返回错误,这使创建和测试成为一个原子操作 O_APPEND:读写文件从文件尾部开始移动,所有写入数据都加入文件尾部 O_TRUNC:若文件存在并且可以写入,此标识会将源文件

《Linux学习并不难》Linux字符界面(2):关闭和重启Linux系统之shutdown命令

3.2  <Linux学习并不难>Linux字符界面(2):关闭和重启Linux系统之shutdown命令 shutdown命令可以安全地关闭或重启Linux系统,有些用户会使用直接断掉电源的方式来关闭计算机,这是十分危险的.Linux系统与Windows不同,其后台运行着许多进程,所以强制关机可能会导致进程的数据丢失,使系统处于不稳定的状态,在有的系统中甚至会损坏硬件设备.在系统关机前使用shutdown命令,系统管理员会通知一条警告信息给所有登录的用户,告诉他们系统将要关闭,新的用户不能再

1.菜鸟的linux学习之路------linux初体验

脚本编程语言通常是解释型的.这类程序的执行,是由解释器读入代码,并将其转换成内部的形式,在执行.请注意,解释器本身是一般的编译型程序. 常用的脚本编程语言有 :awk,Perl,Python,Ruby,Shell.这里的Ruby是日本人研发的. 注释: linux : 1.rm 删除指定的文件 例:rm /Users/apple/Desktop/QQDock.plist 2.假设你想知道现在的系统有多少人在登录,那么 who命令可以实现 3.|管道符号可以在两个程序之间建立管道:who的输出,成

linux学习书籍推荐linux学习书籍推荐

引用地址:http://www.cnblogs.com/notepi/archive/2013/06/15/3137103.html Linux 学习书目推荐 Linux基础 1.<Linux与Unix Shell 编程指南> C语言基础 1.<C Primer Plus,5th Edition>[美]Stephen Prata著 2.<The  C Programming Language, 2nd Edition>[美]Brian W. Kernighan Davi

《Linux学习并不难》Linux常用操作命令(14):grep命令查找文件中符合条件的字符串

8.14  <Linux学习并不难>Linux常用操作命令(14):grep命令查找文件中符合条件的字符串 使用grep命令可以查找文件内符合条件的字符串.          命令语法: grep [选项] [查找模式] [文件] 命令中各选项的含义如表所示. 选项 选项含义 -E 模式是一个可扩展的正则表达式 -F 模式是一组由断行符分隔的定长字符串 -P 模式是一个Perl正则表达式 -b 在输出的每一行前显示包含匹配字符串的行在文件中的字节偏移量 -c 只显示匹配行的数量 -i 比较时不

《Linux学习并不难》Linux网络配置文件(4):/etc/networks文件

26.4  <Linux学习并不难>Linux网络配置文件(4):/etc/networks文件 /etc/networks文件定义了网络名和网络地址之间的映射关系,下面是/etc/networks文件内容的示例. default 0.0.0.0  loopback 127.0.0.0  link-local 169.254.0.0  test   192.168.0.0 本文节选自<Linux学习并不难>教材,这是一本最实用的.理论实践并重的Linux入门教材.如需阅览整本书的内

《Linux学习并不难》Linux常用操作命令(1): cat命令显示文本文件内容

8.1  <Linux学习并不难>Linux常用操作命令(1): cat命令显示文本文件内容 使用cat命令可以显示文本文件的内容,也可以把几个文件内容附加到另一个文件中.如果没有指定文件,或者文件为"-",那么就从标准输入读取. 命令语法: cat [选项] [文件] 命令中各选项的含义如表所示. 选项 选项含义 -n 对输出的所有行编号 -b 对非空输出行编号 -s 当遇到有连续两行以上的空白行时,就替换为一行的空白行 -E 在每行结束处显示$ 例:显示/etc/ini

linux学习之九 学习过程总结

~写在前面 首先非常感谢孟老师的悉心讲解,使用这种新颖的教学方式(MOOC课堂+博客),也感到非常有幸随着老师的思路对linux的内核进行了初步的系统学习.结合代码和gdb调试工具跟踪分析对linux内核的一些重要机制有了更深刻的理解. 一 学习Linux内核的心得Linux系统的理解 liunx内核是一个十分庞大的操作系统,代码量动辄上千万行,并且还会越来越大,所以通过阅读代码来了解他的机制是不现实的.但是光拿着一本讲linux工作机制的书,比如那本引为经典的巨厚的<深入理解linux内核>

Linux学习之二-Linux系统的目录结构

在Linux的根目录下,有很多的目录,但是需要记住,对于Linux而言,一切皆文件.因此此处的目录也是文件.用ls / 命令就能看到根目录下的各类不同的目录. 1./ 根目录,每一个文件和目录从根目录开始. 只有root用户具有该目录下的写权限. 2./bin binary用户二进制命令文件 包含二进制可执行文件. 在单用户模式下,需要使用的常见Linux命令都位于此目录下.系统的所有用户使用的命令都设在这里. 3./boot 系统引导加载程序文件,包含引导加载程序相关的文件. 内核的initr