技术员联盟提供win764位系统下载,win10,win7,xp,装机纯净版,64位旗舰版,绿色软件,免费软件下载基地!

当前位置:主页 > 教程 > 服务器类 >

Linux系统计划任务crontab命令简单介绍

来源:技术员联盟┆发布时间:2018-07-04 00:23┆点击:

  Linux计划任务cron是一个定时模式,例如我们可以在系统使用最少时对系统进行备份,但是管理员不可能在半夜来到公司工作,那么就可以使用Linux计划任务cron,现在来介绍一下具体使用方法。

  目前流行的Linux系统在安装好后cron都是安装好的并且是随机启动的

  启动cron服务/sbin/service crond start

  停止服务/sbin/service crond stop

  重启服务/sbin/service crond restart

  重新加载/sbin/service crond reload

  服务的启动停止介绍完了下面来说如何添加计划任务

  使用crontab命令

  crontab -u设定某个用户的cron服务

  crontab -l列出当前用户的cron服务的详细内容

  crontab -r删除当前用户的cron服务

  crontab -e编辑当前用户的cron服务

  例如当前登陆的用户是root

  运行crontab-e就给root用户创建一个计划任务

  运行crontab -e进入vi编辑计划任务内容

  第1位分钟表示(0-59)第2位表示小时(0-23)

  第3位表示天(1-31)第4位表示月份(1-12)

  第5位置表示星期(0-6)0表示星期日

  后面是你要执行的任务

  每一位之间使用空格分开

  上面时间除了使用数字还有几个特殊符号

  “*”表示所有数值如第一位使用*表示每分钟

  “/”表示每如果第一位使用*/5表示每5分钟

  “-”表示数值范围“,”来隔开离散的数值如第2位是1-6,8表示1点到6点,还有8点

  具体实例如下

  每天1点向某个文件写入一段话

  0 1 * * * echo "helloworld">>/tmp/test.txt

  每5分钟向执行一个程序或者命令

  */5 * * * * 执行的命令

  如何知道您的计划任务是否运行了,1你可以去检查您要执行的命令是否在你指定的时间去运行了,2有的命令运行结果不好查看你可以去查cron的日志/var/log/cron

  在此文件中记录了计划任务执行的情况

  上述方法添加完成计划任务后会在/var/spool/cron目录中生成一个用户名字的文件,文件里面就是你的计划任务,cron服务每分钟读取一次/var/spool/cron中的文件

  还有一种方法可以添加计划任务自己编辑/etc/crontab(cron服务每分钟也读取一次/etc/crontab文件)

  在文件的末尾添加计划任务格式和上述方法完全一样

  /etc/crontab里面还有其他的东西,下面来说下

  MAILTO=root//如果出现错误,或者有数据输出,数据作为邮件发给这个帐号

  01 * * * * root run-parts /etc/cron.hourly 每个小时去执行一遍/etc/cron.hourly内的脚本

  0 24 * * * rootrun-parts /etc/cron.daily 每天去执行一遍/etc/cron.daily内的脚本

  2 24 * * 0 root run-parts /etc/cron.weekly 每星期去执行一遍/etc/cron.weekly内的脚本

  4 24 1 * * root run-parts /etc/cron.monthly 每个月去执行一遍/etc/cron.monthly内的脚本

  注意上面的run-parts参数如果去掉run-parts后面就要跟要执行的某个脚本名,如果加上run-parts参数后面就要跟目录名了

  也可以限制cron的使用

  如果在/etc/目录中存在cron.allowcron.deny文件

  只有cron.allow文件中列出的用户才能使用cron服务,同时忽略cron.deny文件

  如果cron.allow文件不存在,cron.deny文件中列出的用户将被禁止使用cron服务。

  这样我们就完成了Linux计划任务cron的学习。

  补充一些例子:

  crontab文件的的些例子:

  30 21 * * * /usr/local/etc/rc.d/lighttpd restart

  上面的例子表示每晚的21:30重启apache

  45 4 1,10,22 * * /usr/local/etc/rc.d/lighttpd restart

  上面的例子表示每月1、10、22日的4 : 45重启apache

  10 1 * * 6,0 /usr/local/etc/rc.d/lighttpd restart

  上面的例子表示每周 6、周日的1 : 10重启apache

  0,30 18-23 * * * /usr/local/etc/rc.d/lighttpd restart

  上面的例子表示在每天18 : 00至23 : 00的间每隔30分钟重启apache

  0 23 * * 6 /usr/local/etc/rc.d/lighttpd restart

  上面的例表示每星期 6的11 : 00 pm重启apache

  * */1 * * * /usr/local/etc/rc.d/lighttpd restart

  每的小时重启apache

  * 23-7/1 * * * /usr/local/etc/rc.d/lighttpd restart

  晚上11点到早上7点的间的每隔的小时重启apache

  0 11 4 * mon-wed /usr/local/etc/rc.d/lighttpd restart

  每月的4号和每周的到周 3的11点重启apache

  0 4 1 jan * /usr/local/etc/rc.d/lighttpd restart

  的月的号的4点重启apache