crontab学习笔记
1、什么是crontab
crontab是linux和unix常见的一种设置定时执行某脚本的命令,可以执行python,sh等脚本;
2、为什么要用crontab
经常遇到的需求是定时扫描数据库数据,然后对那些执行过程中有问题的步骤拿出来发邮件给相应的管理员,或者定时清理数据库大表数据迁移到历史表等需求;由于我是学java的第一反应就是写一个定时任务去做,但是这样有一个比较致命的缺陷:不支持分布式,可以解决的办法是单独用一台服务器去部署这些定时任务(一般的企业没有这么土豪),但是比较简单的是用python写一个脚本,然后用crontab写一个定时执行的脚本命令去执行脚本
3、示例命令
crontab [-u user] file
crontab [-u user] [-i] (-e/-l/-r)
使用-u的命令只有root用户才有权限使用,可以指定用户
如果不使用-u那么就是默认当前用户
-i命令是可选的,使用-i之后,删除crontab脚本时会给出提示
-e 相当于是用vi编辑一个crontab命令,编辑完可以像vi一个文件一样保存,默认保存在/var/spool/crontab文件夹下,该用户一般只有root用户有权限进入
-l 列出用户的crontab脚本,如果没有用-u指定用户,那么默认当前用户
-r 删除用户的crontab脚本,如果没有用-u指定用户,那么默认当前用户
file是指将你写的脚本加载到crontab中作为crontab命令去执行——这个命令没有亲自写过,后续补上
4、示例crontab脚本
* * * * * python /aaa/bbb/ccc/python.py >> /aaa/bbb/ccc/python.log2>&1
前面五个星分别代表分钟,小时,日,月,星期(0-6)
后面是执行脚本的命令
如果是每隔几分钟执行那就是*/10 * * * *