【命令crontab】定时任务设置

crontab可以根据用户的设置,在固定的时间或固定的时间间隔执行任务。比如,可以用crontab每天8点或者每隔10分钟去检查邮件服务器是否有新的邮件。

下图是crontab的常用参数及作用:

[root@丢丢圆]# crontab -help
crontab: invalid option -- 'h'
crontab: usage error: unrecognized option
Usage:
 crontab [options] file
 crontab [options]
 crontab -n [hostname]

Options:
 -u <user>  define user
 -e         edit user's crontab
 -l         list user's crontab
 -r         delete user's crontab
 -i         prompt before deleting
 -n <host>  set host in cluster to run users' crontabs
 -c         get host in cluster to run users' crontabs
 -s         selinux context
 -x <mask>  enable debugging
  • 查看定时执行的文件( -l         list user's crontab):
    • 命令:“crontab -l”,如同ll或者ls一样,显示定时任务列表信息
[root@丢丢圆]# crontab -l
10 */1 * * * mail -s "hello" natsuna@163.com < /root/ddy/text.log
  • 修改定时脚本里面的执行内容( -e         edit user's crontab):
    • 命令:“crontab -e”,后续的操作方法和 Vim 是一致的
    • 配置定时任务的具体格式说明:* * * * * 命令(*从左到右,依次是:分、时、日、月、星期)
格式 * * * * * 命令
含义 一小时当中的第几分钟 一天(24小时)当中的第几小时 一个月当中的第几天 一年当中的第几个月 一周当中的星期几 要定时执行的任务
范围值 0-59 0-23 1-31 1-12 0-7(0和7都代表星期日) -
      • 格式举例:10 8 * * * mail -s "hello" natsuna@163.com ,每天8点10分给natsuna@163.com发送标题为hello的邮件
    •  
    • 扩展:时间的特殊格式
符号 含义
* 代表所有范围值,比如在分钟位置填*表示值为0-59
- 代表连续的时间范围,比如在日期位置填1-3表示1号到3号
代表不连续的时间,比如在月份位置填1,3表示1月和3月
/ 代表每隔多久执行一次,比如在分数位置填*/10表示每10分钟执行一次
      • 格式举例:
        • */10 2 * * * mail -s "hello" natsuna@163.com ,每天的2点每隔10分钟给natsuna@163.com发送标题为hello的邮件
        • 10 1,5 * * * mail -s "hello" natsuna@163.com ,每天的1点10分和5点10分给natsuna@163.com发送标题为hello的邮件
        • 10 8 * * 1-3 mail -s "hello" natsuna@163.com ,每周一到周三的8点10分给natsuna@163.com发送标题为hello的邮件

参考来源:

  1. 在线工具-https://tool.lu/crontab/ 
  2. Linux crontab 命令-https://www.runoob.com/linux/linux-comm-crontab.html
  3. Linux crontab命令:循环执行定时任务(详解版)-http://c.biancheng.net/view/1092.html

--未完待续--

原文地址:https://www.cnblogs.com/sasuke0211/p/15114618.html