Linux的计划任务

Posted piwenfei

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux的计划任务相关的知识,希望对你有一定的参考价值。

一、检查相关服务

1、检查crond服务

service crond status

安装服务

yum install vixie-cron

2、检查crontab配置工具

crontab -l

安装crontab

yum install crontabs

二、设置计划任务

1、查看已有的计划

[[email protected] ~]# crontab -l
*/1 * * * * date >> /tmp/log.txt
*/1 * * * * sleep 30s; date >> /tmp/log.txt

每一行表示一个计划。每一行的左边有5颗*表示计划执行的时间 右边是需要执行的代码。

在crontab的配置文件中有关于5颗*的解释。

技术分享
[[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
技术分享

从上面的解释可以看出,每条计划的最小执行时间只能设置到每分钟执行一次。那么如何设置一个每隔30s执行一次的计划呢,通过设置两条相同的计划,但是第二条会在执行的时候 sleep 30s。

2、编辑计划

crontab -e

3、下面是几个简单的例子

每分钟执行一次。

* * * * * command

每30分钟执行一次。

0,30 * * * * command

每天9到10点的第1分钟执行一次。

1 9-10 * * * command

每隔2天的10点的第1分钟执行一次。

1 10 */2 * * command

4、关于上面例子的特殊符号解释

*:代表所有可能的值。

,:指定一个列表范围,例如,"1,3,5,7,9"

-:指定一个整数范围,例如,"1-5" 表示 "1,2,3,4,5"

/:指定时间的间隔频率,例如、"0-23/2" 表示每两小时执行一次。

5、查看计划执行的日志

[[email protected] ~]# cat /var/log/cron
Sep 13 12:33:02 localhost run-parts(/etc/cron.daily)[1277]: finished logrotate

 

三、注意事项

1、command中涉及文件路径时写全局路径。

2、系统自动执行任务调度时,是不会加载任何环境变量的。

以上是关于Linux的计划任务的主要内容,如果未能解决你的问题,请参考以下文章

Linux系统管理10——进程和计划任务管理

linux中的进程于计划任务管理

Linux/Centos7系统管理之进程与计划任务管理

Linux——进程和计划任务管理

Fragment 中的计划任务将 getActivity 返回为 null

Linux系统之守护进程和计划任务