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

相關文章
相關標籤/搜索