at,crontab定时程序

简介: 介绍程序员对于定时执行任务一定不陌生,很多任务为了减少对用户的干扰,如系统更新、维护、数据库结构变更等,通常会选择在凌晨进行。对于一些简单的无需人工照看的任务,就可以预先写好命令,并设定时间自动运行,然后就可以安心睡大觉了。

介绍

程序员对于定时执行任务一定不陌生,很多任务为了减少对用户的干扰,如系统更新、维护、数据库结构变更等,通常会选择在凌晨进行。对于一些简单的无需人工照看的任务,就可以预先写好命令,并设定时间自动运行,然后就可以安心睡大觉了。
其他情况还有,可以预计的将来要做的操作,为了防止遗忘,先写好命令脚本,然后设置自动运行,就可以把这事从你的日程表里划掉啦。
下面进入正题。

一、at

1. 常用命令

基本用法:at [参数] [时间]
控制台读入任务完毕,ctrl+d结束。

参数 说明
at -l 或 atq 查看当前任务
at -d [任务id]或atrm 删除定时任务
at -c [任务id] 打印任务内容
at -f [文件] 从指定文件读入任务,而不是从控制台
2. 用法

时间的指定非常灵活,下面列举常用几种:
at 04:00
at 04pm
at noon
at now + 3min/minutes/hours/days/weeks
at 04pm + 20min
at today/tomorrow
at 7:30pm 2017-09-26

二、cron

定时任务命令crontab = chronos + table。chronos来源于希腊语,原意是时间

1. 常用命令
命令 说明
crontab -e 编辑定时任务,可以增加或删除。推荐
crontab -l 列出当前用户的定时任务
crontab -r 删除当前用户的定时任务
crontab [test.cron] 用test.cron(自己定义)覆盖定时任务文件 (不推荐)
2. 配置说明
img_e33c1c6c0f2a796557a3013a214d59f7.png

crontab -e的默认文件,对配置有了初步的说明,基本够用。下面通过示例形象说明:

指令 功能
*/2 * * * * echo 'holy shit' >> test.txt 每两分钟执行一次
20-40/2 * * * * echo 'holy shit' >> test.txt 20到40分钟,每两分钟执行一次
20-40/2, 50 * * * * echo 'holy shit' >> test.txt 20到40分钟,每两分钟执行一次,第50分钟也执行一次
0 3-5 * * * echo 'holy shit' >> test.txt 每天的3到5小时开始时执行一次
0 3-5 3,5,6 * * echo 'holy shit' >> test.txt 每月3、5、6号的3到5点开始时执行一次
3. 日志地址

一般情况下,crontab日志在/var/log/cron.log.

如果没有,那么就在/var/log/syslog,可通过下面命令查看cron日志:

grep cron /var/log/syslog

修改日志位置:

sudo vi /etc/rsyslog.d/50-default.conf

#找到下面的line
#cron.*                         /var/log/cron.log
#去掉注释
sudo systemctl restart rsyslog
#查看启动状态
sudo systemctl status rsyslog
相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
目录
相关文章
|
2月前
|
Linux Shell 开发工具
什么是crontab定时任务?
定时任务在Linux系统中用的是比较多的,个人的话一般用的很少,在企业中定时任务是必不可少的,定时任务多种多样,有程序的定时任务,比如:写一个程序在程序内定时执行,或者是操作系统的定时任务,比如:Windows系统的定时任务、Linux系统的定时任务,他们的名称、操作方式都不相同,但是他们都有一个共同的特征,在**某个特定的时间或者时间段执行某项任务**,这类通常被我们称之为定时任务,再举个例子,我们手机的闹钟、或者街边的路灯,这些都是定时任务,闹钟会在早上7点发出音乐,路灯会在晚上6点开灯,这些都是生活中的定时任务,今天记录一下在Linux系统中如何使用定时任务
什么是crontab定时任务?
|
10月前
|
Java Linux
如何编写一个自动关闭某个进程的脚本,并使用cron定时执行?
如何编写一个自动关闭某个进程的脚本,并使用cron定时执行?
209 0
|
Linux 开发工具 Windows
如何使用crontab 定期执行脚本?
持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第11天,点击查看活动详情 大家好,我是阿萨。最近用到了一个Linux命令crontab。用它来定时运行linux的任务。这个有点类似windows里的定时任务。今天主要记录下我用到的它的用法。
114 0
crontab设置定时任务脚本文件每秒运行一次,每个月最后一天的21点到22点 每20分钟(1200秒)执行一次
crontab设置定时任务脚本文件每秒运行一次,每个月最后一天的21点到22点 每20分钟(1200秒)执行一次
1083 0
crontab安装以及定时任务的执行
crontab安装以及定时任务的执行
108 0
|
运维 Linux Apache
定时任务crontab | 学习笔记
快速学习定时任务crontab。
202 0
|
监控 Shell 应用服务中间件
使用crontab配合shell脚本定时检测拉起服务
使用crontab配合shell脚本定时检测拉起服务
200 0
|
大数据 Python
Pythpn实现多脚本处理定时运行
Pythpn实现多脚本处理定时运行
114 0
Pythpn实现多脚本处理定时运行
|
监控
crontab设置作业间隔执行问题
这个源于有个网友问,crontab里   */40  9  *  *  *  是不是代表9点开始每40分钟执行?  直觉这个肯定不是从9:00开始每隔40分钟执行一次,但是也不能肯定它代表一个什么样的Schedule,那就做一个实验验证一下吧(有时候明明觉得自己已经掌握了一些知识点,但是总有一些问题,你不能很确切、肯定的回答,其实说明了还有盲点,知识点了解、掌握得不够彻底)。
824 0
|
Linux PHP Windows
使用linux下的crontab定时任务跑定时脚本
使用linux下的crontab定时任务跑定时脚本 tags:定时任务 定时脚本 crontab linux定时脚本 linux 引言:应该有许多人曾经很好奇一些定时脚本是怎么做出来的。我们这次就来说一下定时脚本的那些事,其实网上教程多得很,我就来蹭一下热度吧。
2060 0