第十七天-linux系统定时任务crontab入门讲解

首先先了解下程序和进程的区别:

程序概念:
  程序是为了解决一个信息处理任务而预先编制的工作执行方案,是由一串cpu能够执行的基本指令组成的序列,每一条指令规定了计算机进行什么操作(比如加、减、乘、除、判断等)及操作需要的有关数据。例如,从存储器读入一个数送到运算器就是一条指令,从存储器读出一个数并和运算器中原有的数相加也是一条指令。
简单的说:我们使用的命令就是程序,QQ程序,听歌的MP3软件,linux系统也是程序。
  基本特征:一堆代码,一个文件,一个命令,程序是静态的,放在电脑里还没有被运行。

进程概念:

  所谓进程就是现在系统正在执行的程序,每当输入一个命令时,shell也会及时启动一个进程。
  简单的说,把系统中的程序运行起来就是进程,进程放在内存中。
  每个进程启动时,系统会指定一个唯一的数字给每一个进程,这个数字称为进程ID简称PID进程号。
  每个进程都可以以两种方式存在,一个前台和一个后台。
  一般的系统网络服务都是以后台方式存在的,且都会常驻在系统中,直到关机或者主动杀死时才结束,例如远程连接服务sshd。

linux的定时任务服务crond(crontab)服务
1、crond是什么?
  crond是linux系统中用来定期执行命令或者指定程序任务的一种服务或者软件。
  一般在我们安装完系统的时候,crond就会默认存在了。
  我们优化开机自启动服务的时候,第一个就是crond。
  crond服务默认情况(每分钟),会检查系统中是否有需要执行的定时任务,如果有,就会根据事先定义好的规则来执行这个定时任务。

  秒级任务:
  1、crond自身无能为力可以通过方法实现。http://blog.csdn.net/shootyou/article/details/6918538
  2、自己写守护进程shell循环。
  3、Quartz也可以实现。

2、为什么需要定时任务?
  服务器:7*24小时开机提供服务是网站的基本特征。
  重要的数据:服务器上的数据一般最低1天备一次,有时每分备一次,或实时备份。
             半夜1点备份:我们每天爬起来备份,然后睡觉,假设一次备份持续5个小时。
  定时任务就产生了,定时任务可以实现帮助我们自动备份数据。

3、linux的定时任务分类:
  1、at适合执行一次就结束的调度任务。突发性任务。依赖服务atd。
  2、anacron适合非7*24小时开机的服务器,开机执行,检测停机期间没有执行的任务,在开机后一次性执行一遍。
  3、crond,crond服务默认情况(每分钟),会检查系统中是否有需要执行的定时任务,如果有就会根据事先定义好的规则来执行这个定时任务。*****
  提示:我们说的crond是一个定时任务守护进程,而crontab是用户用来设置定时任务规则的命令。

4、指令选项说明含表

参数

含义

指定示例

-l

查看crontab文件内容,提示:l可以理解为list缩写

crontab -l

-e

编辑crontab文件内容,提示:e可以理解为edit缩写

crontab -e

-i

删除文件内容时会提示确认,很少用到

crontab -ri

-r

删除文件内容

crontab -r

-u

指定使用的用户执行任务

crontab -u boy

补充:crontab {-l|-e} 实际上就是操作/var/spool/cron/当前用户  这样的文件

5、使用者权限及定时任务文件

文件

说明

/etc/cron.deny

该文件中所列用户不允许使用crontab命令

/etc/cron.allow

该文件中所列用户允许使用crontab命令,优先于/etc/cron.deny

/var/spool/cron/

所有用户crontab配置文件默认都存放此目录,文件名以用户名命名

6、crontab格式说明

 

原文地址:https://www.cnblogs.com/migongci0412/p/5005899.html