当前位置: 主页 > 运维经验 > 经验之谈 >

linux学习笔记之corntab任务计划

时间:2013-05-15 21:43来源:www.80sa.org 作者:admin 点击:
周期性安排计划任务是靠crond这个进程,所以应该首先开启这个进程。 1:开启命令:service crond start -------------------------------------------------------------- 工作原理: crond 进程搜索crontab 文件并
欢迎大家分享自己的文档,请点击查阅:分享方法,Linux系统运维
如果你喜欢这文章,可以点击文章结尾处百度分享,分享到你的各种社区收藏,或推荐给朋友……


周期性安排计划任务是靠crond这个进程,所以应该首先开启这个进程。
 
1:开启命令:service crond start
--------------------------------------------------------------
工作原理:
 
crond 进程搜索crontab 文件并载入内存
 
crontab文件即/var/spool/cron/目录下以用户名命名的文件
 
crond进程启动后,它将首先检查是否用户设置了crontab文件,如果没有转入休眠状态释放系统资源,
 
crond 进程每分钟醒来一次,查看crontab文件决定当前是否有需要执行的命令。
 
命令执行后,任何输出都将作为邮件发给crontab所有有者。
 
 
  cd  /var/spool/cron/
  crontab -e  //使用编辑器编辑当前的crontab文件,当结束时,这个文件会自动安装
 
  crontab  -l 将使在标准输出显示当前的crontab
 
   crontab  -r 删除当前的crontab 文件
 
六部分组成:
 
*/1 * * * * /bin/echo "s dssssssssss" >> /root/one.txt
 
minute :一小时中的那一分钟[0--59]
 
hour :一天中的那几个小时[0--23]
day-of-month: 一个月中的那一天[1--31]
 
mouth -of-year :一年中的哪个月[1--12]
day-of week:一周中的那一天[0-6]
 
command:执行命令,也可以使用命令的全路径 /bin/cp 不能是cp
 
这些项都不可以为空,必须填入
 
如果用户不需要指定其中的几项,那么可以使用通配符号“*” 表示
任何时间 ((((每个时间字段都可以指定多个值,他们可以用(逗号)间隔)))) 
 
 
比如
3,4  6  22  7 * /bin/echo " ##################"  >> /root/one.txt
 
命令应该给出绝对路径,
 
用户必须具有运行所对应命令或程序的权限
-------------------------------------------------
示例:
 
15 5* * 1-5 /bin/echo "s dssssssssss" >> /root/one.txt
 
每周一到周五的5:15分都执行这个命令,如果是周一和周五执行,1,5 这样写,注意:其他的也是这样写。
 
*/2 每隔两小时 
 
8-17点 
 
 
用来限制那些用户可以使用crontab命令
 
/etc/cron.allow
/etc/cron.deny
/etc/cron.allow
如果这个文件存在。那么只在列在此文件夹中的用户才可以使用crontab命令,如果这个文件不存在,则查/etc/cron.deny
 
/etc/cron.deny
如果这个文件夹存在,则此文件中列出的用户都不能使用crontab命令,
 
如果两个文件都不存在,则只有root用户可以使用crontab命令。
 
如果两个文件都存在而且都为空,则所有用户都可以使用crontab命令
=================================================
crontab  
                                      //执行周期性计划任务
#service crond start
#crontab -l/r/e                             //显示/删除/编辑当前的周期性任务
 
格式:minutes hour day week month commands  
所有用*表示
不同时间用 ,
时间段用 - 
 
例子: 
#vim bak.sh
 
#!bin/bash
/bin/cp /root/data/file1 /root/data/`/bin/date +%Y%d%m%H%M`.bak
chmod -R 755 bak.sh
#crontab -e
*/1 * * * * /root/bak.sh
保存退出                                      
//每隔一分钟以日期为文件名备份
 
例子: 
0 1 * * * /bin/cp /root/date/file1 /root/date/file1.bak  
//每天1点备份file1文件
 
0 1 * * * 1-5 /bin/cp /root/date/file1 /root/date/file1.bak  
//每天1点(周一到周五)备份file1文件
 
*/1 * * * * /bin/cp /root/date/file1 /root/date/file1.bak  
//每隔一分钟备份file1文件
 
0,30 18-23 * * * /usr/local/apache/bin/apachectl restart(*/30 18-23 * * *)
//每天18:00-23:00之间每隔30分钟重启apache
 
0 23 * * 6 /usr/local/apache/bin/apachectl restart
上面的例子表示每星期六的晚上11点重启 apache 。
 
#date                                         //显示系统当前时间
#/usr/date +%Y-%m-%d-%H-%M                         //按指定格式显示
 
 
#vim /etc/cron.deny                           //不允许使用此命令的清单(黑名单)
#vim /etc/cron.allow                          //允许使用此命令的清单(白名单)
 
 
 
 
额外扩充:
at                                         //执行一次性计划任务
#service atd start
#at now +1 minutes/hours/days                       
at>ll /  >/root/ll.txt                      //一分钟/小时/天后执行计划
Ctrl+D  完成
#at -l/atq                                  //查看计划任务
#at -d/atrm                                 //删除计划任务
 
#at 14:30 09/08/2010                        //通过具体时间来执行计划
#at 14.30                                   //当天
#at 14:30 tomorrow                          //明天
 
#vim /etc/at.deny                           //不允许使用at命令的清单(黑名单)
#vim /etc/at.allow                          //允许使用at命令的清单(白名单)
 
#batch                                      //在系统的平均负荷(0.8%)下使用,不限时间
 

转载请注明linux系统运维
http://www.linuxyw.com/linux/jinglizhitian/20130515/342.html

------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
验证码: 点击我更换图片
栏目列表
推荐内容