• 博客园logo
  • 会员
  • 周边
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
我的城市没有海
我想看看海,曾听说大海很美,可是我的城市没有海。
博客园    首页    新随笔    联系   管理    订阅  订阅

Linux计划任务

Linux计划任务

linux 系统则是由 cron (crond) 这个系统服务来控制的。Linux 系统上面原本就有非常多的计划性工作,因此这个系统服务是默认启动的。另 外, 由于使用者自己也可以设置计划任务,所以, Linux 系统也提供了使用者控制计划任务的命令 :crontab 命令。

crond 是linux下用来周期性的执行某种任务或等待处理某些事件的一个守护进程,与windows下的计划任务类似,当安装完成操作系统后,默认会安装此服务 工具,并且会自动启动crond进程,crond进程每分钟会定期检查是否有要执行的任务,如果有要执行的任务,则自动执行该任务。

计划任务分为一次性计划任务(at)和周期性计划任务(croutab)。

linux任务调度的工作主要分为以下两类:
*系统执行的工作:系统周期性所要执行的工作,如备份系统数据、清理缓存
*个人执行的工作:某个用户定期要做的工作,例如每隔10分钟检查邮件服务器是否有新信,这些工作可由每个用户自行设置。

一、crond服务的启动

/sbin/service crond start   #启动服务
/sbin/service crond stop   #关闭服务
/sbin/service crond restart   #重启服务
/sbin/service crond reload   #重新载入配置

二、crontab命令选项

crond服务提供crontab命令来设定cron服务的,以下是这个命令的一些参数与说明:
crontab -u     #设定某个用户的crond服务,一般root用户在执行这个命令的时候需要此参数
crontab -l     #列出某个用户crond服务的详细内容
crontab -r     #删除某个用户的crond服务
crontab -e     #编辑某个用户的crond服务
crontab -i     #在删除用户的crontab文件时给确认提示
比如说root查看自己的cron设置:crontab -u root -l
再例如,root想删除fred的cron设置:crontab -u fred -r

三、语法格式

 分     小时      日       月       星期      命令

0-59   0-23   1-31   1-12     0-6     command     (取值范围,0表示周日一般一行对应一个任务)

5       *       *       *      *    /bin/ls /home              #指定每小时的第5分钟执行一次ls命令

星号(*):代表所有可能的值。
逗号(,):可以用逗号隔开的值指定一个列表范围,例如,“1,2,5,7,8,9”
中杠(-):可以用整数之间的中杠表示一个整数范围,例如“2-6”表示“2,3,4,5,6”
正斜线(/):可以用正斜线指定时间的间隔频率,例如“0-23/2”表示每两小时执行一次。同时正斜线可以和星号一起使用,例如*/10,如果用在分钟字段,表示每十分钟执行一次。

四、实例

30     5       *       *      *     /bin/ls /home              指定每天的 5:30 执行/bin/ls /home命令

30     7       8       *      *      /bin/ls /home             #指定每月8号的7:30分执行/bin/ls /home命令

30     5       8       6      *      /bin/ls /home             #指定每年的6月8日5:30执行/bin/ls /home命令

30     6       *       *      0      /bin/ls /home             #指定每星期日的6:30执行/bin/ls /home命令[注:0表示星期天,1表示星期1,以此类推,也可以用英文来表示,sun表示星期天,mon表示星期一等。]

30     3   10,20     *      *      /bin/ls /home             #每月10号及20号的3:30执行/bin/ls /home命令[注:”,”用来连接多个不连续的时段]

25     8-11  *        *     *      /bin/ls /home             #每天8-11点的第25分钟执行/bin/ls /home命令[注:”-”用来连接连续的时段]

*/15   *      *        *     *      /bin/ls /home            #每15分钟执行一次/bin/ls /home命令 [即每个小时的第0 15 30 45 60分钟执行/bin/ls /home命令 ]

30     6    */10      *     *      /bin/ls /home            #每个月中,每隔10天6:30执行一次/bin/ls /home命令[即每月的1、11、21、31日是的6:30执行一次/bin/ls /home命令。 ]

50    7       *         *     *     root run-parts /etc/cron.daily   #每天7:50以root 身份执行/etc/cron.daily目录中的所有可执行文件[ 注:run-parts参数表示,执行后面目录中的所有可执行文件。 ]

五、新增计划任务的两种方法

1、在命令行输入: crontab -e 然后添加相应的任务,wq存盘退出。
2、直接编辑/etc/crontab 文件,即vi /etc/crontab,添加相应的任务。

六、注意事项

在添加计划任务时,所执行的命令和脚本文件建议以绝对路径添加,否则可能会出现无法执行的情况。

七、其他

用户任务调度:用户定期要执行的工作,比如用户数据备份、定时邮件提醒等。用户可以使用 crontab 工具来定制自己的计划任务。所有用户定义的crontab 文件都被保存在 /var/spool/cron目录中。其文件名与用户名一致。

使用者权限文件:
文件:
/etc/cron.deny
说明:
该文件中所列用户不允许使用crontab命令

文件:
/etc/cron.allow
说明:
该文件中所列用户允许使用crontab命令

文件:
/var/spool/cron/
说明:
所有用户crontab文件存放的目录,以用户名命名

******************************我也想难过的时候到海边走走,可是我的城市没有海。******************************
posted @ 2018-08-05 23:43  我的城市没有海  阅读(255)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3