计划任务

crontab -e 写计划任务
crontab -l 列出所有计划任务
crontab -r 删除计划任务
crontab -u username 管理员可以去管理其他用户的计划任务

*  *  *  *  *  command
分 时 日 月 周
  1. 可以限制使用crontab的用户账号,可以配置的文件有:
    /etc/cron.allow,将可以使用crontab的账号写入其中,不在这个文件的用户则不可以使用crontab

/etc/cron.deny,将不可以使用crontab的账号写入其中,不在这个文件中的就可以使用crontab
注:/etc/cron.allow 比 /etc/cron.deny要优先,这两个文件只选择一个来限制

  1. 系统的配置文件
[root@aliyun ~]# cat /etc/crontab 
SHELL=/bin/bash     <==使用的是那种shell
PATH=/sbin:/bin:/usr/sbin:/usr/bin    <== 执行文件查询路径
MAILTO=root                        <== 若有额外stdout,用email将数据送给谁
For details see man 4 crontabs
Example of job definition:
# .---------------- minute (0 - 59)
# |  .------------- hour (0 - 23)
# |  |  .---------- day of month (1 - 31)
# |  |  |  .------- month (1 - 12) OR jan,feb,mar,apr ...
# |  |  |  |  .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# |  |  |  |  |
# *  *  *  *  * user-name  command to be executed

crond 服务读取配置文件的位置
一般来说,crond 默认有3个地方会执行脚本配置文件,分别是:
/etc/crontab == > 跟系统运行有关系
/etc/cron.d/* == > 跟系统运行有关系
/var/spool/cron/* ==> 跟用户自己的任务有关系的配置文件

[root@aliyun cron.d]# ls -l /etc/cron.d
total 8
-rw-r--r--. 1 root root 128 Mar 31  2016 0hourly
-rw-------  1 root root 235 Nov  6  2016 sysstat
[root@aliyun cron.d]# cat /etc/cron.d/0hourly 
# Run the hourly jobs
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
01 * * * * root run-parts /etc/cron.hourly
run-parts  == > 就是shell脚本,大约5分钟内随机选一个时间来执行/etc/cron.hourly 目录内的所有执行文件。

3 .注意事项

  1. 资源分配不均的问题
    大量使用crontab的时候,总是会有问题发生。如果每个流程都在同一时间启动的话,那么在某一时段,系统在某个时段,系统会变得相当繁忙,所以这个时候就必须要分别设置,可以这样做:
vim /etc/crontab
1,6,11,16,21,26,31,36,41,46,51,56 * * * * root  cmd1
2,7,12,17,22,27,32,37,42,47,52,57 * * * * root  cmd2

这样可以将每5分钟运行的流程分别在不同的时刻来执行,从而让系统的执行较为顺畅

  1. 取消不要的输出选项
    当有一个任务一直出错,你就会不停的收到邮件,直接输出到/dev/null
  2. 安全的检验
    很多时候木马都是以计划任务命令的方式植入的,所以可以借由检查/var/log/cron的内容来观察是【非你设置的cron被执行了】
上一篇:使用ActivityGroup来切换Activity和Layout


下一篇:SQL常用数据库结构升级语句