linux crontab定时任务
-
首先查看liunx系统中定时任务crontab是否启动:
命令:service crond status
如上图:running表示启动 pid表示进程 -
开始创建定时任务:
命令:crontab -e(如何此时让你选择编译器,可以选择vi) 输入要执行的脚本或者命令:
在这里我执行的是python脚本,时间是每月的一号零点零分
然后我们可以按照vi编译器的用户,保存退出 -
查看创建的定时任务
命令:crontab -l 如果出现下图问题:- 进入root用户下再执行crontab -e创建定时任务,然后再查看定时任务,如果还是这样,则进行第二步
- 进入/var/spool/cron/ cron是存放crontab任务的目录,每个任务以当前用户的名字命名,一般一个用户最多只有一个crontab文件,然后在此目录下随便创建一个文件,看看有没有权限,如果没有,则退出到上一级目录 执行chmod 777 cron赋予权限,然后看是否可以创建目录,然后执行crontab -e应该就可以了
-
权限
crontab权限问题到/var/adm/cron/下一看,文件cron.allow和cron.deny是否存在
用法如下:
1、如果两个文件都不存在,则只有root用户才能使用crontab命令。
2、如果cron.allow存在但cron.deny不存在,则只有列在cron.allow文件里的用户才能使用crontab命令,如果root用户也不在里面,则root用户也不能使用crontab。
3、如果cron.allow不存在, cron.deny存在,则只有列在cron.deny文件里面的用户不能使用crontab命令,其它用户都能使用。
4、如果两个文件都存在,则列在cron.allow文件中而且没有列在cron.deny中的用户可以使用crontab,如果两个文件中都有同一个用户,以cron.allow文件里面是否有该用户为准,如果cron.allow中有该用户,则可以使用crontab命令。 -
定时任务时间问题
***** command(命令或脚本)
分 时 日 月 周 命令第1列表示分钟1~59 每分钟用*或者 */1表示
第2列表示小时1~23(0表示0点)
第3列表示日期1~31
第4列表示月份1~12
第5列标识号星期0~6(0表示星期天)
第6列要运行的命令
举一些例子:
每晚的21:30重启apache。
30 21 * * * /usr/local/etc/rc.d/lighttpd restart每月1、10、22日
45 4 1,10,22 * * /usr/local/etc/rc.d/lighttpd restart每天早上6点10分
10 6 * * * date每两个小时
0 */2 * * * date在上午的8点到11点的第3和第15分钟执行
3,15 8-11 * * * command