使用cron 或者systemd设置Timer 定时器

本文介绍了在Linux系统中设置定时任务的两种常用方法:使用cron进行用户和系统级别的任务调度,以及利用systemd的.service和.timer文件实现更精细的定时控制。
摘要由CSDN通过智能技术生成

Linux定时任务是一种自动化工具,允许用户和系统管理员在预定的时间自动执行脚本、命令或程序。这些任务通常用于日常的系统维护、数据备份、监控和报告等。本文主要介绍一下Linux下设置定时任务的常用二种方法。

1.使用cron设置定时任务

cron是Linux中最常用的定时任务调度器。它允许用户在指定的日期和时间运行脚本和命令。使用cron设置定时任务的二种方法

1)编辑用户的crontab文件

用于单个用户设置定时任务,打开用户的cronta文件,命令如下:

crontab -e

#分 时 日 月 周 命令
/1  代表没分钟 /*后面代表每多少

 在编辑sysdate.sh里面的你想要添加的脚本内容

添加完成后,保存文件退出

2)在 /etc/crontab 文件中添加任务

对于系统级的任务,可以直接在/etc/crontab文件中添加,添加方法和用户的crontab文件中添加的方法差不多,但多了一个用户的字段,格式如下:

分 时 日 月 周 用户 命令

例如,

以root每分钟运行脚本,如下,

*/1 * * * * root /home/twl/sysdate.sh

 2.使用systemd定时器设置定时任务

systemd 定时器是一种替代传统 cron 的方法,用于安排定时任务。systemd 定时器由两部分组成:一个 .service 文件和一个 .timer 文件。.service 文件定义了要执行的任务,而 .timer 文件设定了何时执行这个任务。

1)创建服务文件

创建一个.service文件来定义要执行的任务。例如,

创建 /etc/systemd/system/sysdate.service文件,内容如下,

[Unit]
Description=sysdate


[Service]
Type=simple
ExecStart=/bin/bash /home/twl/sysdate.sh

#后面是你要执行的脚本的绝对路径

[Install]
WantedBy=multi-user.targe

 脚本添加执行权限:

chmod +x /home/twl/sysdate.sh

 2)创建.timer文件

.service文件创建完成后,还需要创建一个定时器文件(.timer),例如,

创建/etc/systemd/system/sysdate.timer文件,内容如下:


    [Unit]  

    Description= SysTimer  

      

    [Timer]  

    OnBootSec=10  

    OnUnitActiveSec=1  

    Unit=sysdate.service  

      

    [Install]  

    WantedBy=multi-user.target

 这里,OnBootSec=10表示在系统启动后的10秒开始运行定时器,OnUnitActiveSec=1表示在syadate.service启动后每隔1秒再次运行。

现在,你需要启用并启动你的服务和定时器:

 sudo systemctl daemon-reload  

 sudo systemctl enable syadate.timer  

 sudo systemctl start syadate.timer

 daemon-reload命令会重新加载systemd的配置文件,enable命令会启用定时器,使其在下次启动时自动运行,start`命令会立即启动定时器。

最后使用tail -f /path/to/you/logfile.txt命令来查看你的文件日志更新

注意:确保 .service 和 .timer 文件的命名一致并且放置在正确的目录中,通常是 /etc/systemd/system/

OnCalendar 配置使用 systemd 时间格式,可以设置为具体的时间点,也可以使用其它更复杂的时间规则。

Persistent=true 表示如果错过了某次执行(比如系统未运行),下次启动时将会尽快执行该任务。如有任务的需要定时执行需要精确到秒,在基于systemd的系统上,则可以通过计时器systemd.timer来实现精确到秒的计划任务。

总结

总的来说crontab或者systemd都可以来设置系统定时任务,两者的功能都十分强大且方法简单,但是crontab的最小单位是分,systemd的最小单位是秒,两者在需求不一样的时候使用也不一样,具体的按照用户自己的需求来使用

  • 31
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值