1、计划任务linux
1) Crontab简介shell
一、Crontab是一个用于设置周期性被执行任务的工具;apache
二、被周期性执行的任务咱们称为Cron Job;vim
三、周期性执行的任务列表咱们称为Cron Table。windows
2) Crontab实践centos
一、 相关工具缓存
#Putty安全
#一个免费的易用的SSH链接工具bash
#http://www.putty.org/服务器
二、 安装并检查Crontab服务
①检查cron服务
检查Crontab工具是否安装:crontab -l
检查crond服务是否启动:service crond status
②安装cron(centos7以上已默认安装)
yum install vixie-cron
yum install crontabs
③案例实现
#每分钟都打印当前时间到一个日志文件中
*/1 * * * * date >> /tmp/log.txt
三、 Crontab的基本组成
crond 系统服务 + 配置文件 + 配置工具crontab
四、 Crontab的配置文件格式
案例:
①每晚的21:30重启apache
30 21 * * * service httpd restart
②每个月一、十、22日的4:45重启apache
45 4 1,10,22 * * service httpd restart
③每个月1到10日的4:45重启apache
45 4 1-10 * * service httpd restart
④每隔两分钟重启Apache服务器
*/2 * * * * service httpd restart #偶数分钟
1-59/2 * * * * service httpd restart #基数分钟
⑤晚上11点到早上7点之间,每隔一小时重启apache
0 23-7/1 * * * service httpd restart
⑥天天18:00至23:00之间每隔30分钟重启apache
0,30 18-23 * * * service httpd restart
0-59/30 18-23 * * * service httpd restart
总结:
* 表示任什么时候候都匹配
能够用“A,B,C” 表示A或者B或者C时执行命令
能够用“A-B” 表示A到B之间时执行命令
能够用“*/A” 表示每A分钟(小时等)执行一次命令
五、 Crontab工具的使用
#查看某用户的计划任务列表
crontab -l -u 用户名
#修改某用户的计划任务
crontab -e -u 用户名
#查看生成的最终计划任务文件
/var/spool/cron
六、 Crontab的日志
/var/log/cron文件保存着全部cron的任务执行记录
/var/spool/mail/ 下也会以邮件的方式发送日志信息
七、 Crontab配置文件
① 全局(系统)配置文件
/etc/crontab
[root@localhost etc]# cat crontab
SHELL=/bin/bash(用该命令去执行)
PATH=/sbin:/bin:/usr/sbin:/usr/bin(载入时须要用的PATH)
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
注:也可在/etc/crontab文件下添加计划任务,跟crontab -e不一样的是其实是一个全局的配置文件设置的计划任务,也称为系统计划任务。
② 服务配置文件
/etc/cron.d/
[root@localhost etc]# cat sysstat
#sysstat中的内容跟crontab -l所执行的内容是一致的
#crontab在载入文件的时候会把cron.d下面的配置文件信息(sysstat)载入成root用户下面的计划任务,若是用crontab –e会破坏原始文件(即sysstat)的配置内容。若是直接编辑sysstat文件的话,须要执行crontab +文件名,此时将会覆盖原先crontab -e里的内容。
③ 执行crontab -e其实是修改/var/spool/cron/下面对应当前帐号的文件。执行(crontab +文件名)时,将直接读取文件中的数据覆盖到/var/spool/cron/所对应用户的配置文件中
④ 在/etc/cron.d文件夹下面的文件能够认为是对系统配置的补充文件,打开能够看到和/var/spool/cron/用户的配置文件同样,可是多了个用户字段这些是系统的cron运行时自动加载的配置文件,使用crontab -l只能查看存在于/var/spool/cron/用户的cron任务
3) Crontab的常见错误
一、 环境变量
二、 命令行双引号中使用%时,未加反斜线\
三、 第三和第五个域之间执行的是“或”操做
四、 分钟设置误用
2、服务管理
1) 简介与分类
一、 系统的运行级别
① 运行级别
运行级别 |
含义 |
0 |
关机 |
1 |
单用户模式,能够想象为windows的安全模式,主要用于系统修复 |
2 |
不彻底的命令行模式,不含NFS服务 |
3 |
彻底的命令行模式,就是标准字符界面 |
4 |
系统保留 |
5 |
图形模式 |
6 |
重启动 |
② 运行级别命令
[root@localhost ~]# runlevel
N 3
(N表明no,由于一开机就进入字符界面,没有从哪一个级别转入到3级别)
#查看运行级别命令
[root@localhost ~]# init 运行级别
#修改运行级别命令
③ 系统默认运行级别
[root@localhost ~]# vim /etc/inittab
id:3:initdefault:
#系统开机后直接进入哪一个运行级别
二、 服务的分类
#独立的服务须要占用系统内存
#xinetd服务属于超级守护进程,自己是独立的,管理一些后台程序,用户须要访问后台程序要先访问xinetd,再经过它去访问对应的后台程序,响应时间慢,但除了xinetd自己占内存,剩下的都不占用系统内存
① 查询已安装的服务
[root@localhost ~]# chkconfig --list
#查看服务自启动状态,能够看到全部RPM包安装的服务(独立服务)
#查看服务安装位置,通常是/usr/local/下
② 查看xinetd服务
须要安装xinetd服务自己
[root@localhost ~]# yum -y install xinetd
③ 启动与自启动
服务启动:就是在当前系统中让服务运行,并提供功能。
服务自启动:自启动是指让服务在系统开机或重启动以后,随着系统的启动而自启动服务
④ RPM安装服务和源码包安装服务的区别
RPM安装服务和源码包安装服务的区别就是安装位置的不一样:
#源码包安装在指定位置,通常是/usr/local/
#RPM包安装在默认位置中
三、 服务与端口
① 端口的定义
若是把IP地址比做一间房子,端口就是出入这间房子的门。真正的房子只有几个门,可是一个IP地址的端口能够有65536个。如图:
② 端口与服务的对应
#1万之内的端口是系统预留的,超出的是用户使用的
#[root@localhost ~]# cat /etc/services(查看常规端口)
③ 查询系统中开启的服务
[root@localhost ~]# netstat -tlunp
-t列出tcp数据
-u列出udp数据
-l列出正在监听的网络服务(不包含已经链接的网络服务)
-n用端口号来显示服务,而不是用服务名
-p 列出该服务的进程ID(PID)
#列出系统中全部的已经启动的服务
总结:查看服务自启动状态:chkconfig –list
查看服务启动状态:a、[root@localhost ~]# ps aux
b、[root@localhost ~]# netstat -tlunp
2) RPM包服务管理
一、 独立服务的管理
① RPM包安装服务的位置
RPM安装服务和源码包安装服务的区别就是安装位置的不一样:
#源码包安装在指定位置,通常是/usr/local/。
其中usr是Unix System Resource,即Unix系统资源的缩写
#RPM包安装在默认位置中(不是绝对的),以下:
/etc/init.d/:启动脚本位置
/etc/sysconfig/:初始化环境配置文件位置
/etc/:配置文件位置
/etc/xinetd/conf:xinted配置文件
/etc/xindtd.d/:基于xinetd服务的启动脚本
/var/lib/:服务产生的数据放在这里
/var/log/:日志
② 独立服务的启动
[root@localhost ~]# /etc/init.d/独立服务名
start|stop|status|restart
[root@localhost ~]# /etc/rc.d/init.d/独立服务名
start|stop|status|restart
#redhat7.2系统早版本时,全部常规服务在此目录,照顾管理员的习惯/etc/init.d是/etc/rc.d/init.d的软连接即快捷方式。
[root@localhost ~]# service 独立服务名
start|stop|status|restart
#这个是redhat系列的专有命令
#默认源码包服务例外,不能由以上命令启动。
③ 独立服务的自启动的三种方式
A、chkconfig [--level 运行级别] [独立服务名] [on|off]
B、修改/etc/rc.d/rc.local文件(区别A和C的独立一种方法,推荐使用)
C、使用ntsysv命令管理自启动(redhat专有命令)
二、 基于xinetd服务的管理
① 安装xinetd
[root@localhost ~]# yum -y install xinetd
② xinetd服务的启动
#能够先查看rsync的端口号:grep rsync /etc/services
[root@localhost ~]# vi /etc/xinetd.d/rsync
service rsync(服务名称)
{
disable = yes
flags = IPv6(设定TCP/IP socket可重用)
socket_type = stream(使用TCP协议数据包)
wait = no(容许多个链接同时链接)
user = root(启动服务的用户为root)
server = /usr/bin/rsync(服务的启动程序)
server_args = --daemon
log_on_failure += USERID(登录失败后,记录用户的ID)
}
把文件中的disable改为这个disable(不能)=no
注意重启的是xinetd服务:service xinetd restart
③ xinetd服务的自启动两种方法
a、[root@localhost ~]# chkconfig rsync on
b、ntsysv
注:xinetd的启动是混为一谈,启动与自启动是通用的。
3) 源码包服务管理
一、 源码包安装服务的启动
使用绝对路径,调用启动脚原本启动。不一样的源码包的启动脚本不一样。能够查看源码包的安装说明,查看启动脚本的方法。
二、 源码包服务的自启动
把服务的绝对路径加入/etc/rc.d/rc.local文件中,绝对路径可经过安装文档查看(INSTALL)
三、 让源码包服务被服务管理命令识别
① 让源码包的某服务(如apache服务)能被service命令管理启动即建立软连接:ln -s /usr/local/apache2/bin/apachectl /etc/init.d/apache
② 让源码包的某服务(如apache服务)能被chkconfig与ntsysv命令管理自启动
[root@localhost ~]# vi /etc/init.d/apache
加入如下两句话:
#chkconfig:35 86 76
(指定httpd脚本能够被chkconfig命令管理。格式是:
chkconfig:运行级别 启动顺序关闭顺序)
#description:source package apache
(文档说明至关于注释,必需要加)
说明:启动、关闭顺序号不能跟/etc/rc3.d/目录下现有的顺序重复
35 启动级别
86 启动顺序
76 关闭顺序
加入红色标记的两句话以后,还要执行下面的语句才生效:
[root@localhost ~]# chkconfig --add apache
③ chkconfig和ntsysv是通用的,chkconfig能管理,就能被ntsysv管理。
4) 服务管理总结
3、系统管理
1) 进程管理
一、 进程管理简介
定义:进程是正在执行的一个程序或命令,每个进程都是一个运行的实体,都有本身的地址空间,并占用必定的系统资源。
做用:判断服务器健康状态;查看系统中全部进程;杀死进程
二、 进程的查看-ps命令和pstree命令
①ps aux #查看系统中全部进程,使用BSD操做系统格式
②ps -le #查看系统中全部进程,使用linux标准命令格式
选项
a:显示一个终端的全部进程,除了会话引线
u:显示进程的归属用户及内存的使用状况
x:显示没有控制终端的进程
-l:长格式显示。显示更加详细的信息
-e:显示全部进程,和-A做用一致
③查看进程信息:
USER:该进程是由哪一个用户产生的;
PID:进程的ID号;
%CPU:该进程占用CPU资源的百分比,占用越高,进程越耗费资源;
%MEM:该进程占用物理内存的百分比,占用越高,进程越耗费资源;
VSZ:虚拟内存的大小,单位KB;
RSS:实际物理内存的大小,单位KB;
TTY:该进程是在哪一个终端中运行的。其中tty1~tty7表明本地控制台终端,
tty1-tty6是本地的字符界面终端,tty7是图形终端。pts/0 -255表明
虚拟终端。不少都是?表示不少进程都是系统进程
注:在linux中,/sbin/init是全部的进程的父进程,进程ID永远都是1。
STAT:进程状态。
常见的状态有:
R:运行
S:睡眠
T:中止状态
s:包含子进程
+:位于后台
START:该进程的启动时间
TIME:该进程占用CPU的运算时间,注意不是系统时间
COMMAND:产生此进程的命令名
④查看进程树
[root@localhost etc]# pstree [选项]
选项:
-p:显示进程PID
-u:显示进程的所属用户
三、 进程的查看-top命令
[root@localhost ~]# top [选项]
选项:
-d 秒数:指定top命令每隔几秒更新,默认是3秒
-b:使用批处理模式输出。通常和“-n”选项合用
-n次数:指定top命令执行的次数,通常和“-b”选项合用
使用top查看全部进程:
[root@localhost ~]# top -b -n 1 > /root/top.log
在top命令的交互模式中能够执行的命令:
?或者h :显示交互模式的帮助
P:以CPU使用率排序 默认就是此项
M:之内存的使用率排序
N:以PID排序
q:推出top
①第一行信息为任务队列信息
内容 |
说明 |
21:05:56 |
系统当前时间 |
up 1 day,13:32 |
系统的运行时间,本机已经运行1天13小时32分钟 |
2 users |
当前登陆了两个用户 |
Load average:0.00,0.00,0.00 |
系统在以前1分钟,5分钟,15分钟的平均负载。通常认为小于1时,负载较小。若是大于1,系统已经超出负荷。(依核数来断定,默认1) |
有计划的重启是服务器维护的基本原则。
②第二行为进程信息
内容 |
说明 |
Task:95 total |
系统中的进程总数 |
1 running |
正在运行的进程数 |
94 sleeping |
睡眠的进程 |
0 stopped |
正在中止的进程 |
0 zombie |
僵尸进程。若是不是0,须要手工检查僵尸进程 |
③第三行
内容 |
说明 |
Cpu(s):0.1%us |
用户模式占用的CPU百分比 |
0.1%sy |
系统模式占用的CPU百分比 |
0.0%ni |
改变过优先级的用户进程占用的CPU百分比 |
99.7%id |
空闲CPU的CPU百分比(不能低于20%) |
0.1%wa |
等待输入/输出的进程的占用CPU百分比 |
0.0%hi |
硬中断请求服务占用的CPU百分比 |
0.1%si |
软中断请求服务占用的CPU百分比 |
0.0%st |
st(steal time)虚拟时间百分比。就是当有时,虚拟CPU等待实际CPU的时间百分比。 |
④第四行
内容 |
说明 |
Mem:625344k total |
物理内存的总量,单位kb |
571504k used |
已经使用的物理内存数量 |
53840k free |
空闲的物理内存数量 |
65800k buffers |
做为缓冲的内存数量(加速数据的写入) |
⑤第五行
内容 |
说明 |
Swap: 524280k total |
交换分区(虚拟内存)的总大小 |
0k used |
已经使用的交互分区大小 |
524280k free |
空闲交换分区的大小 |
409280k cached |
做为缓存的交互分区的大小(加速数据的读取) |
四、 杀死进程
① kill命令
[root@localhost ~]# kill -l
#查看可用的进程信号
[root@localhost ~]# kill -1 进程号
#重启进程
[root@localhost ~]# kill -9 进程号
#强制杀死进程
信号代号 |
信号名称 |
说明 |
1 |
SIGHUP |
该信号让进程当即关闭,而后从新读取配置文件以后重启(平滑重启) |
2 |
SIGINT |
程序终止信号,用于终止前台进程。至关于输出ctrl+c快捷键。 |
8 |
SIGFPE |
在发生致命的算术运算错误时发出,不只包括浮点运算错误,还包括溢出及除数为0等其它全部的算术的错误。 |
9 |
SIGKILL |
用来当即结束程序的运行,本信号不能被阻塞、处理和忽略。通常用于强制终止进程。 |
14 |
SIGALRM |
时钟定时信号,计算的是实际时间或时钟时间,alarm函数使用该信号。 |
15 |
SIGTERM |
正常结束进程的信号,kill命令的默认信号。有时若是进程已经发生问题,这个信号是没法正常终止进程的,咱们才会尝试SIGKILL信号,也就是信号9。 |
18 |
SIGCONT |
该信号可让暂停的进程恢复执行,本信号不能被阻断。 |
19 |
SIGSTOP |
该信号能够暂停前台进程,至关于输入ctrl+z快捷键。本信号不能被阻断。 |
② killall命令
killall [选项][信号] 进程名
#按照进程名杀死进程
选项:
-i:交互式,询问是否要杀死某个进程
-I:忽略进程名的大小写(此处是大写的i)
③ pkill命令
pkill [选项][信号] 进程名
#按照进程名终止进程
选项:
-t 终端号:按照终端号踢出用户
④ 按照终端号踢出用户
w
#使用w命令查询本机已经登陆的用户
pkill -9 -t pts/1
#强制杀死从pts/1虚拟终端登陆的进程
五、 修改进程优先级
① 简介
Linux操做系统是一个多用户、多任务的操做系统,Linux系统中一般运行着很是多的进程。可是CPU在同一个时钟周期内只能运算一个指令。进程优先级决定了每一个进程处理的前后顺序
PRI表明Priority,NI表明Nice。这两个值都是优先级,数字越小表明该进程优先级越高。最终生效的是PRI,可是无论是超级用户仍是普通用户都不能直接修改PRI这个优先级进程,只能修改NI这个优先级进程,系统最终生效的是PRI+NI的值。
② 修改NI值时有几个注意事项
③ nice命令
nice [选项] 命令
#nice命令能够给新执行的命令直接赋予NI值,可是不能修改已经存在进程的NI值
选项:
-n NI值:给命令赋予NI值。
例如:nice -n -5 service httpd start
④ renice命令
renice [优先级] PID
#renice命令是修改已经存在进程的NI值得命令
例如:renice -10 2125
2) 工做管理
① 工做管理简介
工做管理:指的是在单个登陆终端中(shell界面)同时管理多个工做行为。
[root@localhost ~]# jobs(查看在后台运行的程序)
Linux后台运行:命令后面加上“ &”
注意事项:
② 工做管理方法
tar -zcf etc.tar.gz /etc &
#把命令放入后台,并在后台执行
top
#按下ctrl+z快捷键,放在后台暂停
jobs [-l]
选项:
-l:显示工做的PID
注:“+”号表明最近一个放入后台的工做,也是工做恢复时,默认恢复的工做。“-”号表明倒数第二个放入后台的工做
[root@localhost ~]# fg %工做号
参数:
%工做号:%号能够省略,可是注意工做号(第一列显示的[1]、[2]、[3]等这样的数字)和PID的区别
例如:[root@localhost ~]# fg %1
[root@localhost ~]# bg %工做号
注:后台恢复执行的命令,是不能和前台有交互的,不然不能恢复到后台执行
③ 后台命令脱离登陆终端执行
方法1.把须要后台执行的命令加入/etc/rc.local文件
方法2.使用系统定时任务,让系统在指定的时间执行某个后台命令
方法3.使用nohup命令(推荐使用)
nohup [命令] &
3) 系统资源查看
① vmstat命令监控系统资源
vmstat [刷新延时][刷新次数]
例如:vmstat 1 3
procs:进程信息字段
-r:等待运行的进程数,数量越大,系统越繁忙
-b:不可被唤醒的进程数量,数量越大,系统越繁忙。
memory:内存信息字段
-swpd:虚拟内存的使用状况,单位kb
-free:空闲的内存容量,单位为KB
-buff:缓冲的内存容量,单位为KB
-cache:缓存的内存容量,单位为KB
swap:交换分区的信息字段
-si:从磁盘中交换到内存中数据的数量,单位KB
-so:从内存中交换到磁盘中数据的数量,单位KB。此两个数越大,证实
数据须要常常在磁盘和内存之间交换,系统性能越差。
io:磁盘读写信息字段
-bi:从块设备读入数据的总量,单位是块。
-bo:写到块设备的数据的总量,单位是块,此两个值越大,表明系统的
I/O越繁忙。
system:系统信息字段
-in:每秒被中断进程的次数
-cs:每秒进行的事件切换次数。此两个数越大,表明系统与接口设备的
通讯很是繁忙
CPU:CPU信息字段
-us:非内核进程消耗CPU运算时间的百分比
-sy:内核进程消耗CPU运算时间的百分比
-id:空闲CPU的百分比,值越小表明系统越繁忙
-wa:等待I/O所消耗的CPU百分比
-st:被虚拟机所盗用的CPU占比
② 缓存和缓冲的区别
简单来讲缓存(cache)是用来加速数据从硬盘中“读取”的,而缓冲(buffer)是用来加速数据“写入”硬盘的。
③ dmesg开机时内核检测信息(判断当前服务器的硬件状态)
[root@localhost ~]# dmesg
例如:[root@localhost ~]# dmesg | grep CPU
④ free命令查看内存使用状态
[root@localhost ~]# free [-b|-k|-m|-g]
选项:
-b:以字节为单位显示
-k:以KB为单位显示,默认此单位
-m:以MB为单位显示
-g:以GB为单位显示
第一行:total是总内存数,used是已经使用的内存数,free是空闲的内存数,
shared是多个进程共享的内存总数,buffers是缓冲内存数,cached
是缓存内存数。默认单位是KB。
第二行:-/buffers/cache的内存数,至关于第一行的used-buffers-cached
+/buffers/cache的内存数,至关于第一行的free+buffers+cached
第三行:total是swap的总数;used是已经使用的swap数,free是空闲的
swap数,默认单位KB。
⑤ 查看CPU信息
[root@localhost ~]# cat /proc/cpuinfo
⑥ uptime命令
[root@localhost ~]# uptime
显示系统的启动时间和平均负载,也就是top命令的第一行。w命令也能够看这个数据。
⑦ 查看系统与内核相关信息
uname [选项]
选项:
-a 查看系统全部相关信息
-r 查看内核版本
-s 查看内核名称
⑧ 判断当前系统的位数
[root@localhost ~]# file /bin/ls
⑨ 查询当前linux系统的发行版本
[root@localhost ~]# lsb_release -a
⑩ 列出进程打开或使用的文件信息
lsof [选项]
选项:
-c 字符串:只列出以字符串开头的进程打开的文件
-u 用户名:只列出某个用户的进程打开的文件
-p pid:列出某个PID进程打开的文件
例如:
lsof | more
#查询系统中全部进程调用的文件
lsof /sbin/init
#查询某个文件被哪一个进程调用(必须是系统文件)
lsof –c httpd
#查看httpd进程调用了哪些文件
lsof –u root
#按照用户名,查询某用户的进程调用的文件名
4) 系统定时任务
一、 at一次性定时任务
① 肯定at安装
[root@localhost ~]# chkconfig --list | grep atd
#at服务是否安装
[root@localhost ~]# service atd restart
#at服务的启动
② at的访问控制
③ at命令
at [选项] 时间
选项:
-m:当at工做完成后,不管是否命令有输出,都用email通知执行at
命令的用户
-c 工做号:显示该at工做的实际内容
时间:
HH:MM 例如:02:30
HH:MM YYYY-MM-DD 例如:02:30 2013-07-25
HH:MM[am|pm] [month][date] 例如:02:30 July 25
HH:MM[am|pm] + [minutes|hours|days|weeks]
例如:now+5 minutes
举例:
at now + 2 minutes #在两分钟后执行脚本。
#写完回车,出现下面的at提示符,提示你输入要执行的脚本和重定向
路径
at> /root/helo.sh >> /root/helo.log
④ 其余at管理命令
atq #查询当前服务器上的at工做
atrm[工做号] #删除指定的at任务
⑤
二、 crontab循环定时任务
① crond服务管理与访问控制
[root@localhost ~]# service crond restart
[root@localhost ~]# chkconfig crond on #开启crond服务
② 访问控制
当系统中有/etc/cron.allow文件时,只有写入此文件的用户可使用crontab命令,没有写入的用户不能使用crontab命令。一样若是有此文件,/etc/cron.deny文件会被忽略,/etc/cron.allow文件的优先级更高。
当系统中只有/etc/cron.deny文件时,则写入此文件的用户不能使用crontab命令,没有写入文件的用户可使用crontab命令
③ 用户的crontab设置
[root@localhost ~]# crontab [选项]
选项:
-e:编辑crontab定时任务
-l:查询crontab任务
-r:删除当前用户全部的crontab任务
举例:
[root@localhost ~]# crontab -e
#进入crontab编辑界面。
* * * * * 执行的任务
项目 |
含义 |
范围 |
第一个“*” |
一个小时当中的第几分钟 |
0-59 |
第二个“*” |
一天当中的第几小时 |
0-23 |
第三个“*” |
一个月当中的第几天 |
1-31 |
第四个“*” |
一年当中的第几月 |
1-12 |
第五个“*” |
一周当中的星期几 |
0-7(0和7都表明星期日) |
特殊符号 |
含义 |
* |
表明任什么时候间。好比第一个“*”就表明一小时中每分钟都执行一次的意思。 |
, |
表明不连续的时间。好比“0 8,12,16 * * * 命令”,就表明在天天的8点0分,12点0分,16点0分都执行一次命令 |
- |
表明连续的时间范围。好比“0 5 * * 1-6 命令”,表明在周一到周六的凌晨5点0分执行命令 |
*/n |
表明每隔多久执行一次。好比“*/10 * * * * 命令”,表明每隔10分钟就执行一遍命令 |
时间 |
含义 |
45 22 * * * 命令 |
在22点45分执行命令 |
0 17 * * 1 命令 |
每周1的17点0分执行命令 |
0 5 1,15 * * 命令 |
每个月1号和15号的凌晨5点0分执行命令 |
40 4 * * 1-5 命令 |
每周一到周五的凌晨4点40分执行命令 |
*/10 4 * * * 命令 |
天天的凌晨4点,每隔10分钟执行一次命令 |
0 0 1,15 * 1 命令 |
每个月1号和15号,每周1的0点0分都会执行。注意:星期几和几号最好不要同时出现,由于它们定义的都是天。很是容易让管理员混乱 |
④ 经常使用命令
[root@localhost ~]# crontab -l
#查看root用户的crontab任务
[root@localhost ~]# crontab -r
#删除root用户全部的定时任务
⑤ crontab注意事项
三、 系统的crontab设置
① 系统的定时任务
“crontab -e”是每一个用户执行的命令,也就是说不一样的用户身份能够执行本身的定时任务(不能执行超出本身权限的任务)。但是有些定时任务(如只有root用户权限才能执行的:关机、添加用户等)须要系统执行,这时咱们就须要编辑/etc/crontab这个配置文件。
② CentOS 5中的配置文件
[root@localhost ~]# vi /etc/crontab
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
HOME=/
# 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.mouthly
其中run-parts是一个命令或者程序,是遍历目标文件夹,执行第一层目录下的可执行权限的文件。
③ 执行系统的定时任务的方法
第一种是把须要定时执行的脚本复制到
/etc/cron.{hourly,daily,weekly,mouthly}目录中的任意一个
第二种是修改/etc/crontab配置文件
四、 anacron配置
① 定义
anacron是用来保证在系统关机的时候错过的定时任务,能够在系统开机以后再执行。
② anacron检测周期
cron.{daily,weekly,monthly}文件,用于记录上次执行cron的时间;
③ CentOS 6.x的区别
④ Anacron配置文件
[root@VM_68_42_centos ~]# cat /etc/anacrontab
# /etc/anacrontab: configuration file for anacron
# See anacron(8) and anacrontab(5) for details.
SHELL=/bin/sh
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
# the maximal random delay added to the base delay of the jobs
RANDOM_DELAY=45(最大随机延迟,单位:分钟)
# the jobs will be started during the following hours only
START_HOURS_RANGE=3-22
(anacron的执行时间范围是3:00-22:00)
#period in days delay in minutes job-identifier command
1 5 cron.daily nice run-parts /etc/cron.daily
7 25 cron.weekly nice run-parts /etc/cron.weekly
@monthly 45 cron.monthly nice run-parts /etc/cron.monthly
(天数 强制延迟(分) 工做名称 实际执行的命令)
⑤ cron.daily工做来讲明执行过程
和当前时间比较,若是两个时间的差值超过1天,就执行cron.daily工做;
/etc/cron.daily目录中的全部可执行文件