Linux中的计划作业
周期性计划作业--cron :
cron:是一个进程。可以让linux周期性的执行某一命令。
crontab是一个命令,可以设置linux周期性的执行某一命令。
-u :设置某一个用户的周期性工作—root权限;
-e :编辑 crontab 的工作内容
-l :查阅 crontab 的工作内容
-r :移除所有的 crontab 的工作内容,若仅要移除一项,请用 -e 去编辑
使用 crontab -eu lewis 来设置周期计划作业 , 注意这个 -e 要写在 -u 的前面 , 回车后 就像进入一个 vim 的界面.
crontab的格式讲解 :
一行代表一个任务
minute hour day month week command
•minute: 表示分钟,可以是从0到59之间的任何整数。
•hour:表示小时,可以是从0到23之间的任何整数。
•day:表示日期,可以是从1到31之间的任何整数。
•month:表示月份,可以是从1到12之间的任何整数。
•week:表示星期几,可以是从0到7之间的任何整数,这里的0或7代表星期日。
•command:要执行的命令,可以是系统命令,也可以是自己编写的脚本文件。
特殊字符 |
代表含义 |
*(星号) |
代表任何时刻都接受的意思,*代表的是任何时候 |
,(逗号) |
代表分隔字段的意思 例如: 15,30,45 * * * * command 代表的是每月每日每小时的15分,30分,45分的时候执行命令 |
-(减号) |
代表一段时间范围内 例如: 10 7-10 * * * command 代表的是每月每日的 (7点~10点) 7点10分,8点10分,9点10分,10点10分时执行命令 |
/n |
那个 n 代表数字,也就是每隔 n 单位间隔的意思 例如 /5 * * * * command 代表的是每月每日每时每5分钟执行一次 |
计划作业的实例 |
|
每1分钟执行一次 |
/1 * * * * command |
每小时的第15,30,45分钟执行 |
15,30,45 * * * * command |
7点到10点的第10,50分钟执行 |
10,50 7-10 * * * command |
每隔一天的7点到11点的第20和第40分钟执行 |
20,40 7-11 */1 * * command |
每周一的7点到11点的第25和第50分钟执行 |
25,50 7-11 * * 1 command |
每天的3:30执行 |
30 3 * * * command |
每月1、10、20日的3 : 30执行 |
30 3 1,10,20 * * command |
每周六、周日的3 : 30执行 |
30 3 * * 6,7 command |
每天9点到16点之间每隔15分钟执行 |
/15 9-16 * * * command |
crontab—配置举例 :
•每个晚上10点,提示用户可以去睡觉了 :
先是通过 crontab -eu lewis 进入到cron的 vim 编辑界面输入 * */10 * * * go to sleep 然后按 Esc 键 wq 保存退出.
下面我们来看一下 lewis 用户下的 crontab -l -u lewis 信息.
•每分钟,查看/var/log/cron日志文件有没有发生过变化
/etc/crontab配置文件讲解 :
第一行SHELL变量指定了系统要使用哪个shell,这里是bash
第二行PATH变量指定了系统执行命令的路径
第三行MAILTO变量指定了crond的任务执行信息将通过电子邮件发送给root用户,如果MAILTO变量的值为空,则表示不发送任务执行信息给用户
crontab配置原理 :
•当使用者使用 crontab 这个命令来创建工作排程之后,该项工作就会被纪录到 /var/spool/cron/ 里面去了,而且是以帐号来作为判别的.
•如:lewis用户使用 crontab 后, 他的工作会被纪录到 /var/spool/cron/lewis中。另外, cron 运行的每一项工作都会被纪录到 /var/log/cron 这个日志文件中.
•crond服务每分钟检测一次,所以 cron 会每分钟去读取一次 /etc/crontab 与 /var/spool/cron 里面的数据内容 ,因此,只要你编辑完 /etc/crontab 这个文件,并且将他储存之后,那么 cron 的配置就自动的会来运行了.
•如果你修改完的crontab或者添加的crontab没有马上的执行起来,那么你可以用 systemctl restart crond.service 重启
转载自 : 51自学网