首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >《Linux 定时任务全解析:从时间查看、修改到任务设置与管理》

《Linux 定时任务全解析:从时间查看、修改到任务设置与管理》

作者头像
XPcode7
发布2025-10-23 14:56:23
发布2025-10-23 14:56:23
1370
举报

《Linux 定时任务全解析:从时间查看、修改到任务设置与管理》

在日常的系统管理与运维工作中,定时任务的设置与管理是一项至关重要的技能。无论是定期执行数据备份、清理日志文件,还是按照特定时间调度系统程序,都离不开定时任务的支持。就如同Windows系统中的计划任务一样,Linux系统中的定时任务为我们提供了强大而灵活的自动化操作能力。

你可以根据实际情况对导读内容进行调整和修改。如果你还有其他想法或需求,欢迎继续向我提问。

2.18 定时任务

定期执行任务(执行命令),和windows的计划任务是一样的。

2.18.1 查看时间
代码语言:javascript
复制
#时间命令
	date

#查看时间
    [root@localhost ~]# date
    2021年 07月 23日 星期五 14:38:19 CST
[root@localhost ~]# date +%F
	2021-07-23
[root@localhost ~]# date +%T
	14:35:47
[root@localhost tmp]# date +%F\ %T
	2022-01-11 10:07:50	
2.18.2 修改时间和日期
代码语言:javascript
复制
#修改时间和日期
    [root@localhost ~]# date -s '20200723 14:40:00'
    2020年 07月 23日 星期四 14:40:00 CST
# 修改时间
	[root@localhost ~]# date -s '14:40:00'
#同步时间,如果时间和当前时间不一致,可以做一下时间同步,来让时间准确起来
	systemctl restart chronyd 
	# 一次执行完是有延迟的,等待一会才看到准确时间,前提是我们有网
2.18.3 定时任务的格式
代码语言:javascript
复制
#定时任务的格式
    * * * * *   cmd
    分 时 日 月 周   命令
    分:0-59
    时:0-23
    日:0-31
    月:1-12
    周:1-7
#每5分钟执行一次
	*/5 * * * *
    
#每1小时的01分执行一次
	01 */1 * * *
    
#每半个小时执行一次,下面的意思是每小时的00分和30分各执行一次
	00,30 */1 * * *
    
#每天晚上8:00执行一次
	00 20 * * *
    
#每个月1号晚上8:00执行
	00 20 1 * *
    
#每年1月1号晚上8:00执行
	00 20 1 1 *
    
#每周1、周三、周五晚上8:00执行一次
	00 20 * * 1,3,5
    
# 几个符号的意思:
    # * 每分钟
    # */5 每5分钟
    # 05 第5分钟
    # 每秒钟执行的任务,需要单独写脚本,繁琐一些。
2.18.4 查看,编辑定时任务
代码语言:javascript
复制
#查看定时任务,遇到特殊符号%,需要添加转义符号\;
    [root@localhost ~]# crontab -l
    * * * * *  echo `date +\%T` >>/tmp/time.txt
    
#编辑定时任务
    [root@localhost ~]# crontab -e
     * * * * * date >> /tmp/time.txt  # 每分钟执行一次
        
    [root@localhost ~]# crontab -l
    * * * * * date >> /tmp/time.txt
## 我们可以通过cat来查看任务是否执行了,但是比较麻烦,每次手动输入cat,所以我们可以用如下指令
	tail -f /tmp/time.txt  #监测文件尾部内容的变化.
    
[root@localhost ~]# tail -f /tmp/time.txt
    2023年 03月 24日 星期五 10:58:01 CST
    2023年 03月 24日 星期五 10:59:01 CST
    2023年 03月 24日 星期五 11:00:01 CST
    2023年 03月 24日 星期五 11:01:01 CST
            
# 是这个进程再帮我们执行定时任务:
    [root@localhost ~]# ps -ef|grep cron
    root        581      1  0 18:05 ?        00:00:00 /usr/sbin/crond -n
                
# 我们还可以自行重启这个进程
    root@localhost ~]# systemctl restart crond
    [root@localhost ~]# ps -ef|grep cron # 可以看到进程启动时间变化了
    root       2611      1 25 21:27 ?        00:00:00 /usr/sbin/crond -n
                
#改为每小时的03分执行
    [root@localhost ~]# crontab -e
    [root@localhost ~]# crontab -l
    03 * * * * date >> /tmp/time.txt
    #修改一下系统时间
    [root@localhost ~]# date -s '12:02:50'
    2023年 03月 24日 星期五 12:02:50 CST
    [root@localhost ~]# tail -f /tmp/time.txt
    ...
    2023年 03月 24日 星期五 11:13:01 CST
    2023年 03月 24日 星期五 11:14:01 CST
    2023年 03月 24日 星期五 12:03:03 CST  # 12点03分执行的
    # crontab -e里面每一行都可以写一个定时任务,也就是可以写多个定时任务。
    
# 比如,再加一个热内:每天晚上9:20自动关机
# 20 21 * * * shutdown -h now

[root@localhost ~]# date -s '21:19:50'
	2023年 03月 24日 星期五 21:19:50 CST
[root@localhost ~]# crontab -l
    03 * * * * date >> /tmp/time.txt
    20 21 * * * shutdown -h now
[root@localhost ~]# date
    2023年 03月 24日 星期五 21:21:03 CST
    您在 /var/spool/mail/root 中有邮件
# 错误的原因可能是需要我们写shutdown的绝对路径
[root@localhost ~]# which shutdown # which也是查找,可以查找指令的绝对路径
    /usr/sbin/shutdown
# 这里就是想提示大家,如果指令不行,就写指令的绝对路径
# 我们发现,没有关闭成功,并且看到了一个提示,有个邮件?我们去看一下

### 如果定时任务的格式,或者内容有问题,系统都会发邮件提示:
image-20230710135913414
image-20230710135913414
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2025-03-09,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 《Linux 定时任务全解析:从时间查看、修改到任务设置与管理》
    • 2.18 定时任务
      • 2.18.1 查看时间
      • 2.18.2 修改时间和日期
      • 2.18.3 定时任务的格式
      • 2.18.4 查看,编辑定时任务
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档