linux系统常见的例行性任务有:
× 进行日志文件的论替(log rotate)
× 日志文件分析logwatch的任务
× 新建locate的数据库
× whatis 数据库的建立
× RPM软件日志文件的新建
× 删除临时文件,通过tmpwatch命令来删除这些临时文件
× 与网络服务有关的分析行为
====仅执行一次的工作调度at====
先要启动atd这个服务:
# /etc/init.d/atd restart
设置开机就自动启动请执行:
# chkconfig atd on
at运行原理:事实上,我们使用at命令来生成所要运行的工作,并将这个工作以文本方式写入/var/spool/at/ 目录内,该工作便能等待atd服务的取用和执行了,就是这么滴简单。
at的授权管理:通过/etc/at.allow /etc/at.deny这两个配置文件限制
1,先寻找/etc/at.allow这个文件,写在这个文件中的用户才能使用at,没有在其中的不能使用at(不管at.deny文件)
2,如果/etc/at.allow不存在,就寻找/etc/at.deny,若写在这个文件的用户则不能使用at,否则就可以使用at
3,如果两个文件都不存在,那么只有root可以使用at
上面两个配置文件中,一行一个帐号名即可
# at [-mldv] TIME
# at -c 工作号码
-m:当at工作完成后,即使没有输出信息,以email通知用户该工作已完成
-l:at -l 相当于atq,列出目前系统上面所有该用户的at调度
-v:可以使用较明显的时间格式列出at调度中的任务列表
-c:列出后面接的该项工作的实际命令内容
TIME的格式有:
HH:MM:在今天的HH:MM时刻进行,如果已超过该时刻,那么明天的HH:MM执行
HH:MM YYYY-MM-DD:强制规定某年某月某日某时某分执行
HH:MM[am|pm] [Month] [Date] –> 04pm March 17
HH:MM[am|pm] + number [minutes|hours|days|weeks] –> 04pm + 3 days –> now + 3 minutes
$ at now + 5 minutes
at> /bin/mail root -s “tesing at job” < /root/.bashrc
at> <EOT> <===在这里输入CTRL + D可以结束输入,出现一个EOT就代表结束
job 1 at Mon Oct 29 21:12:00 2012
最好使用绝对路径来执行命令
使用at命令在某时刻在终端中显示消息hello:
# echo “hello” > /dev/tty1
删除at的工作:
# at -l
# atrm [jobnumber]
batch:系统有空时才进行后台的任务,否则等待暂缓执行,内部还是使用的at
# batch 23:00 2012-3-23
====循环执行的工作调度crontab====
与at类似,对于crontab的权限控制也是两个配置文件:/etc/cron.allow /etc/cron.deny,检查顺序也跟之前相同。
当用户使用crontab这个命令新建工作调度后,该项工作被记录到/var/spool/cron/ 里面去了,而且是以帐号作为判别的。距离来说,yidao这个帐号的工作会被记录到/var/spool/cron/yidao这个文件中去
日志文件记录在/var/log/cron这个日志文件中
# crontab [-u username] [-l|-e|-r]
-u:只有root用户可以使用这个参数,帮其他用户新建或删除crontab工作调度
-e:编辑crontab的工作内容
-l:查阅crontab的工作内容
-r:删除所有crontab的内容,若仅想删除一项,用-e去编辑删除一项即可
$ crontab -e
0 12 * * * mail test -s “at 12:00″ < /home/yidao/.bashrc
# 分 时 日 月 周 命令
几个特殊符号:
* 代表任何时刻
, 代表枚举的意思,比如3点和6点都执行:0 3,6 * * * command
- 代表区域选择,比如8点到12点之间的每小时的第20分钟都执行:20 8-12 * * * command
/n 那个n代表数字,即使每隔n单位间隔的意思,例如每5分钟都进行一次:*/5 * * * * command 或者 0-59/5 * * * * command
====系统的配置文件:/etc/crontab====
刚才我们讲的crontab -e是针对用户设置的,那如果是系统的例行性任务呢,你只要编辑/etc/crontab这个配置文件即可。编辑完后需要重启crond这个服务:/etc/init.d/crond restart
# vi /etc/crontab
…..
# run-parts
01 * * * * root run-parts /etc/cron.hourly <==每小时
02 4 * * * root run-parts /etc/cron.daily <==每天
22 4 * * 0 root run-parts /etc/cron.weekly <==每周日
42 4 1 * * root run-parts /etc/cron/montyly <==每个月1号
后面可以自己随便加
/etc/cron.hourly /etc/cron.daily 这些都是目录,意思就是放在这里面的bash脚本会自动执行,如果你自己想执行些脚本,可以建立一个目录,然后把脚本放里面,之后在/etc/crontab配置文件里加一行就行了。还有一种方式就是直接在/etc/crontabv中写命令也行。
安全检查:
很多时候被植入木马都是以例行性命令方式植入的,所以可以检查/var/log/cron里面的内容来查看是否有非你设置的cron被执行了。
周与日、月不可同时并存
====可唤醒停机时期的工作任务anacron====
anacron并不能指定何时执行某任务,而是以天为单位或者是开机后立刻执行进行anacron的操作,她会检测停机期间应该进行但没有进行的crontab任务,并将该任务执行一遍,然后anacron就会自动停止了。
anacron其实是一个程序而并非一个服务(deamon),这个程序在centos当中已经进入了crontab的调度。默认会以一天、七天、一个月为期检测系统未进行的crontab任务。
# anacron [-sfn] [job]…
# anacron -u [job]…
-s:开始连续执行各项工作job,会依据时间记录文件的数据判断是否进行
-f:强制进行,而不去判断时间记录文件的时间戳
-n:立刻进行未进行的任务,而不是延迟等待时间
-u:仅更新时间记录文件的时间戳,不进行任何工作
job:由/etc/anacrontab定义的各项工作名
实际上若执行:
# anacron -s cron.daily
anacrontab先从/var/spool/anacron/cron.daily取出最近一次执行anacron的时间戳,然后与目前时间进行对比,如果差异大于等于1天,开始执行run-parts /etc/cron.daily这串命令。
所以,anacron并不需要额外设置,只要设置anacron开机运行就行了:
=======================END==========================
本人博客已搬家,新地址为:http://yidao620c.github.io/
相关推荐
总之,本文件是一份关于鼎捷系统T100排程设置和检查的详细指南,涉及内容包括排程架构、程序设定、异常检查、排程关闭与重启说明、crontab配置、排程状态检查、参数设置、问题排除等多个方面。掌握这些知识点对于...
在 Ubuntu 中,可以使用以下命令安装 Crontab: `apt-get install cron` 在 CentOS 中,可以使用以下命令安装 Crontab: `yum -y install vixie-cron` 创建 Shell 脚本 为了实现 MySQL 备份,我们需要创建一个 ...
在Linux系统中,`crontab`是一个非常重要的工具,用于设置周期性的任务调度,也就是我们通常所说的定时任务。这个工具允许用户定义一系列的规则,按照预设的时间间隔执行特定的命令或者脚本,这对于系统维护、数据...
crontab 格式详解 crontab 是 Linux 中的一个命令,用于让用户在固定时间或固定间隔执行程序。...crontab 是一个非常有用的命令,能够让用户在固定时间或固定间隔执行程序,从而提高工作效率和自动化程度。
### Linux Crontab命令详解与应用实例 Cron是Linux系统中的一个守护进程,用于调度周期性执行的任务或脚本。...通过本文的讲解,相信读者已经对Crontab有了更深刻的理解,并能灵活运用到实际工作中。
在Linux系统中,Crontab(也称为cron table)是一个非常重要的工具,用于安排周期性的任务,例如定期备份、日志清理、系统维护等。在Linux CentOS 7(C7)环境中,通常使用RPM(Red Hat Package Manager)包管理系统...
`crontab`的每一行由五个字段组成,分别代表分钟、小时、日期、月份和星期,后面跟上要执行的命令。例如,每小时的第一分钟执行`/path/to/command`: ``` * * 1 * * /path/to/command ``` 星号(*)代表任意值,空格...
Linux网络操作系统基础中,周期性任务的管理是一个关键部分,主要涉及到`cron`服务和`crontab`命令。`cron`是Linux下的一种计划任务调度器,它允许用户或系统管理员安排任务在特定时间自动执行。这在系统维护、自动...
Crontab(cron table)是Unix和类Unix操作系统中的一种调度服务,用于设置周期性执行的任务。它的工作原理是通过守护进程`crond`来激活定时任务,这些任务被称为cron jobs。下面将详细介绍crontab的各个知识点。 1....
Linux中的`crontab`是系统管理员和普通用户用来安排周期性任务的工具。它允许你在特定的时间间隔或特定时间点执行脚本、程序或任何命令。`crontab`这个名字来自于“cron table”,意为定时任务表。下面将详细解释`...
### Linux Crontab 详解 ...通过以上的解析,我们可以更加深入地了解 crontab 的工作原理和使用方法,这对于在 Linux 系统中自动化任务是非常有用的。掌握 crontab 的使用可以极大地提高系统的管理和维护效率。
crontab 详细用法 定时任务 crontab 是 Linux 系统中的一种任务调度工具,允许用户在指定的时间执行 shell 脚本或一系列 Linux 命令。crontab 的使用非常广泛,例如系统管理员可以安排备份任务、日志记录任务、系统...
例如,“1,15 * * * *”意味着在每天的第一分钟和第十五分钟执行命令。 - **命令**:可以是一条命令或一系列命令,需要用引号括起来。命令字符串必须遵循Bourne shell的语法规则。 ##### 2.5 示例解析 例如,以下...
crontab是一种常用的定时任务调度工具,它允许用户设置周期性执行的命令。crontab可以安排在特定的时间或日期自动执行任务,比如备份文件、更新系统、执行清理脚本等。它广泛应用于Linux操作系统和Unix系统。 ...
### crontab命令格式与例子解析 #### 一、crontab简介 `crontab` 是 Linux 和 Unix-like 操作系统中一个非常重要的工具...在实际应用中,合理设置 cron job 可以显著减少管理员的工作负担,提升系统的可用性和可靠性。
在Linux系统中,例行性工作调度是管理自动化任务的关键组成部分,允许管理员或用户设定在特定时间执行的任务。主要有两种调度工具:`cron` 和 `at`。 `cron` 是一种周期性的任务调度器,它按照预设的时间间隔执行...
在系统层面,Crontab还可以通过编辑`/etc/crontab`文件来设置全局性的周期任务,如每天、每周、每月执行的例行维护任务。此外,Crontab还支持在特定目录下运行脚本,例如`/etc/cron.hourly`、`/etc/cron.daily`、`/...
7. **跨平台兼容性**:虽然`python-crontab`主要设计用于Unix/Linux系统,但在安装了模拟cron环境的其他平台上,如Windows,也可能能正常工作。 8. **版本2.2.3的更新**:虽然具体版本2.2.3的变更日志未给出,通常...
`crontab`是Unix/Linux系统中用于设置周期性被执行任务的命令,它允许用户根据预定义的时间间隔安排任务。在MACOSX上,虽然它不是内置的,但可以通过安装来实现。`crontab-46.1.tar.gz`是一个压缩包文件,包含了源...
Linux下的定时执行主要是使用crontab文件中加入定制计划来执行,设置比Windows稍微复杂一些(因为没有图形界面嘛),但是也不是非常复杂,基本上用过一遍能记住了,关键是要记住/var/spool/cron这个目录。下面看一下...