Centos7设置定时任务
最近出了一件大事,用ShowDoc的Docker方式部署在服务器上,白天有工人换机箱,把电断了,导致ShowDoc数据丢了。。备份数据刻不容缓。
1、安装 crontabs服务并设置开机自启:
$ yum install crontabs $ systemctl enable crond $ systemctl start crond
2、配置定时规则
$ vim /etc/crontab //或者 crontab -e 立即生效
在配置文件中配置你的定时执行规则
59 23 * * * root /home/backup/showdoc/backup.sh
backup.sh是你将要定时执行的脚本文件,如图所示:
规则很简单,看注释就能看懂了,从左到右分别是 分钟(0~59)、小时(0~23)、天(1~31)、月(1~12)、星期(0~6)、用户名、要执行的命令或者脚本。
脚本内容如下:
#! /bin/bash t=$(date +%Y%m%d%H%M%S) cd /home/backup/showdoc/mount/ tar -zcvf ../data/data_$t.tar ./showdoc_data find /home/backup/showdoc/data -mtime 7 -type f|xargs rm -f
t是当前日期,格式是年月日时分秒;tar -zcvf是将要备份的文件打成压缩包,后缀会带上日期;find … -mtime 7 …|xargs rm -f是只保留近七日的备份文件,之前的都会删掉。
3、保存生效
$ crontab /etc/crontab
4、查看任务
$ crontab -l
任务列表,如图所示:
到此定时任务配置完成。
CentOS7设置定时任务 每隔30分钟执行一次命令
安装 crontabs服务并设置开机自启
yum install crontabs systemctl enable crond systemctl start crond
设置用户自定义定时任务
vi /etc/crontab
可以看到:
# Example of job definition: # .---------------- minute (0 - 59) # | .------------- hour (0 - 23) # | | .---------- day of month (1 - 31) # | | | .------- month (1 - 12) OR jan,feb,mar,apr ... # | | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat # | | | | | # * * * * * user-name command to be executed
即:
分钟(0-59) 小时(0-23) 日(1-31) 月(11-12) 星期(0-6,0表示周日) 用户名 要执行的命令
每隔30分钟root执行一次updatedb命令:
*/30 * * * * root updatedb
每天早上5点定时重启系统:
0 5 * * * root reboot
每隔三秒执行一次/home/somedir目录下的scripts.sh脚本:
## For excuting scripts.sh every 3 seconds##on 2014-10-15 */1 * * * * /home/somedir/scripts.sh */1 * * * * sleep 3 && /home/somedir/scripts.sh */1 * * * * sleep 6 && /home/somedir/scripts.sh */1 * * * * sleep 9 && /home/somedir/scripts.sh */1 * * * * sleep 12 && /home/somedir/scripts.sh */1 * * * * sleep 15 && /home/somedir/scripts.sh */1 * * * * sleep 18 && /home/somedir/scripts.sh */1 * * * * sleep 21 && /home/somedir/scripts.sh */1 * * * * sleep 24 && /home/somedir/scripts.sh */1 * * * * sleep 27 && /home/somedir/scripts.sh */1 * * * * sleep 30 && /home/somedir/scripts.sh */1 * * * * sleep 33 && /home/somedir/scripts.sh */1 * * * * sleep 36 && /home/somedir/scripts.sh */1 * * * * sleep 39 && /home/somedir/scripts.sh */1 * * * * sleep 42 && /home/somedir/scripts.sh */1 * * * * sleep 45 && /home/somedir/scripts.sh */1 * * * * sleep 48 && /home/somedir/scripts.sh */1 * * * * sleep 51 && /home/somedir/scripts.sh */1 * * * * sleep 54 && /home/somedir/scripts.sh */1 * * * * sleep 57 && /home/somedir/scripts.sh
保存生效
#加载任务,使之生效 crontab /etc/crontab #查看任务 crontab -l
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持IT俱乐部。