Linux 做业调度器 crond

linux缺省会启动crond进程,crond进程不须要用户启动、关闭。 
须要启动/关闭cron
/sbin/service crond start   --启动服务
/sbin/service crond stop   --关闭服务
/sbin/service crond restart  --重启服务
/sbin/service crond reload   --从新载入配置
crond进程负责读取调度任务并执行,用户只须要将相应的调度脚本写入cron的调度配置文件中。 
cron的调度文件
有如下几个:
crontab
cron.d
cron.daily
cron.hourly
cron.monthly
cron.weekly
若是用的任务不是以hourly monthly weekly方式执行,则能够将相应的crontab写入到crontab 或cron.d目录中。
 
存放文件 
/etc/cron.deny 文件列出全部不容许使用 crontab命令的用户
/etc/cron.allow 文件所列的用户容许使用crontab命令
/var/spool/cron  全部用户的crontab文件
/var/spool/cron/crontabs 
 
一、直接用crontab 命令编辑
cron服务提供 crontab 命令来设定cron
命令格式为:crontab -l|-r|-e|-u [username]
参数含义:
crontab -l 列出某个用户的cron服务内容
crontab -e 编辑某个用户的cron 的内容
crontab -r 移除某个用户的cron的全部内容
crontab -u 设定某用户的cron服务
命令如:
root 查看自身的cron设置:crontab -u root -l
删除用户test的cron设置:crontab -u test -r
 
内容格式:* * * * *命令前面的五个*号,表示分,时,日,月,周
如:表明意义   分钟   小时   日期   月份   周
        数字范围   0-59  0-23    1-31  1-12  0-7
 
例如:#crontab -e59 23 1 5 * mail linuxing < /home/test.txt
每在5月1日,23点59分就把/home/test.txt的内容做为邮件发给linuxing用户

*/5 * * * * /opt/test.sh    每5分钟就执行一次/opt/test.sh脚本
0 3,6 * * * /usr/local/bin/test.sh    每在3点和6点整点都执行/usr/local/bin/test.sh命令
0 8-12 * * * /root/backup.sh   8 点到 12 点之间的每小时的0分都执行/root/backup.sh
0 */2 * * * echo "Have a break now." >> /tmp/test.txt     每两个小时
0 23-7/28 * * * echo "Have a good dream:)" >> /tmp/test.txt  晚上11点到早上8点之间每两个小时,早上八点 
0 11 4 * 1-3 command line    每月的4号和每一个礼拜的礼拜一到礼拜三的早上11点 
0 4 1 1 * command line     1月1日早上4点
01 6 * * * find /home/mysql/databack/* -mtime 30 -print|xargs rm -rf  定时清除 数据库备份

 

 

二、编辑/etc/crontab 文件配置cronmysql

 cron服务每分钟不只要读一次/var/spool/cron内的全部文件,还须要读一次/etc/crontab,所以咱们配置这个文件也能运用cron服务作一些事情。用crontab配置是针对某个用户的,而编辑/etc/crontab是针对系统的任务。linux

此文件的文件格式是:
redis

  SHELL=/bin/bash
  PATH=/sbin:/bin:/usr/sbin:/usr/bin
  MAILTO=root //若是出现错误,或者有数据输出,数据做为邮件发给这个账号
  HOME=/ //使用者运行的路径,这里是根目录
  # run-parts
  01 * * * * root run-parts /etc/cron.hourly //每小时执行/etc/cron.hourly内的脚本
  02 4 * * * root run-parts /etc/cron.daily //天天执行/etc/cron.daily内的脚本
  22 4 * * 0 root run-parts /etc/cron.weekly //每星期执行/etc/cron.weekly内的脚本
  42 4 1 * * root run-parts /etc/cron.monthly //每个月去执行/etc/cron.monthly内的脚本

 

 

  你们注意"run-parts"这个参数了,若是去掉这个参数的话,后面就能够写要运行的某个脚本名,而不是文件夹名了。sql

典型例子:数据库

定时备份mysql 数据库vim

一、crontab -ebash

二、01 3 * * * /home/backmysqlurl

三、vim /home/backmysqlspa

#!/bin/sh

rq=`date +%Y%m%d`

mysqldump -uroot -p123456 teatop_db --skip-lock-tables >/mysqldata/databack/mysql$rq.sql

四、/sbin/service crond restartrest

 

定时备份redis

一、crontab -e

二、01 3 * * * /home/redis.sh

三、vim /home/redis.sh

#!/bin/sh

rq=`date +%Y%m%d`

mkdir /mysqldata/redis/redis$rq

cp -R /usr/redisdata/* /mysqldata/redis/redis$rq

四、service crond restart

相关文章
相关标签/搜索