使用crontab完成定时任务crond是linux下用来周期性执行某些任务或等待某些事件处理的守护进程。类似于windows下的定时任务。安装操作系统时,默认安装该服务工具。,crond进程将自动启动。cron进程每分钟会定时检查是否有任务要执行。如果有任务要执行,则自动执行该任务语法用法:crontab[-uuser]filecrontab[-uuser][-e|-l|-r]-e(执行一个文本编辑器来设置日程,默认的文本编辑器是vi)-l(列出用户的日程)-r(删除用户的日程)root用户的任务调度操作可以通过设置crontab-uroot-e,或者定时任务可以直接写到/etc/crontab文件中cron表达式cron表达式是一个字符串,由五到七个空格分隔的字段,代表一组时间,通常作为执行某项任务的时间表programminutehourdaymonthweekcommandminute:表示分钟,可以是0到59的任意整数hour:表示小时,可以是0到23day之间的任意整数:表示日期,可以是1到31的任意整数month:表示月份,可以是1到12的任意整数week:表示星期几,可以是0到7之间的任意整数,其中0或7代表星期日command:要执行的命令,可以是系统命令或者自己写的脚本文件*****命令-----|||||||||+-----星期几(0-7)(星期日为0)|||+------------月(1-12)||+-----------------月中的第几天(1-31)|+--------------------小时(0-23)+----------------------分钟(0-59)星号(*):代表所有可能的值,如果月份字段是星号,则表示该命令每月执行一次。逗号(,):可以用逗号分隔的值指定一个列表范围,例如,“1,2,5,7,8,9”用破折号(-):可以用整数之间的中间横线表示一个整数范围,例如,“2-6”表示“2,3,4,5,6”正斜杠(/):您可以使用正斜杠来指定时间间隔频率,例如“*/2”表示实例每两小时执行一次/bin/ls*****/bin/ls12个月内每天早上6:00到12:00每分钟执行一次每3小时0分钟执行一次/usr/bin/backup06-12/3*12*/usr/bin/backup每天22:50关闭ssh服务5022***/sbin/servicesshdstopin/etc/crontab中添加环境变量命令,在可执行命令前添加命令。/etc/profile;/bin/sh,使环境变量生效2003***./etc/profile;/bin/shtest.sh注意crontab有2种编辑方法:直接编辑/etc/crontab文件和crontab-e,其中/etc/crontab中的定时任务是系统中的定时任务,而用户的定时任务需要通过crontab-e编辑,尽量使用crontab中的命令绝对路径,否则经常会因为路径错误导致任务无法执行。新创建的cron任务不会立即执行,至少2分钟后,重启cron即可立即执行。%在crontab文件中表示换行,所以如果脚本或命令中包含%,则需要使用\%进行转义。Mac下使用crontab遇到的问题我有一个Python爬虫脚本,在命令行下可以正常工作,但是报错can'topenfileundercrontab...[Errno1]Operationnotpermittedcronexpression如下307***/usr/local/bin/python3script.py>>script.log2>&1尝试了许多不同的方法,包括尝试授予文件权限,作为root用户创建一个cron作业,不同的Python路径,可以'无法正常运行,最后在StackOverflow上找到解决方案,让cron全盘访问请求权限,方法如下系统偏好设置->安全和隐私->全盘访问解锁允许更改Click+ClickCommand+Shift+GEnter/usr/sbin找到cron添加参考Linuxcrontab命令crontabusageandexamplesLinuxcrontab命令详解TryingtorunaPythonscriptwithcronOperationnotpermitted
