linux之任务计划cron
温馨提示:这篇文章已超过896天没有更新,请注意相关的内容是否还可用!
crontab 是Linux VPS里定时计划任务,可以说是一个使用频率很高的小工具了,最近几乎每天都会用到,详细介绍如下
[root@localhost ~]# cat /etc/crontab 命令计划配置文件
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin 变量
MAILTO=root 发送邮件给谁
# For details see man 4 crontabs
# 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(默认不定义是已root运行) command to be executed(你要的命令)
格式:分 时 日 月 周
# crontab -e 进入任务计划编写界面,实际打开的是/var/spool/cron/usrname文件,如果用户是root,则打开的是/var/spool/cron/root
0 3 1-10 * */2 * /bin/bash /usr/local/sbin/12.sh
定义每个2个月的1-10号的3点执行一次任务计划
0 3 1-10 * /2 2,5 /bin/bash /usr/local/sbin/12.sh
定义每个2个月的1-10号的3点执行一次任务计划,星期二跟星期五
文件/var/spool/cron/username
分范围0-59,时范围0-23,日范围1-31,月范围1-12,周1-7
可用格式1-5表示一个范围1到5
可用格式1,2,3表示1或者2或者3
可用格式*/2表示被2整除的数字,比如小时,那就是每隔2小时
要保证服务是启动状态
# systemctl start crond.service
# systemctl status crond 查看系统任务计划状态
如为 Active: active (running) 则为运行状态,未启动则显示inactive (dead)
-u表示指定某个用户,不加-u选项则为当前用户
-e表示制定任务计划
-l 表示列出任务计划
-r 表示删除任务计划
cron练习题目
1、每天凌晨1点20分清除/var/log/show.log这个文件
20 1 * * * echo "" >/var/log/show.log
2、每周日3点执行/bin/bash /usr/local/sbin/backup.sh
0 3 * * 0 /bin/bash /usr/local/sbin/backup.sh
3、每月14号4点十分执行/bin/bash /usr/local/sbin/backup.sh
10 4 14 * * /bin/bash /usr/local/sbin/backup.sh
4、每隔8小时执行ntpdate time.windows.com
0 */8 * * * ntpdate time.windows.com
5、每天1点和12点,18点执行/bin/bash /usr/local/sbin/test.sh
0 1,12,18 * * * /bin/bash /usr/local/sbin/test.sh
6、每天9点到18点执行/bin/bash /usr/local/sbin/test2.sh
0 9-18 * * * /bin/bash /usr/local/sbin/test2.sh