今天我们来分享一下关于crond和crontab的简单概念和应用。
crond是工具,是linux的一个定时执行的服务项,可以通过crontab 命令添加或者编辑需要定时执行的任务。crontab是一个命令qs,常见于Unix和类Unix的操作系统之中,用于设置周期性被执行的指令。该命令从标准输入设备读取指令,并将其存放于“crontab”文件中,以供之后读取和执行。因此,crond的概念和crontab是不可分割的。
可以用不同的命令查看、启动、停止、重启crond服务状态:
#/sbin/service crond status 查看crond服务状态:
#/sbin/service crond start 启动crond服务状态:
#/sbin/service crond stop 停止crond服务状态:
#/sbin/service crond restart 重启crond服务状态:
以上用root用户进行更好,普通用户调用如下(看一下蠢博主干的这些事,不要模仿):
最好以root用户去调用上述操作,我就不示范了,心疼蠢萌的自己。
用户级可以进行的操作:
crontab -u 设定某个用户的cron服务
crontab -l 列出某个用户cron服务的详细内容
crontab -r 删除某个用户的cron服务
crontab -e 编辑某个用户的cron服务
crond是crontab的守护进程,它每分钟wake up一次,按照crontab里定义的形式来执行任务,crontab是你要定时执行的服务,可以编辑/etc/crontab来修改成你要的服务。
打开自己的/etc/crontab,大概是这样的。
(系统级的)做系统级配置会直接配置 /etc/crontab
(用户级的)一般还是使用 crontab -e ,这样系统也会帮着检查我们配置的脚本语法。
进vi编辑模式,编辑的内容一定要符合下面的格式:
/1 * * * ls >> /tmp/ls.txt
这个格式的前一部分是对时间的设定,后面一部分是要执行的命令,如果要执行的命令太多,可以把这些命令写到一个脚本里面,然后在这里直接调用这个脚本就可以了,调用的时候记得写出命令的完整路径。时间的设定我们有一定的约定,前面五个*号代表五个数字,数字的取值范围和含义如下:
引用:
分钟(0-59)、小時(0-23)、日期(1-31)
月份(1-12)、星期(0-6)//0代表星期天
除了数字还有几个个特殊的符号就是”“、”/”和”-“、”,”,代表所有的取值范围内的数字,”/”代表每的意思,”*/5”表示每5个单位,”-“代表从某个数字到某个数字,”,”分开几个离散的数字。
每次编辑完某个用户的crond设置后,crond自动在/var/spool/crond下生成一个与此用户同名的文件,此用户的crond信息都记录在这个文件中,这个文件是不可以直接编辑的,只可以用crontab -e 来编辑。crond启动后每过一份钟读一次这个文件,检查是否要执行里面的命令。因此此文件修改后不需要重新启动crond服务。
举例一个简单用户下的crond如下:
用户级Crond编译内容如下:
*/1* * ** echo "thanks for you!">>/dev/pts/2
*/1 * * * * echo "say hello!" >> /home/smile/code/homework/crond.txt
*/4 * * * * echo "can you see me!" >> /home/smile/code/homework/crond.txt
运行截图如下:
分享如上,望共同进步,如有错误,望斧正!
参考1:http://blog.csdn.net/y1730008223cong/article/details/72956465