Crontab学习笔记——Linux计划任务

Crontab学习笔记——Linux计划任务

简介

Crontab是一个用于设置周期性被执行的任务的工具。

主要由CronD这个系统服务、配置文件和crontab配置工具组成,会每分钟从配置文件刷新定时任务。

安装配置

本服务器为Centos 64位系统,已经缺省安装。

安装前先检查:

crontab -l #是否有计划任务列表
service crond status #是否启动服务

安装:

sudo yum install vixie-cron
sudo yum install crontabs

工具使用

启动 :

crond start #启动

crond stop #停止

crond restart #重启

crond reload #重新加载配置

使用 :

crontab -help #查看帮助

crontab -l #该用户是否有计划任务列表
#操作的是/var/spool/cron/username这个文件

crontab -e #编辑当前用户的计划任务列表

useradd crontester
crontab -e -u crontester #编辑crontester的计划任务列表
crontab -l -u crontester #crontester是否有计划任务列表

配置文件

Path:/etc/crontab

ls cron*

crontab filename #会覆盖同名的配置文件

注意: crontab 对系统级配置文件无效

格式

* * * * * [username] opration

说明:
第一个*:分钟 0~59
第二个*:小时 0~23
第三个*:日期 1~31
第四个*:月份 1~12
第五个*:星期 0~7(0、7都为星期天)

当有多个值时,用','区分,或者为连值时用'-'连接。

示例:

#每个月10,20,30日的0点重启apache
0 0 10,20,30 * * service httpd restart

#每个月10-15日的22:31点重启apache
31 22 10-15 * * service httpd restart

#每隔两分钟重启apache
*/2 * * * * service httpd restart

#当分钟为奇数时,每隔两分钟重启apache
1-59/2 * * * * service httpd restart

日志

查看:

tail -f /var/log/cron #计划任务日志文件,-f 实时刷新

cat /var/spool/mail/root #crontab每次执行计划都会发邮件给用户

#两个方法都可以

注意

1.环境变量:环境变量在计划中无法是载入的。

2.第三个域(日期)和第五个域(星期)是或的关系。

#四月的第一个星期日早晨1时59分运行a.sh
59 1 1-7 4 * test `date +\%w` -eq 0 && ./a.sh

案例

#半分钟执行一次,将任务细化到秒
*/1 * * * * echo "***"
*/1 * * * * sleep 30s;echo "***"

总结

学习了Crontab,就可以更好的使你的服务器自动化啦。

反馈与建议

  • 微博:@AnSwEr不是答案
  • github:AnSwErYWJ
  • 博客:AnSwEr不是答案的专栏

你可能感兴趣的:(linux,漫步Linux)