linux命令(6)crontab的用法和解析

一,写入格式:

* * * * *   command

minute   hour   day   month   week   command

其中:

  • minute: 表示分钟,可以是从0到59之间的任何整数。
  • hour:表示小时,可以是从0到23之间的任何整数。
  • day:表示日期,可以是从1到31之间的任何整数。
  • month:表示月份,可以是从1到12之间的任何整数。
  • week:表示星期几,可以是从0到7之间的任何整数,这里的0或7代表星期日。
  • command:要执行的命令,可以是系统命令,也可以是自己编写的脚本文件。
  • crontab -e : 执行文字编辑器来设定时程表,内定的文字编辑器是 VI,如果你想用别的文字编辑器,则请先设定 VISUAL 环境变数来指定使用那个文字编辑器(比如说 setenv VISUAL joe)
  • crontab -r : 删除目前的时程表
  • crontab -l : 列出目前的时程表
  • crontab file [-u user]-用指定的文件替代目前的crontab。

二,大部分在 crontab 计划任务中都会年到未尾带 >/dev/null 2>&1,是什么意思呢?

  • > 是重定向
  • /dev/null 代表空设备文件
  • 1 表示stdout标准输出,系统默认值是1,所以 ">/dev/null" 等同于 "1>/dev/null"
  • 2 表示stderr标准错误
  • & 表示等同于的意思,2>&1,表示2的输出重定向等同于1
  • 整句的意思就是标准输出重定向到空设备文件,也就是不输出任何信息到终端,标准错误输出重定向等同于标准输出,因为之前标准输出已经重定向到了空设备文件,所以标准错误输出也重定向到空设备文件

command > file 2>file 与 command > file 2>&1 有什么区别呢?

  • command > file 2>file 的意思是将命令所产生的标准输出信息,和错误的输出信息送到file 中.command > file 2>file 这样的写法,stdout和stderr都直接送到file中, file会被打开两次,这样stdout和stderr会互相覆盖,这样写相当使用了FD1和FD2两个同时去抢占file 的管道.
  • 而command >file 2>&1 这条命令就将stdout直接送向file, stderr 继承了FD1管道后,再被送往file,此时,file 只被打开了一次,也只使用了一个管道FD1,它包括了stdout和stderr的内容.
  • 从IO效率上,前一条命令的效率要比后面一条的命令效率要低,所以在编写shell脚本的时候,较多的时候我们会用command > file 2>&1 这样的写法.

样例说明:

10 03 * * * python /home/sysuser/shell/hello.py > /home/sysuser/shell/hello.log 2>&1  上面的例子:每天的凌晨三点十分执行hello.py,然后把日志写入到hello.log中

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   上面的例子:表示每周六、周日的1 : 10重启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号与每周一到周三的11点重启apache
时间: 2024-11-05 11:56:36

linux命令(6)crontab的用法和解析的相关文章

Linux命令行抓包及包解析工具tshark(wireshark)使用实例解析

在Linux下,当我们需要抓取网络数据包分析时,通常是使用tcpdump抓取网络raw数据包存到一个文件,然后下载到本地使用wireshark界面网络分析工具进行网络包分析. 最近才发现,原来wireshark也提供有Linux命令行工具-tshark.tshark不仅有抓包的功能,还带了解析各种协议的能力.下面我们以两个实例来介绍tshark工具.1.安装方法 CentOS: yum install -y wireshark    Ubuntu: apt-get install -y tsha

linux命令之crontab详解

crontab命令: crontab -l : 显示定时任务列表 crontab -e: 编辑定时任务 crontab -r : 删除所有定时任务 基本格式 :  * * * * * command  分 时 日 月 周 命令  第1列表示分钟1-59 每分钟用*或者 */1表示  第2列表示小时1-23(0表示0点)  第3列表示日期1-31  第4列表示月份1-12  第5列标识号星期0-6(0表示星期天)  第6列要运行的命令  crontab文件的一些例子:  30 21 * * * /

linux命令:crontab命令(转)

一.crond简介 crond是linux下用来周期性的执行某种任务或等待处理某些事件的一个守护进程,与windows下的计划任务类似,当安装完成操作系统后,默认会安装此服务工具,并且会自动启动crond进程,crond进程每分钟会定期检查是否有要执行的任务,如果有要执行的任务,则自动执行该任务. Linux下的任务调度分为两类,系统任务调度和用户任务调度. 系统任务调度:系统周期性所要执行的工作,比如写缓存数据到硬盘.日志清理等.在/etc目录下有一个crontab文件,这个就是系统任务调度的

linux命令之crontab定时执行任务

一.crond简介 crond 是linux下用来周期性的执行某种任务或等待处理某些事件的一个守护进程,与windows下的计划任务类似,当安装完成操作系统后,默认会安装此服务 工具,并且会自动启动crond进程,crond进程每分钟会定期检查是否有要执行的任务,如果有要执行的任务,则自动执行该任务. Linux下的任务调度分为两类,系统任务调度和用户任务调度. 系统任务调度:系统周期性所要执行的工作,比如写缓存数据到硬盘.日志清理等.在/etc目录下有一个crontab文件,这个就是系统任务调

Linux命令(003) -- crontab

一.准备知识 Linux下的任务调度分为两类:系统任务调度和用户任务调度. (1).系统任务调度 系统任务调度是系统周期性所要执行的工作,比如写缓存数据到硬盘.日志清理等.在/etc目录下有一个crontab文件,它是系统任务调度的配置文件. # vi /etc/crontab SHELL=/bin/bash PATH=/sbin:/bin:/usr/sbin:/usr/bin MAILTO=root HOME=/ # For details see man 4 crontabs # Examp

linux 命令之 crontab

cron 是Linux的内置服务.有以下命令启动.查看.关闭这个服务. service cron start //启动服务 service cron stop //关闭服务 service cron restart //重启服务 service cron reload //重新载入配置 service cron status //查看服务状态 cron全局配置文件在/etc 目录下: cron.d/ 系统自动定期需要做的任务 cron.daily/ 每天执行一次的任务 cron.hourly/

【Linux命令】crontab定时任务

crontab定时任务 一.简介 通过crontab命令可以在固定的间隔执行系统指令或shell脚本 二.crontab配置文件: Linux下的任务调度分为两类:系统任务调度和用户任务调度. Linux系统任务是由 cron (crond) 这个系统服务来控制的,这个系统服务是默认启动的.用户自己设置的计划任务则使用crontab 命令. 查看crontab配置文件: [[email protected] ~]# cat /etc/crontab SHELL=/bin/bash PATH=/s

工作中常用的Linux命令:crontab命令

crontab是一个用来设置.删除或显示供守护进程cron执行的定时任务的命令.每一个用户都可以拥有属于自己的定时任务,定时任务文件默认以用户名命名,并放在/var/spool/cron目录,该目录普通用户无访问权限. 可以通过cron.allow 和 cron.deny文件管理用户使用crontab的权限.如果cron.allow存在,用户必须列在其中才会被允许使用cron:如果cron.deny存在,被列在其中的用户禁止使用cron:如果两者都不存在,只有超级用户才能使用cron.在Cent

Linux命令之crontab

格式: crontab [-u user] {-l | -r | -e} Crontab文件的格式为"M H D m d cmd". 其中,M代表分钟(0~59),H代表小时(0~23),D代表天(1~31),m代表月(1~12),d代表一星期内的天(0~6,0为星期 天).Cmd表示要运行的程序,它被送入sh执行,这个shell只有USER.HOME.SHELL三个环境变量. 参数: -e:执行文字编辑器来设定时程表,内空的文字编辑器是vi-r:删除目前的时程表-l列出目前的时程表.