一.linux定时任务软件种类 .at : 适合执行一次的任务。突发性的任务。需要启动 atd 服务才能执行任务。 .crontab: 周期性的执行任务工作:启动crond 服务后可以执行任务。最常用到的任务。 .anacron : 已天为周期后者在系统每次开机之后执行的任务工作

一.linux定时任务软件种类

1.at:适合执行一次的任务。突发性的任务。需要启动atd服务才能执行任务。

2.crontab:周期性的执行任务工作:启动crond服务后可以执行任务。最常用到的任务。

3.anacron:已天为周期后者在系统每次开机之后执行的任务工作。他会检测我们在停机之间应该被执行但是没有被执行的任务,将该任务执行一次。

二、crontab定时任务

1.语法

[root@backup-Dextra]#crontab--help
crontab:invalidoption---
crontab:usageerror:unrecognizedoption
usage:crontab[-uuser]file
crontab[-uuser][-e|-l|-r]
(defaultoperationisreplace,per1003.2)
-e(edituser'scrontab)
-l(listuser'scrontab)
-r(deleteuser'scrontab)
-i(promptbeforedeletinguser'scrontab)
-s(selinuxcontext)

/var/spool/cron/系统定时任务配置文件路径:查看、编辑定时任务都放在此目录下,已当前用户命名。

用户的定时任务规则一般分为6个段(前5段时间、6段是命令或者是脚本),每段用空格分隔(系统分为7段)

特殊符号

*:表示任意时间都

-:表示一个时间段1-5代表12345

,:表示分隔时间段

/n分隔n单位时间1/5代表每五分钟。

注意:日和周不要同时使用,否则达不到效果。

小结:书写定时任务要领

1.加必要注释

2.执行脚本前加/bin/sh可以有执行权限

3.在制定用户下执行相关定时任务crontab–uwyg–l

4.定时任务结尾加>/dev/null2>&1

5.生产任务不要打印输出去掉-v

6.定时任务或程序最好写到脚本里面执行

技巧:命令程序要用绝对路径

脚本中用到系统的环境变量要重新定义

7.定时任务执行的脚本要规范路径(/server/scripts/)

8.配置优秀定时任务过程

1)命令行执行命令命令成功后复制到脚本;

2)测试脚本,成功后复制脚本路径配置定时任务,不要手工输入;

3)测试环境先测试,然后正式上线;

三.系统定时任务

[root@study1~]#cat/etc/crontab

SHELL=/bin/bash

PATH=/sbin:/bin:/usr/sbin:/usr/bin

MAILTO=root

HOME=/

#Fordetailsseeman4crontabs

#Exampleofjobdefinition:

#.----------------minute(0-59)

#|.-------------hour(0-23)

#||.----------dayofmonth(1-31)

#|||.-------month(1-12)ORjan,feb,mar,apr...

#||||.----dayofweek(0-6)(Sunday=0or7)ORsun,mon,tue,wed,thu,fri,sat

#|||||

#*****user-namecommandtobeexecuted

接目录加run-parts/etc/cron.hourly目录内的可执行文件都会被执行。

利用系统配置文件/etc/crontab配置用户任务

*****rootrun-parts/etc/cron.hourly

四.生产场景如何调试定时任务

1.把任务执行频率快一些:每分钟5分钟。。。。。。。。。。。

强调:有些任务不允许频繁执行的,例如:定时往数据库插入数据,先在测试机上。

2.用正确的执行任务时间,设置完成后,可以修改下系统当前时间:生产环境部不可以

3.通过日志输出来调试定时任务追加到日志文件就可以了。有重定向了就不能定义到空

4.注意一些任务命令带来的问题

5.注意环境变量导致的定时任务故障(命令也要全路径)

6.通过定时任务Crond日志调试任务

五.crontab定时任务生产应用问题

1.环境变量问题

2.任务路径问题使用绝对路径

3.脚本权限问题脚本前加/bin/sh

4.时间变量问题“date+\%y\%m\%d”%写在脚本中不用转义

5.>.dev/null2>&1问题

6.定时任务加注释

7.用脚本程序替代命令行

8.避免不必要的程序输出:例如tar–zcvf中的V去掉

9.切到目标目录的上一级目录打包

10.定时任务中的脚本程序命令用全路径:如果环境变量重新定义了,就不需要了

linux下定时任务的更多相关文章

  1. Linux下定时任务配置-crontab

    实际中经常有一些任务需要定期执行,人工操作比较麻烦,如果定时执行将会省去很多人力,还可以在一些资源占用不多的时间段执行,linux下crontab命令就实现了这一便捷的功能,实现脚本的自动化运行. 常 ...

  2. linux下定时任务的工具crontab的用法

    Linux计划任务工具cron用法详解 linux下大名鼎鼎的计划任务工具crontab的使用介绍baidu.google上多得让人眼花缭乱,本着“天下文章一大抄”的觉悟,加上本人日常工作中总结的使用 ...

  3. linux下定时任务设置

    原文http://www.blogjava.net/freeman1984/archive/2010/09/23/332715.html 觉这篇文章写的挺全的,把它拿过来存在博客里,方便以后查询. 为 ...

  4. Linux下定时任务的查看及取消

    crontab -l 表示列出所有的定时任务 crontab -r 表示删除用户的定时任务,当执行此命令后,所有用户下面的定时任务会被删除,执行crontab -l后会提示用户:“no crontab ...

  5. linux下定时任务的简单示例

    1.方式一:用sleep实现定时任务: 1.1 编辑shell脚本,如下sleep_aa.sh: #!/bin/bash t1=`date "+%Y-%m-%d %H:%M:%S" ...

  6. linux下定时任务的使用

    使用方法 执行crontab -e命令会进入一个可编辑界面,在该界面中我们可以制定定时任务,然后保存退出(wq) 格式如下: 由于直接运行编辑命令后只是一个空白界面,不够友好,所以建议使用以下方式来增 ...

  7. Linux下定时任务Crontab的使用

    使用crontab你可以在指定的时间执行一个shell脚本或者一系列Linux命令.例如系统管理员安排一个备份任务使其每天都运行   入门 # crontab –e 这样可以已编辑模式打开个人的cro ...

  8. linux下添加定时任务

    linux下定时任务文件在/etc/crontab 直接vim /etc/crontab 打开就行 在crontab文件中如何输入需要执行的命令和时间.该文件中每行都包括六个域,其中前五个域是指定命令 ...

  9. linux下crontab的使用实现

    1 crontab实现定时任务 1.1服务状态 /sbin/service crond status 查看定时任务的服务是否启动 参数:start 启动服务      Stop 停止服务      R ...

随机推荐

  1. h.264 率失真优化

    Rate Distortion Optimization 搜索时,一个不可避免的问题就是如何对mv进行比较,从而得到最优 对于同一压缩算法来说,码率越高表示图像质量越好.失真越小,但是码率越高要求更大 ...

  2. POJ1573 Robot Motion(模拟)

    题目链接. 分析: 很简单的一道题, #include <iostream> #include <cstring> #include <cstdio> #inclu ...

  3. Delphi 多线程 “尚未调用CoInitialize错误”的解决方法

    在Delphi  多线程中出现“尚未调用CoInitialize错误”的解决方法 解决方法如下: function  TMyThread.ExecTimer: Boolean;begin  Resul ...

  4. js编写验证码

    这是一个简单的js编写的验证码,自己已经亲自验证,没有问题了 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN ...

  5. HDU 3853 LOOPS

    题意:对于每一格,都可以往右走,原地不走,往下走,概率分别为a[i],b[i],c[i](每一个格子与其他格子的概率不一定相同).在R*C的棋盘上(输入数据保证不会走出棋盘),求从(0, 0)走到(R ...

  6. Flask-SQLAlchemy获取一个字段里去掉重复的数据

    注意:可排序的列表内元素不可以是字典等复杂数据类型   比较容易记忆的是用内置的set l1 = ['b','c','d','b','c','a','a']l2 = list(set(l1))prin ...

  7. linux mysql 数据目录文件夹移动及所遇到的问题

    一 .如果是fedora下用rpm包安装的mysql,修改方法如下: 如果这里说的不够清楚,可以到http://www.vipkj.net/post-839.html给我留言 MySQL默认的数据文件 ...

  8. cache 的设计与实现--转载

    本文整理自一下两篇博客:http://my.oschina.net/ScottYang/blog/298727http://my.oschina.net/u/866190/blog/188712 Ca ...

  9. 命名空间引用问题 包括找不到ConfigurationManager 这个类

        因为SqlConnection类是属于 System.Data.SqlClient命名空间下的,     所以命名空间引用的时候需要加上 System.Data.SqlClient,代码如下: ...

  10. Java基础知识强化93:算一下你来到这个世界多少天的案例

    1. 分析: (1)键盘录入你的出生年月日 (2)把该字符串转换为一个日期 (3)通过该日期得到一个毫秒值 (4)获取当前时间的毫秒值 (5)用(4)-(3)得到一个毫秒值 (6)把E的毫秒值转换为天 ...