设为首页 收藏本站
查看: 317|回复: 0

[经验分享] Linux下任务调度的crond常驻命令

[复制链接]

尚未签到

发表于 2016-3-14 07:15:59 | 显示全部楼层 |阅读模式
  crond 是linux用来定期执行程序的命令。当安装完成操作系统之后,默认便会启动此任务调度命令。crond命令每分锺会定期检查是否有要执行的工作,如果有要执行的工作便会自动执行该工作。而linux任务调度的工作主要分为以下两类:
  1、系统执行的工作:系统周期性所要执行的工作,如备份系统数据、清理缓存
  2、个人执行的工作:某个用户定期要做的工作,例如每隔10分钟检查邮件服务器是否有新信,这些工作可由每个用户自行设置
  Crontab是UNIX系统下的定时任务触发器,其使用者的权限记载在下列两个文件中:
  文件
  含义
  /etc/cron.deny
  该文件中所列的用户不允许使用Crontab命令
  /etc/cron.allow
  该文件中所列的用户允许使用Crontab命令
  /var/spool/cron/
  是所有用户的crontab文件
  /var/spool/cron/crontabs
  /var/spool/cron/crontabs
  
  Crontab命令的格式为:crontab–l|-r|-e|-i [username],其参数含义如表一:
  参数名称
  含义
  示例
  -l
  显示用户的Crontab文件的内容
  crontabl –l
  -i
  删除用户的Crontab文件前给提示
  crontabl -ri
  -r
  从Crontab目录中删除用户的Crontab文件
  crontabl -r
  -e
  编辑用户的Crontab文件
  crontabl -e
  
  用户所建立的Crontab文件存于/var/spool/cron中,其文件名与用户名一致。
  它的格式共分为六段,前五段为时间设定段,第六段为所要执行的命令段,
  格式如下:* * * * * <command>(command可是命令也可以是sh脚本,建立的脚本要付给可执行的权限,chomd 777 test.sh)
  其时间段的含义如表二:
  段
  含义
  取值范围
  第一段
  代表分钟
  0—59
  第二段
  代表小时
  0—23
  第三段
  代表日期
  1—31
  第四段
  代表月份
  1—12
  第五段
  代表星期几,0代表星期日
  0—6
  例:如果用户的Crontab文件的内容是:29 19 * * *echo its dinner time,则系统每天的19:29显示‘its dinner time’
  示例(创建一个cron全过程,每分钟都会在test.txt里输入当前时间):
  1. 以普通用户登录linux系统(我用的是CentOS4.1)
  2. $crontab –e
  说明:系统默认的编辑器是VIM,如果不是请加上以下shell:
  $EDITOR=vi
  $export EDITOR
  3. 输入”*/1 * * * *date >> $HOME/test.txt”,save and exit VIM
  4. $su root
  5. $cd /etc/init.d
  6. ./crond restart
  下面看看看几个具体的例子:
  ● 0 */2 * * * /sbin/service httpd restart 意思是每两个小时重启一次apache
  ● 50 7 * * * /sbin/service sshd start 意思是每天7:50开启ssh服务
  ● 50 22 * * * /sbin/service sshd stop 意思是每天22:50关闭ssh服务
  ● 0 0 1,15 * * fsck /home 每月1号和15号检查/home 磁盘
  ● 1 * * * * /home/bruce/backup 每小时的第一分执行/home/bruce/backup这个文件
  ● 00 03 * * 1-5 find /home"*.xxx" -mtime +4 -exec rm {} \; 每周一至周五3点钟,在目录/home中,查找文件名为*.xxx的文件,并删除4天前的文件。
  ● 30 6 */10 * * ls 意思是每月的1、11、21、31日是的6:30执行一次ls命令
  
  来源:http://blog.csdn.net/wtxidian/archive/2007/05/25/1625782.aspx
  
  
  
  基本格式 :
  *  *  *  *  *  command
  分 时 日 月 周 命令
  第1列表示分钟1~59 每分钟用*或者 */1表示
  第2列表示小时1~23(0表示0点)
  第3列表示日期1~31
  第4列表示月份1~12
  第5列标识号星期0~6(0表示星期天)
  第6列要运行的命令
  crontab文件的一些例子:
  30 21 * * * /usr/local/etc/rc.d/lighttpd restart
  上面的例子表示每晚的21:30重启apache。
  
  45 4 1,10,22 * * /usr/local/etc/rc.d/lighttpd restart
  上面的例子表示每月1、10、22日的4 : 45重启apache。
  
  10 1 * * 6,0 /usr/local/etc/rc.d/lighttpd restart
  上面的例子表示每周六、周日的1 : 10重启apache。
  
  0,30 18-23 * * * /usr/local/etc/rc.d/lighttpd restart
  上面的例子表示在每天18 : 00至23 : 00之间每隔30分钟重启apache。
  
  0 23 * * 6 /usr/local/etc/rc.d/lighttpd restart
  上面的例子表示每星期六的11 : 00 pm重启apache。
  
  * */1 * * * /usr/local/etc/rc.d/lighttpd restart
  每一小时重启apache
  
  * 23-7/1 * * * /usr/local/etc/rc.d/lighttpd restart
  晚上11点到早上7点之间,每隔一小时重启apache
  
  0 11 4 * mon-wed /usr/local/etc/rc.d/lighttpd restart
  每月的4号与每周一到周三的11点重启apache
  
  0 4 1 jan * /usr/local/etc/rc.d/lighttpd restart
  一月一号的4点重启apache
  
  
  执行ssh不能运行的问题。
  所有的crontab问题只有两种可能,
1,环境
2,路径
而第二种问题往往又是第一种问题引起的,所以加上环境后,.bash_profile里的环境后99%的问题都一招通杀。
.bash_profile会读取.bashrc
.bashrc 会读取 /etc/bashrc
/etc/bashrc 会读取 /etc/profile
一个linux所有的系统用户,所有的环境变量,都逃不出以上几个文件。(前提是你用bash)
  
  都使用绝对路径:
  source~/.bash_profile
  cd/usr/local/yidaba/useraction/
  nohup/usr/local/java/bin/java -Xms80m-Xmx256m-XX:ThreadStackSize=128 -jar/usr/local/yidaba/useraction/useractionv1.jar>/usr/local/yidaba/useraction/test.log
  
  
  * */2 * * * wget--delete-after http://myzone.yidaba.com/tftp.php

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.iyunv.com/thread-190405-1-1.html 上篇帖子: 在Linux中模拟击键和鼠标移动 下篇帖子: Linux下which、whereis、locate、find 命令的区别
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表