Crontab 命令

1. 域

  • 6个域,分别代表特定时间类型,如下表格
分钟 小时 程序
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
  • 1-5域中除了可以写入数字,还可以写入特殊符号,包含: * / - , 等,分别代表含义如下
  • * 代表所有的取值范围内的数字
  • /代表每的意思
  • -代表从某个数字到某个数字,
  • , 分开几个离散的数字。

2. 命令

  • crontab -l 在标准输出上显示当前的crontab。

  • crontab -r删除当前的crontab文件。

  • crontab -e 编辑当前的crontab文件,编辑后将自动安装

3. 服务

Linux 版本 6.X 7.X
启动服务 service crond start systemctl start crond
关闭服务 service crond stop systemctl stop crond
重启服务 service crond restart systemctl restart crond
重新载入配置 service crond reload systemctl reload crond
查看服务状态 service crond status systemctl status crond

Crontab 命令_第1张图片

4. 注意事项

  • 切记在crontab中写入命令的**绝对路径**,例如rm -f test.txt就无法执行,写为/bin/rm -f /home/ec2-user/test.txt即可。

5. 例子

# 注意单纯echo,从屏幕上看不到任何输出,因为cron把任何输出都email到root的信箱了。

# 每天早上6点,输出Good morning到/tmp/test.txt文件中。
0 6 * * * echo "Good morning" >> /tmp/test.txt

# 每两个小时,输出Good morning到/tmp/test.txt文件中。
0 */2 * * * echo "Good morning" >> /tmp/test.txt

# 晚上11点到早上8点之间每两个小时和早上八点,输出Good morning到/tmp/test.txt文件中。
0 23-7/2,8 * * * echo "Good morning" >> /tmp/test.txt

# 每个月的4号和每个礼拜的礼拜一到礼拜三的早上11点,输出Good morning到/tmp/test.txt文件中。
0 11 4 * 1-3 echo "Good morning" >> /tmp/test.txt

# 每天的下午4点、5点、6点的5 min、15 min、25 min、35 min、45 min、55 min时,输出Good morning到/tmp/test.txt文件中。
5,15,25,35,45,55 16,17,18 * * * echo "Good morning" >> /tmp/test.txt

# 1月1日早上4点,,输出Good morning到/tmp/test.txt文件中,如果出现错误,或者有数据输出,数据作为邮件发给root
0 4 1 1 * echo "Good morning" >> /tmp/test.txt SHELL=/bin/bash PATH=/sbin:/bin:/usr/sbin:/usr/bin MAILTO=root

# 如果去掉"run-parts"这个参数,后面要运行的脚本名,而不是文件夹名。 
# 每小时以root用户执行/etc/cron.hourly内的脚本(1个或N个脚本程序)
01 * * * * root run-parts /etc/cron.hourly

# 每天早上4点02分以root用户执行/etc/cron.daily内的脚本(1个或N个脚本程序)
02 4 * * * root run-parts /etc/cron.daily 

# 每周日早上4点02分以root用户执行/etc/cron.weekly内的脚本(1个或N个脚本程序)
02 4 * * 0 root run-parts /etc/cron.weekly 

# 每月1号早上4点02分以root用户去执行/etc/cron.monthly内的脚本(1个或N个脚本程序)
02 4 1 * * root run-parts /etc/cron.monthly 

# 每周一,三,五的下午3:00系统进入维护状态,重新启动系统。
00 15 * * 1,3,5 shutdown -r +5

# 每天早晨3点20分执行用户目录下如下所示的两个指令(每个指令以;分隔): 
20 3 * * * (/bin/rm -f /tmp/test.txt;/bin/rm -rf /home/ec2-user/1.txt)  

# 每年的一月和四月,4号到9号的3点12分和3点55分执行/bin/rm -f mm.txt 这个文件(mm.txt文件位于用户自己的目录位置)。 
12,55 3 4-9 1,4 * /bin/rm -f mm.txt 

你可能感兴趣的:(Linux)