crontab命令:
概念:crontab命令用于设置周期性被执行的命令。
原理:crontab将定期执行的命令及配置添加到指定文件中,crond进程每分钟会去检查这些文件,并根据配置信息自动执行对应的命令。
说明:
crond是linux下用来周期性的执行某种任务或等待处理某些事件的一个守护进程,crond进程每分钟会定期检查是否有要执行的任务,如果有要执行的任务,则自动执行该任务。
任务有两类:
系统任务调度:系统周期性所要执行的工作,比如写缓存数据到硬盘、日志清理等。在/etc目录下有一个crontab文件,这个就是系统任务调度的配置文件。
用户任务调度:用户定期要执行的工作。用户可以使用crontab工具来定制自己的计划任务。所有用户定义的crontab文件都被保存在/var/spool/cron目录中,其文件名与用户名一致。
crontab文件的格式:
每一行都代表一个任务,每个任务的配置格式为:minute hour day month week command
注意:week可以是从0到7之间的任何整数,0或7代表星期日。
格式:
crontab 参数
参数:
crontab -l 查看当前用户的定时任务配置
crontab -e 编辑当前用户的定时任务配置
crontab -r 删除当前用户的定时任务配置
crontab -u 操作指定用户的定时任务配置,需要和-l、-e、-r参数搭配使用,一般由root用户来运行。eg:crontab -u jack -l
注意:
若定时任务没有执行,可能是由于环境变量没有正确设置导致的,故一定要在command中将用到的环境变量设置好。
watch命令:
概念:定时将命令的输出结果输出到标准输出。
说明:我们一般使用crontab来执行定时任务,使用watch来实时地观测命令的结果。
格式:watch [参数] 命令
参数:
-n或--interval 指定命令的运行周期,默认为2s
-d或-differences 高亮显示本次变化的地方
-d=cumulative 把所有变动过的地方(不管最近的那次有没有变动)都高亮显示出来。