文档章节

crontab定时任务操作

ZYallers
 ZYallers
发布于 2017/07/21 15:28
字数 1015
阅读 3
收藏 0

crontab定时任务操作

定时任务顾名思义就是在某一时间点自动进行任务操作。 在做Pgsql的备份利用crontab进行定时操作, 使用起来比较方便。故分享 具体的定时编辑命令:crontab -e 首先从crontab的文件分析使用策略,root用户下,在/etc下有一个文件crontab,其内容如下

[root@myzk ~]# cat /etc/crontab
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
HOME=/

# 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

该文件下的前四行内容为crontab的环境变量,SHELL变量的值指定系统使用的SHELL环境(该样例为bash shell),PATH变量定义了执行命令的路径。Cron的输出以电子邮件的形式发给MAILTO变量定义的用户名。如果MAILTO变量定义为空字符 串(MAILTO=""),电子邮件不会被发送。执行命令或脚本时HOME变量可用来设置基目录。

注:以上系统会默认可以不用修改任何!

在root用户下,可以直接vim /etc/crontab文件进行脚本的添加定时任务脚本,而在其他普通用户下可以通过crontab –e进行脚本的添加编辑完成,可以用crontab –l进行查看脚本信息。

定时命令脚本解析:

从表格中可以看出脚本格式如下:
minute hour day month week user-name command
minute---分钟 (0-59)
     hour------小时(0-23)
          day--------日期(1-31)
              month---月份(1-12)
                    week----星期(0-6)//0代表星期天

除了数字还有几个个特殊的符号就是"*"、"/"和"-"、",",*代表所有的取值范围内的数字,"/"代表每的意思,"*/5"表示每5个单位,"-"代表从某个数字到某个数字,","分开几个离散的数字。以下举几个例子说明问题:

以具体例子进行分析定时脚本:

pgslq.sh为需要执行的脚本,内容为需要进行的备份操作或者其他任务脚本

1 * * * * /home/postgres/pgsql.sh
表示的是每小时的第一分钟执行该脚本
2 3 * * * /home/postgres/pgsql.sh
表示每天的3点零2分执行该脚本
1 1 * * 0 / home/postgres/pgsql.sh
表示的是每周的1点1分进行脚本的执行
1 1 1 * * / home/postgres/pgsql.sh
表示的是每月的1点1分进行脚本的执行

比较容易犯的错误是通常会把每小时的第一分钟按做每分钟执行一次,这点要注意两者的区别:

1 * * * * /home/postgres/pgsql.sh
表示的是每小时的第一分钟执行该脚本
*/1 * * * * /home/postgres/pgsql.sh
表示的是每一分钟执行该脚本

因此这里要记住”/”这个符号带来的区别。

“-”的用法:

0 10 * * 1-3 / home/postgres/pgsql.sh
表示的是每个周一到周三的早上10点执行该脚本
0 10 * * 1、3、5 / home/postgres/pgsql.sh
表示的是每周的周一、周三、周五的早上10点执行该脚本

这些大致就是定时任务的几乎常见的可能性定时脚本。

在表格中看到user-name这个表示的用户该脚本所在的用户,一般情况下在做项目不可能会有root用户进行编写,所以我们可能直接在普通用户下进行定时脚本的编写,直接执行crontab –e,编写定时任务。

每次编辑完某个用户的cron设置后,cron自动在/var/spool/cron下生成一个与此用户同名的文件,此用户的cron信息都记录在这个文件 中,这个文件是不可以直接编辑的,只可以用crontab -e 来编辑。cron启动后每过一分钟读一次这个文件,检查是否要执行里面的命令。因此此文件修改后不需要重新启动cron服务。

本文转载自:www.cnblogs.com/kunpengit/p/4045343.html

共有 人打赏支持
ZYallers
粉丝 1
博文 59
码字总数 19100
作品 0
佛山
程序员
私信 提问
在 Linux 中安全且轻松地管理 Cron 定时任务

在 Linux 中遇到计划任务的时候,你首先会想到的大概就是 Cron 定时任务了。Cron 定时任务能帮助你在类 Unix 操作系统中计划性地执行命令或者任务。也可以参考一下我们之前的一篇《关于 Cron...

作者: Sk
10/03
0
0
linux 中 crond的使用

cron定时任务 linux 中用于定时执行某些特定能操作, 如定时备份文件, 定时更新/删除文件, 都会使用到定时任务. cron 是服务命令 crond 是用来执行执行服务的守护进程, crond 每分钟会检查是否...

Fc丶
11/22
0
0
Linux利用Crontab定时访问某个路由地址

文章出自虎书博客,转载请注明出处。 首先利用linux的Crontab命令创建定时任务,然后结合curl实现定时访问某个路由地址,下面来看如何操作。 1、先通过 crontab -e 创建定时任务 2、编辑写入...

虎书博客
07/10
0
0
为什么要用分布式集群任务调度?

作为一个开发者,避免不了定时任务的问题,最粗暴和简单直接的解决方案就是crontab。当然在机器少,任务不多,定时任务之间关联少的情况下,crontab效率还是比较高和便捷的。但当机器越多、定...

调皮仔3683
05/04
0
0
Linux 系统延时任务和定时任务

一、延时任务 在Linux中延时任务是临时的,可以指定某一个任务在将来的特定时间运行 1、at命令 基本操作格式: [root@loveyu ~]# at now+1minat> date #EOT代表Ctrl+D来保存这个延时动作job...

飞天喜欢yu
2017/08/01
0
0

没有更多内容

加载失败,请刷新页面

加载更多

区块链安全 - 以太坊短地址攻击

1 基础知识 EVM虚拟机在解析合约的字节码时,依赖的是ABI的定义,从而去识别各个字段位于字节码的什么地方。关于ABI,可以阅读这个文档: https://github.com/ethereum/wiki/wiki/Ethereum-C...

HiBlock
8分钟前
0
0
自定义函数及内部函数

变量的作用域 局部变量 global $Global及其他超全局数组 静态变量 仅初始化赋值 保留于内存直到response才销毁 global和static变量的区别 global:局部变量全局话 static:定义静态局部变量 函...

关元
9分钟前
0
0

中国龙-扬科
22分钟前
1
0
python包

https://www.lfd.uci.edu/~gohlke/pythonlibs/

陆朋
32分钟前
1
0
一文弄懂“分布式锁”,一直以来你的选择依据正确吗?

本文主要会关注的问题是“分布式锁”的问题。 多线程情况下对共享资源的操作需要加锁,避免数据被写乱,在分布式系统中,这个问题也是存在的,此时就需要一个分布式锁服务。 常见的分布式锁实...

Java干货分享
39分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部