crontab(定时任务操作)

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

时间: 2024-10-10 07:19:11

crontab(定时任务操作)的相关文章

Linux crontab 定时任务

http://linuxtools-rst.readthedocs.io/zh_CN/latest/tool/crontab.html 19. crontab 定时任务 通过crontab 命令,我们可以在固定的间隔时间执行指定的系统指令或 shell script脚本.时间间隔的单位可以是分钟.小时.日.月.周及以上的任意组合.这个命令非常适合周期性的日志分析或数据备份等工作. 19.1. 命令格式 crontab [-u user] file crontab [-u user] [ -e |

Centos crontab定时任务

定时任务概念: 为什么要使用Crond定时任务? 例如:我们数据库或者程序需要每天晚上0点做一次全备,定时同步时间服务器等等 Linux系统定时任务软件的种类: at   适合仅执行一次就结束的调度命令,可以被crontab取代, crontab  可以周期性的执行任务,需要开启crond服务在生产工作中最常用到的命令 anacron   主要用于非7*24小时开机的服务器, 提示:crond服务,crontab命令是生产工作中重要的命令应用,其他的很少使用,可以忽略 重点学习crondtab定

Linux Crontab [定时任务] 命令与参数详解

crontab命令常用于Unix和Linux系统中,用于设置周期性被执行的指令. 该命令从标准输入设备读取指令,并将其存放于crontab文件中,以供读取和执行. 通常,crontab储存的指令被守护进程激活,crond服务常常在后台运行. 通过设定的时间来检查是否有作业需要执行,这类作业一般称为:cron jobs. crontab 文件 crontab文件包含送交cron守护进程的一系列作业和指令. 每个用户可以拥有自己的crontab文件,同时操作系统保存一个针对整个系统的crontab文

crontab定时任务_net

2017年2月25日, 星期六 crontab定时任务 19. crontab 定时任务 通过crontab 命令,我们可以在固定的间隔时间执行指定的系统指令或 shell script脚本.时间间隔的单位可以是分钟.小时.日.月.周及以上的任意组合.这个命令非常适合周期性的日志分析或数据备份等工作. 19.1. 命令格式 crontab [-u user] file crontab [-u user] [ -e | -l | -r ] 19.2. 命令参数 -u user:用来设定某个用户的c

linux crontab 定时任务解析

-----------crontab定时任务---------------------- 检查crontab工具是否安装 crontab -l 检查crontab服务是否启动 service crond status 在日志文件上每分钟把当前时间写入log.txt中 crontab -e */1 * * * * date >> /tmp/log.txt 分 时 日 月 星期几[0或7表示星期天] 案例: (1)每晚的21:30重启apache 30 21 * * * service httpd

对于crontab定时任务不能自动执行的总结

最近遇到了一些sh不能在crontab定时任务中自动执行的问题 期间由于不太了解,故走了一点弯路,现在总结下来可能第一次 进行设置遇到的问题.以绝后患!我所用过的操作系统为HP-unix&linux&sco-unix,均测试通过 1,首先确保sh脚本具有可执行属性 即chmod +x  ***.sh 或chmod +777 ***.sh 2,确保sh脚本手工执行正常 即在当前系统内手工执行sh脚本以后能收到自己期望得到的结果 3,加载环境变量 这个问题是经常容易被忽略的问题,通常我们在第二

【转】crontab定时任务中文乱码问题

转载:http://blog.163.com/[email protected]/blog/static/1216503422012135511740/ 手动执行都很正常的的脚步,添加到定时任务中一直执行失败,日志文件全是乱码 经过多方查证终于找到了原因! crontab启动的任务没有获取系统的环境变量,导致中文乱码 解决办法:    在执行的脚步中添加编码方式或者添加对应的环境变量 如: 1./usr/bin/java -Dfile.encoding=UTF-8 -jar ALDTool.ja

Linux之crontab定时任务

****crontab简介**** 简而言之呢,crontab就是一个自定义定时器. ****crontab配置文件**** 其一:/var/spool/cron/ 该目录下存放的是每个用户(包括root)的crontab任务,文件名以用户名命名 其二:/etc/cron.d/ 这个目录用来存放任何要执行的crontab文件或脚本. ****crontab时间说明**** # .---------------- minute (0 - 59) # | .------------- hour (0

docker(ubuntu)中安装cron运行crontab定时任务

1.安装cron apt-get install cron 设置crontab定时任务 crontab -e */1 * * * * /usr/bin/python /python/asch-check.py 编辑输入以上(表示1分钟执行一次asch-check.py脚本) 启动:service cron start 2.安装日志服务rsyslog apt-get install rsyslog 启动 service rsyslog start 编辑设置 vi /etc/rsyslog.d/50