# whereis cron
可以看到,cron是一个系统管理员命令,只有root权限才能使用。
在本人所玩的嵌入式系统中,根本就没有cron这个东西(嵌入式系统中的资源是宝贵的,
尽量不要有一些相关性不大的东西在系统中)。
之所以写这篇学习心得,也纯粹是感觉cron这个东西挺好玩的;
因为很多没有经过系统验证,所以如果有理解错误的地方也感谢大家能够指出来。
cron命令会周期性的读取配置文件并根据配置文件中的配置来执行各个程序,配置文件有:
/etc/crontab,这个是cron配置文件的总入口;
/etc/cron.hourly,这个目录中包含的是每小时需要执行一次的程序;
/etc/cron.daily,这个目录中包含的是每天需要执行一次的程序;
/etc/cron.weekly,这个目录包含的是每星期需要执行一次的程序;
/etc/cron.monthly,这个目录包含的是每个月需要执行一次的程序。
因为有了这些对应的配置文件,所以系统管理员可以根据需要进行配置。
比如你想周期性的执行ntp程序,那你可以将ntp放到/etc/cron.daily目录下,
这样ntp程序就会每天去执行一次。
# /etc/init.d/cron restart
可以用来重启crond这个程序。
需要注意的是,通常将这些例行任务分布在不同的时间点去执行,
以避免系统出现瞬间繁忙的问题。
程序的执行会产生很多的日志,而有时候不希望将这些例行程序所产生的日志信息都输出到控制台上。
这时可以利用程序的输出重定向到/dev/null中或者重定向到指定的档案中。
/dev/null是一种特殊的字符设备文件。
它就像是一个黑洞,用户可以将任何不需要的数据丢进去。
# ls -l /dev/null
crw-r--r-- 1 root root 1, 3 Oct 21 2013 /dev/null
#
# stat /dev/null
File: "/dev/null"
Size: 0 Blocks: 0 IO Block: 4096 character special file
Device: fe00h/65024d Inode: 770 Links: 1 Device type: 1,3
Access: (0644/crw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2013-10-21 03:15:45.000000000
Modify: 2013-10-21 03:15:45.000000000
Change: 2013-10-21 03:15:45.000000000
#
比如使用make程序编译时,不希望将日志输出到终端上,可以使用如下的命令:
# make 2>&1 | tee log.txt > /dev/null
详细可参考:
http://blog.csdn.net/boyxulin1986/article/details/11264449