linux如何执行定时任务

文章介绍了在Unix和Linux系统中如何使用crontab设置定时任务,包括创建shell脚本、安装crontab服务在Ubuntu和CentOS的不同方法、编辑cronjob的两种方式以及cron表达式的详细说明。此外,还展示了如何通过crontab-e编辑用户自定义的定时任务和直接编辑/etc/crontab文件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

阅读目录

方法一:使用crontab -e编辑定时任务
方法二:直接编辑/etc/crontab文件
转自: https://www.cnblogs.com/warm-stranger/p/11861744.html

声明:本文章是在以上地址博文基础上进行整理学习,如有侵权,请联系博主删除,感谢知识共享,一起进步,加油鸭

=========================================
crontab命令常见于Unix和Linux的操作系统之中,用于设置周期性被执行的指令。该命令从标准输入设备读取指令,并将其存放于“crontab”文件中,以供之后读取和执行。通常,crontab储存的指令被守护进程激活。crond 常常在后台运行,定时检查是否有预定的作业需要执行。

参考博文1:https://blog.csdn.net/longgeaisisi/article/details/90477975
参考博文2:https://www.cnblogs.com/bcphp/p/7084967.html
参考博文3:https://baijiahao.baidu.com/s?id=1724174352244358565&wfr=spider&for=pc
参考博文4:https://bbs.csdn.net/topics/390494732

一、如何创建一个脚本
先写一个简单的shell命令:

  1. 使用pwd命令查看当前路径为/root目录:
    root@iZuf66a8zevmp2f4xcquIrZ: 、 # pwd /root root@iZuf66a8zevmp2f4xcquIrZ: 、 #

  2. 使用vi编辑器 可以直接输入命令$: vim hello.sh 编写第一个shell文件 hello.sh, 请以.sh结尾
    以“#”开头的为注释行,不会被执行。
    [ #!/bin/bash ] 作为shell脚本文件的开头,
    [ echo “你好, www.webfunny.cn !” ] 表示打印这句话。
    [ node -v ] 表示查看node版本号
    ^ 一 epou “ i U)•KUUnJClöM•MMM ' 殛 “ 01430 q-SD(R/LIYR/i#

  3. 执行命令 : c h m o d 755 h e l l o . s h ,通过 c h m o d 命令赋予该脚本的执行权限,否则没有执行权限。执行命令 :chmod 755 hello.sh,通过chmod命令赋予该脚本的执行权限,否则没有执行权限。 执行命令 chmod755hello.sh,通过chmod命令赋予该脚本的执行权限,否则没有执行权限。执行命令:/root/hello.sh 表示在全路径下执行该shell脚本。
    root@iZuf66a8zevmp2f4xcqu1rZ: 、 # /root/hello.sh 你 好 , www.webfunny.cn ! v6 · 4 ·

到此,第一个简单的脚本就完成了。
下边我们就开始创建定时任务了。

二、安装crontab
  1)Ubantu系统下安装crontab(看清操作系统)
   正常情况下需要先执行$:apt-get upgrade 进行升级

     安装:apt-get install cron
     启动:service cron start
     重启:service cron restart
     停止:service cron stop
     检查状态:service cron status
     查询cron可用的命令:service cron
     检查Cronta工具是否安装:crontab -l

2)CentOS系统下安装cron(看清操作系统)
1)vixie-cron 软件包是 cron 的主程序;
   2)crontabs 软件包是用来安装、卸装、或列举用来驱动 cron 守护进程的表格的程序。

安装:yum install vixie-cron
 安装:yum install crontabs

基本命令:

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

三、开启crontab服务
  参考步骤二
四、设置需要执行的脚本
配置定时任务有两种方式,一种是使用crontab -e编辑定时任务,另一种是直接编辑/etc/crontab文件:

回到顶部
方法一:使用crontab -e编辑定时任务
这样编辑属于用户自定义的,会被写到/var/spool/cron目录下,生成一个和用户名一致的文件,问价内容就是我们编辑的定时脚本。如下:

在这里插入图片描述

回到顶部
方法二:直接编辑/etc/crontab文件
直接编辑 vim /etc/crontab ,默认的文件形式如下:

在这里插入图片描述

前四行是有关设置cron任务运行的环境变量。SHELL变量的值指定系统使用的SHELL环境(该样例为bash shell),PATH变量定义了执行命令的路径。

文件/etc/crontab中每行任务的描述格式如下,其实就是cron表达式:
minute hour day month dayOfWeek command

minute - 从0到59的整数
hour - 从0到23的整数
day - 从1到31的整数 (必须是指定月份的有效日期)
month - 从1到12的整数 (或如Jan或Feb简写的月份)
dayofweek - 从0到7的整数,0或7用来描述周日 (或用Sun或Mon简写来表示)
command - 需要执行的命令(可用as ls /proc >> /tmp/proc或 执行自定义脚本的命令)

root表示以root用户身份来运行
run-parts表示后面跟着的是一个文件夹,要执行的是该文件夹下的所有脚本
对于以上各语句,星号()表示所有可用的值。例如在指代month时表示每月执行(需要符合其他限制条件)该命令。
整数间的连字号(-)表示整数列,例如1-4意思是整数1,2,3,4
指定数值由逗号分开。如:3,4,6,8表示这四个指定整数。
符号“/”指定步进设置。“/”表示步进值。如0-59/2定义每两分钟执行一次。步进值也可用星号表示。如*/3用来运行每三个月份运行指定任务。

最终配置如下,每分钟执行一次:

在这里插入图片描述

定时打印结果如下:

在这里插入图片描述

总结:
(系统级)做系统级配置我们会直接配置/etc/crontab
(用户级)一般还是建议大家使用crontab -e,这样系统也会帮着检查我们配置的脚本语法。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Mym_zuoyan_Tmac

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值