ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 初识Cron

初识Cron

原创 Linux操作系统 作者:bluethfan 时间:2010-01-20 17:17:40 0 删除 编辑

        每一个做服务器管理的,数据库管理的,都免不了要做 scheduled commands,linux下有个工具Cron,它是根据月、天、周、时间的组合设定,周期性的执行特定任务的守护程序。 Cron需要系统处于运行状态。如果系统未运行,则计划任务无法被执行。要使用cron服务, 需安装vixie-cron RPM包,也要确保crond处于运行状态。用rpm -q vixie-cron来 测定此软件包是否安装.用/sbin/service crond status来 测定crond是 否处于运行状态。 cron的主要配置文件在以下的/etc/crontab文件中:包 含如下行  
 SHELL=/bin/bash 
 PATH=/sbin:/bin:/usr/sbin:/usr/bin 
 MAILTO=root 
 HOME=/ 
 # run-parts 
 01 * * * * root run-parts /etc/cron.hourly 
 02 4 * * * root run-parts /etc/cron.daily 
 22 4 * * 0 root run-parts /etc/cron.weekly 
 42 4 1 * * root run-parts /etc/cron.monthly  


        前 四行是有关设置cron任 务运行的环境变量. SHELL变 量的值指定系统使用的SHELL环 境(该 样例为bash shell),PATH变 量定义了执行命令的路径。Cron的 输出以电子邮件的形式发给MSILTO变 量定义的用户名. 如 果MAILTO变 量定义为空字符串(MAILTO=""), 电子邮件不 会被发送. 执 行命令或脚本时HOME变 量可用来设置家目录。  


        文 件/etc/crontab中 每行任务的描述格式如下: 
minute hour day_of_month month day_of_week command 
minute - 从0 到 59的 整数 
hour - 从0到23的 整数 
day - 从1到31的 整数 (必须是指定月份的有效日期) 
month - 从1到12的 整数 (或如Jan或Feb简写的月份) 
dayofweek - 从0到7的整数,0或7用来描述周日 (或 用Sun或Mon简 写来表示) 
command - 需要执行的命令(可 用as ls /proc >> /tmp/proc或 执行自定义脚本的命令)  


        对 于以上各语句,星 号(*)表 示所有可用的值. 例 如,*在 指代month时 表示每月执行(需要符合其他限制条件)该命令。  
        整 数间的连字号(-)表 示整数列,例 如1-4意 思是整数1,2,3,4.  
        指 定数值由逗号分开。如:3,4,6,8表 示这四个指定整数.  
        符 号“/”指 定步进设置.“/”表 示步进值。如0-59/2定 义每两分钟执行一次。步进值也可用星号表示。如*/3用 来运行每三个月份运行指定任务.  
        以“#”开 头的为注释行,不 会被执行。  


        如 文件/etc/crontab所 示,它 在RUN-PART脚 本中指定系统每小时,每天,每周。每月运行/cron.hourly, /etc/cron.daily, /etc/cron.weekly, 和/etc/cron.monthly中 的文件.这 些目录中的文件为shell脚 本。  
        如 果一个cron任 务需要定期而不是按小时,天,周,月 来执行,则 需要添加/etc/cron.d目 录. 这 个目录下的所有文件和文件/etc/crontab语 法相同. 查 看样例  
 # record the memory usage of the system every monday 
 # at 3:30AM in the file /tmp/meminfo 
 30 3 * * mon cat /proc/meminfo >> /tmp/meminfo 
 # run custom script the first day of every month at 4:10AM 
 10 4 1 * * /root/scripts/backup.sh  


        除 了root用 户之外的用户可以执行crontab配 置计划任务。所有用户定义的crontab存 储在目录/var/spool/cron下, 任 务会以创建者的身份被执行。要以特定用户创建一个crontab, 先 以该用户登录,执 行命令crontab -e, 系统会启动在VISUAL或 者EDITOR中 指定的的编辑软件编辑crontab. 文 件内容与/etc/crontab格 式相同. 当 更改的crontab需 要保存时,文 件会保存在成如下文件/var/spool/cron/username.文 件名会根据用户名而不同。  


        cron 服 务会每分钟检查一次/etc/crontab, /etc/cron.d/, 和/var/spool/cron文 件下的变更.如 果发现变化,就 会下载到存储器中.因 此,即 时crontab文 件改变了,程 序也不需要重新启动。

 接下来,哥哥我就要去写一下自己的 scheduled commands。理论到实践,差距不是一点两点,Go!!

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/21073196/viewspace-625613/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2010-01-18

  • 博文量
    26
  • 访问量
    104653