linux定时任务之crontab


简介
crontab是Linux,Unix包括OSX下的一个十分有用的工具.可以方便的设置定时任务,自动地帮我们执行一些脚本或者命令,省时省力省心.
下面我们一起来复习一下他的用法


常用命令
crontab -e 编辑当前用户的crontab(不存在时新建)
crontab -l 列出当前用户的crontab列表。
crontab -u  与-e或-l配合,查看或者编辑指定用户任务,当然要有相应的权限

crontab格式

* * * * * command
命令

详解
* 代表任意值,每分钟,每小时,每天,每月,每年

字段 描述 允许的值
分钟 每小时的第几分 0-59
小时 每天的第几小时 0-23
日期 每月的的第几天 1-31
月份 每年的第几个月 1-12
周几 每周的第几天 0-6
命令 命令 可以被执行的任何命令

演示
每一次直接crontab -e的会提示我们选择顺手的编辑器nano和ed不熟,我一般用vi

  • 每天0点执行nginx日志轮转
0 0 * * * /opt/shell_scripts/nginx_log_cut.sh
  • 每五分钟执行一次文件同步
*/5 * * * * /opt/shell_scripts/file_sync.sh
  • 工作日每个小时发一封邮件给我
0 9-18 * * 1-5 /opt/shell_scripts/send_me_mail.sh

一些特殊时间

关键字 代表
@yearly 0 0 1 1 *
@daily 0 0 *
@hourly 0
@reboot 重启时运行

举例

#给自己发个新年祝福
@yearly /opt/shell-scripts/yearly_hello.sh
#每天进行一次nginx日志切割
@daily /opt/shell-scripts/nginx_log_cut.sh
#每月汇总一次上月数
@monthly /opt/shell-scripts/data-general.sh
#系统重启时通知我
@reboot /opt/shell-scripts/alert_os_reboot.sh

疑问:

  • 怎样执行秒级的任务?比如2秒一次
    目前crontab还做不到这么密集的执行任务,我一般会写一个死循环,执行一次脚本sleep 2秒

转载请注明: 转自Rainbird的个人博客
   本文链接: linux定时任务之crontab


相关博文

About rainbird

IOS攻城狮
This entry was posted in linux, Mac and tagged , , , , , , . Bookmark the permalink.

发表评论