Linux下crontab命令的用法

来源:互联网 发布:什么是淘宝首页流量 编辑:程序博客网 时间:2024/04/29 18:32
任务调度的crond常驻命令
crond 是linux用来定期执行程序的命令。当安装完成操作系统之后,默认便会启动此任务调度命令。crond命令每分锺会定期检查是否有要执行的工作,如果有要执行的工作便会自动执行该工作。而linux任务调度的工作主要分为以下两类:
1、系统执行的工作:系统周期性所要执行的工作,如备份系统数据、清理缓存
2、个人执行的工作:某个用户定期要做的工作,例如每隔10分钟检查邮件服务器是否有新信,这些工作可由每个用户自行设置 

Crontab是UNIX系统下的定时任务触发器,其使用者的权限记载在下列两个文件中: 

文件 

含义 

/etc/cron.deny 

该文件中所列的用户不允许使用Crontab命令 

/etc/cron.allow 

该文件中所列的用户允许使用Crontab命令 

/var/spool/cron/ 

是所有用户的crontab文件 

/var/spool/cron/crontabs
/var/spool/cron/crontabs
Crontab命令的格式为:crontab –l|-r|-e|-i [username],其参数含义如表一: 

参数名称 

含义 

示例 

-l 

显示用户的Crontab文件的内容 

crontabl –l 

-i 

删除用户的Crontab文件前给提示 

crontabl -ri 

-r 

从Crontab目录中删除用户的Crontab文件 

crontabl -r 

-e 

编辑用户的Crontab文件 

crontabl -e 

用户所建立的Crontab文件存于/var/spool/cron中,其文件名与用户名一致。
它的格式共分为六段,前五段为时间设定段,第六段为所要执行的命令段,
格式如下:* * * * * 
其时间段的含义如表二: 

段 

含义 

取值范围 

第一段 

代表分钟 

0—59 

第二段 

代表小时 

0—23 

第三段 

代表日期 

1—31 

第四段 

代表月份 

1—12 

第五段 

代表星期几,0代表星期日 

0—6 


名称 : crontab 
使用权限 : 所有使用者 
使用方式 : 
crontab [ -u user ] file 
crontab [ -u user ] { -l | -r | -e } 
说明 : 
crontab 是用来让使用者在固定时间或固定间隔执行程序之用,换句话说,也就是类似使用者的时程表。-u user 是指设定指定 user 的时程表,这个前提是你必须要有其权限(比如说是 root)才能够指定他人的时程表。如果不使用 -u user 的话,就是表示设定自己的时程表。 
餐数 : 
-e : 执行文字编辑器来设定时程表,内定的文字编辑器是 VI,如果你想用别的文字编辑器,则请先设定 VISUAL 环境变数来指定使用那个文字编辑器(比如说 setenv VISUAL joe) 
-r : 删除目前的时程表 
-l : 列出目前的时程表 
时程表的格式如下 : 
f1 f2 f3 f4 f5 program  
  
其中 f1 是表示分钟,f2 表示小时,f3 表示一个月份中的第几日,f4 表示月份,f5 表示一个星期中的第几天。program 表示要执行的程序。 
当 f1 为 * 时表示每分钟都要执行 program,f2 为 * 时表示每小时都要执行程序,其馀类推 
当 f1 为 a-b 时表示从第 a 分钟到第 b 分钟这段时间内要执行,f2 为 a-b 时表示从第 a 到第 b 小时都要执行,其馀类推 
当 f1 为 */n 时表示每 n 分钟个时间间隔执行一次,f2 为 */n 表示每 n 小时个时间间隔执行一次,其馀类推 
当 f1 为 a, b, c,... 时表示第 a, b, c,... 分钟要执行,f2 为 a, b, c,... 时表示第 a, b, c...个小时要执行,其馀类推 
使用者也可以将所有的设定先存放在档案 file 中,用 crontab file 的方式来设定时程表。 
例子 : 
每月每天每小时的第 0 分钟执行一次 /bin/ls : 
0 7 * * * /bin/ls  
  
在 12 月内, 每天的早上 6 点到 12 点中,每隔 20 分钟执行一次 /usr/bin/backup : 
0 6-12/3 * 12 * /usr/bin/backup  
  
周一到周五每天下午 5:00 寄一封信给 alex@domain.name : 
0 17 * * 1-5 mail -s "hi" alex@domain.name  /dev/null 2>&1 即可 

例:如果用户的Crontab文件的内容是:29 19 * * * echo its dinner time,则系统每天的19:29显示‘its dinner time’
示例(创建一个cron全过程,每分钟都会在test.txt里输入当前时间): 

1.     以普通用户登录linux系统(我用的是CentOS4.1) 

2.     $crontab –e
说明:系统默认的编辑器是VIM,如果不是请加上以下shell:
    $EDITOR=vi
    $export EDITOR 

3.     输入”*/1 * * * * date >> $HOME/test.txt”,save and exit VIM 

4.     $su root 

5.     $cd /etc/init.d 

6.     ./crond restart 

下面看看看几个具体的例子:
● 0 */2 * * * /sbin/service httpd restart  意思是每两个小时重启一次apache 

● 50 7 * * * /sbin/service sshd start  意思是每天7:50开启ssh服务 

● 50 22 * * * /sbin/service sshd stop  意思是每天22:50关闭ssh服务 

● 0 0 1,15 * * fsck /home  每月1号和15号检查/home 磁盘 

● 1 * * * * /home/bruce/backup  每小时的第一分执行 /home/bruce/backup这个文件 

● 00 03 * * 1-5 find /home "*.xxx" -mtime +4 -exec rm {} \;  每周一至周五3点钟,在目录/home中,查找文件名为*.xxx的文件,并删除4天前的文件。
● 30 6 */10 * * ls  意思是每月的1、11、21、31日是的6:30执行一次ls命令
0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 荣耀10有点卡怎么办 8g内存吃鸡会崩怎么办 玩看门狗很卡怎么办 拼多多人数不够怎么办 玩cf想吐怎么办 玩手机头晕恶心怎么办 玩手机头疼恶心怎么办 看手机想吐怎么办 英雄联盟取名后怎么办 王者荣耀改名重复怎么办 刺激战场改名重复怎么办 省钱快报忘记密码怎么办 手机直播网速卡怎么办 触手tv直播黑屏怎么办 酷狗id密码忘记怎么办 打游戏网络不稳定怎么办 电脑打字法没了怎么办 家庭版密钥专业版系统怎么办 win7应用程序不能启动怎么办 win7用户密码忘记了怎么办 win7用户密码忘了怎么办 windows开不了机怎么办 网卡被卸载了怎么办 win7注销黑屏了怎么办 w7密码忘了怎么办 笔记本电脑键盘进水了怎么办 笔记本键盘进水了怎么办 笔记本进水键盘失灵怎么办 win7进不了系统怎么办 电脑显示屏两边黑屏怎么办 win8关机关不了怎么办 win10没激活黑屏怎么办 忘了产品密钥怎么办 小马易贷逾期怎么办 10系统未激活怎么办 win10账户被停用怎么办 win7激活码无效怎么办 windows显示不是正版怎么办 优酷上传错误怎么办 盗版系统会黑屏怎么办 安装了盗版系统怎么办