登录    关于
马育民老师的博客

马育民的博客

QQ:65242847

centos7(linux)定时计划任务-crontab、crond

说明

crond是linux下执行计划任务的程序,与windows下的计划任务类似

  • 可以定时执行某个程序
  • 也可以周期性执行某个程序

安装

yum install crontabs

crond

crond是一个守护进程

相关命令

systemctl start   crond         #启动服务
systemctl stop    crond         #停止服务
systemctl restart crond         #重启服务
systemctl reload  crond         #重载配置文件
systemctl status  crond         #查看状态

或者

service crond start   #启动服务
service crond stop    #关闭服务
service crond restart #重启服务
service crond reload  #重新载入配置
service crond status  #查看crontab服务状态

设置开机启动

systemctl enable crond.service

查看是否开机启动

列出所有已经安装的服务及状态

systemctl list-unit-files

crontab

crontab 管理定时任务,在固定的间隔时间执行 系统指令shell 脚本

时间间隔的单位可以是:分钟、小时、日、月、周及以上的任意组合

常用命令

crontab -e        编辑crontab文件(编辑定时任务)

其他:

crontab -u         设定某个用户的cron服务
crontab -l        显示crontab文件(显示已设置的定时任务)
crontab -r        删除crontab文件(删除定时任务)
crontab -i        删除crontab文件提醒用户(删除定时任务)

定时任务格式

.---------------- 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

解释:

用户的定时任务分 6段,如下:

  • 第1列表示分钟,1~59
  • 第2列表示小时,1~23(0表示0点)
  • 第3列表示日期,1~31
  • 第4列表示月份,1~12
  • 第5列标识号星期,0~6(0表示星期天)
  • 第6列要运行的命令

关于定时时间的详细用法,点击 链接

例子

每分钟执行一次 sh 脚本

创建脚本

创建 .sh 文件,该文件内是要执行的命令

vim /program/timer.sh

内如如下:

echo "hello world" >> /test_timer.log
date >> /test_timer.log

执行该脚本时,会在 /test_timer.log 文件中增加 hello world当前时间(如果没有该文件会自动创建)

增加可执行权限:

chmod 777 /program/timer.sh

测试:

/program/timer.sh

查看是否会生成 /test_timer.log 文件,以及内容是否正确

设置定时

执行下面命令:

crontab -e

增加下面内容:

* * * * * /program/timer.sh

表示每分钟都会执行 /program/timer.sh 脚本

然后 ESC-> :->wq 保存退出,提示如下:

crontab: installing new crontab

表示添加一个新的定时任务

注意: 必须要 保存退出

测试

执行下面命令:

tail -f /test_timer.log

每隔一分钟 就会打印 hello world当前时间,如下:

hello world
2021年 12月 26日 星期日 18:30:01 CST
hello world
2021年 12月 26日 星期日 18:31:01 CST
hello world
2021年 12月 26日 星期日 18:32:01 CST
hello world
2021年 12月 26日 星期日 18:33:01 CST

原文出处:https://malaoshi.top/show_1IX2Ti2uaI38.html