关于crond
crond是linux下的一个周期性的执行某种任务或者等待处理某些时间的一个守护进程,与windows下的计划任务类似,当安装完成操作后,默认会安装此服务工具,并且会自动启动crond进程,crond进程每分钟会定期检查是否有要执行的任务,如果有要执行的任务,则自动执行该任务。
crond并且也是一个守护进程,类似于计划任务,crond进程会自动启动。
上图中我们可以看到1920crond进程,这个进程是一个守护进程,
linux任务调度的工作主要分为以下两类:
1、系统执行的工作:系统周期性所要执行的工作,如备份系统数据、清理缓存
2、个人执行的工作:某个用户定期要做的工作,例如每隔10分钟检查邮件服务器是否有新信,这些工作可由每个用户自行设置
crontab命令
与crond相关的命令就是crontab命令,我们通过这个命令实现定时任务的工作。
crontab有几个关于命令的选项,
- -u用来设定某个用户的crontab服务。
- file:file是命令文件的名字,标识将file作为crontab的任务列表文件并且载入crontab。
- -e :编辑某个用户的crontab文件内容。
- -l :显示某个用户的crontab文件内容。
- -r : 删除用户当前的crontab
- -c :指定crontab的目录
特别需要说明下关于crontab的文件格式:
在这里有几个符号是有特殊意义的:
符号 | 意义 |
---|---|
* | 代表所有可能的值,实际上就是每的意思,比如每年每月。。。 |
, | 可以使用逗号隔开的值指定一个列表范围 |
- | 可以用整数之间的-标识一个整数的范围 |
/ | 可以用正斜线指定时间的间隔频率 |
# | 注释行 |
例如:
*/1 * * * * /bin/echo Hello, world! >>/home/yuzhe/text.txt
这个就是没一分钟向text.txt文件当中追加写入Hello,world!。
来看看效果。
当然我们也可以向终端屏幕上定时写东西。终端其实也就是一个文件,我们向这个文件上写入内容即可。
*/1 * * * * /bin/echo Hello, world! >> /dev/pts/0
这里的/dev/pts/0就是你所登陆的终端对应得,要去查的话,只需要使用命令wo am i
即可。